From ead7a282c7f7e8caf9b4ac7fdc5959f02df13e86 Mon Sep 17 00:00:00 2001 From: Mattia-gh-action Date: Thu, 2 Sep 2021 12:56:42 +0000 Subject: [PATCH] Automated package and docs --- dist/diglettk.js | 2 +- docs/examples/diglettk.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/diglettk.js b/dist/diglettk.js index 6be8410..48cefa7 100644 --- a/dist/diglettk.js +++ b/dist/diglettk.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.diglettk=t():e.diglettk=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=30)}([function(e,t,n){"use strict";(function(e){n.d(t,"k",function(){return b}),n.d(t,"l",function(){return T}),n.d(t,"m",function(){return C}),n.d(t,"e",function(){return w}),n.d(t,"f",function(){return x}),n.d(t,"g",function(){return R}),n.d(t,"b",function(){return E}),n.d(t,"h",function(){return L}),n.d(t,"i",function(){return N}),n.d(t,"c",function(){return B}),n.d(t,"j",function(){return F}),n.d(t,"d",function(){return _});var r=n(1);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){"@babel/helpers - typeof";return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};M(t);var n=[];function r(e){n[e]=null}return Number.isInteger(t.mtime)||(t.mtime=++g),t.classHierarchy=["vtkObject"],e.isDeleted=function(){return!!t.deleted},e.modified=function(r){t.deleted?T("instance deleted - cannot call any method"):r&&r0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1;return Object.keys(n).forEach(function(i){var s=a?null:e["set".concat(O(i))];s&&Array.isArray(n[i])&&s.length>1?o=s.apply(void 0,c(n[i]))||o:s?o=s(n[i])||o:(-1!==["mtime"].indexOf(i)||r||C("Warning: Set value to model directly ".concat(i,", ").concat(n[i])),t[i]=n[i],o=!0)}),o},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error("Cannot ShallowCopy ".concat(n.getClassName()," into ").concat(e.getClassName()));var a=n.get(),o=Object.keys(t).sort();Object.keys(a).sort().forEach(function(e){var n=o.indexOf(e);-1===n?r&&b("add ".concat(e," in shallowCopy")):o.splice(n,1),t[e]=a[e]}),o.length&&r&&b("Untouched keys: ".concat(o.join(", "))),e.modified()},e}function E(e,t,n){n.forEach(function(n){"object"===o(n)?e["get".concat(O(n.name))]=function(){return t[n.name]}:e["get".concat(O(n))]=function(){return t[n]}})}P.Float32Array=Float32Array,P.Float64Array=Float64Array,P.Uint8Array=Uint8Array,P.Int8Array=Int8Array,P.Uint16Array=Uint16Array,P.Int16Array=Int16Array,P.Uint32Array=Uint32Array,P.Int32Array=Int32Array,P.Uint8ClampedArray=Uint8ClampedArray;var D={enum:function(e,t,n){return function(r){if("string"==typeof r){if(void 0!==n.enum[r])return t[n.name]!==n.enum[r]&&(t[n.name]=n.enum[r],e.modified(),!0);throw T("Set Enum with invalid argument ".concat(n,", ").concat(r)),new RangeError("Set Enum with invalid string argument")}if("number"==typeof r){if(t[n.name]!==r){if(-1!==Object.keys(n.enum).map(function(e){return n.enum[e]}).indexOf(r))return t[n.name]=r,e.modified(),!0;throw T("Set Enum outside numeric range ".concat(n,", ").concat(r)),new RangeError("Set Enum outside numeric range")}return!1}throw T("Set Enum with invalid argument (String/Number) ".concat(n,", ").concat(r)),new TypeError("Set Enum with invalid argument (String/Number)")}}};function V(e){if("object"===o(e)){var t=D[e.type];if(t)return function(n,r){return t(n,r,e)};throw T("No setter for field ".concat(e)),new TypeError("No setter for field")}return function(t,n){return function(r){return n.deleted?(T("instance deleted - cannot call any method"),!1):n[e]!==r&&(n[e]=r,t.modified(),!0)}}}function L(e,t,n){n.forEach(function(n){"object"===o(n)?e["set".concat(O(n.name))]=V(n)(e,t):e["set".concat(O(n))]=V(n)(e,t)})}function N(e,t,n){E(e,t,n),L(e,t,n)}function B(e,t,n){n.forEach(function(n){e["get".concat(O(n))]=function(){return[].concat(t[n])},e["get".concat(O(n),"ByReference")]=function(){return t[n]}})}function k(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach(function(n){e["set".concat(O(n))]=function(){if(t.deleted)return T("instance deleted - cannot call any method"),!1;for(var o=arguments.length,i=new Array(o),s=0;s4&&void 0!==arguments[4]?arguments[4]:void 0;B(e,t,n),k(e,t,n,r,a)}var G=Symbol("Event abort");function _(e,t){var n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={};return e(n,{},t),Object.freeze(n)};return t&&r.a.register(t,n),n}function U(e){return e&&e.isA&&e.isA("vtkObject")}function j(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=function(e,n){t.keystore[e]=n},e.getKey=function(e){return t.keystore[e]},e.getAllKeys=function(){return Object.keys(t.keystore)},e.deleteKey=function(e){return delete t.keystore[e]},e.clearKeystore=function(){return e.getAllKeys().forEach(function(e){return delete t.keystore[e]})}}var W=1,z="__root__";var H=10,K=40,X=800;t.a={algo:function(e,t,n,a){function o(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?T("instance deleted - cannot call any method"):r>=t.numberOfInputs?T("algorithm ".concat(e.getClassName()," only has ").concat(t.numberOfInputs," input ports. To add more input ports, use addInputData()")):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function i(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)T("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){var a="algorithm ".concat(e.getClassName()," only has ");return a+="".concat(t.numberOfInputs),void T(a+=" input ports. To add more input ports, use addInputConnection()")}t.inputData[r]=null,t.inputConnection[r]=n}}function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(T("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(r.a):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(r.a):t.inputConnection=[],t.output?t.output=t.output.map(r.a):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(r.a):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=function(){for(var n=e.getMTime(),r=a,o=1/0;r--;){if(!t.output[r])return!0;var i=t.output[r].getMTime();if(io)return!0;return!1},t.numberOfInputs){for(var l=t.numberOfInputs;l--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=i,e.addInputData=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,o(e,t.numberOfInputs-1))},e.addInputConnection=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,i(e,t.numberOfInputs-1))},e.getInputData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}a&&(e.getOutputData=s,e.getOutputPort=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function(){return s(t)};return n.filter=e,n}),e.update=function(){var n=[];if(t.numberOfInputs)for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:"Scalars";t.inputArrayToProcess.length1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error("Invalid callback for event ".concat(n)),null;if(t.deleted)return T("instance deleted - cannot call any method"),null;var o=i++;return r.push([o,e,a]),r.sort(function(e,t){return t[2]-e[2]}),function(e){return Object.freeze({unsubscribe:function(){s(e)}})}(o)},e.delete=function(){o(),r.forEach(function(e){return s(a(e,1)[0])})}},EVENT_ABORT:G,formatBytesToProperUnit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,r=["TB","GB","MB","KB"],a=Number(e),o="B";a>n;)a/=n,o=r.pop();return"".concat(a.toFixed(t)," ").concat(o)},formatNumbersWithThousandSeparator:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[],r=e;r>1e3;)n.push("000".concat(r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)},get:E,getArray:B,getCurrentGlobalMTime:function(){return g},getStateArrayMapFunc:A,isVtkObject:U,keystore:j,newInstance:_,newTypedArray:w,newTypedArrayFrom:x,normalizeWheel:function(e){var t=0,n=0,r=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*H,a=n*H,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(1===e.deltaMode?(r*=K,a*=K):(r*=X,a*=X)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:a}},obj:R,proxy:function(e,t){j(e,t);var n=e.delete;t.proxyId="".concat(W++),t.ui=JSON.parse(JSON.stringify(t.ui||[])),E(e,t,["proxyId","proxyGroup","proxyName"]),N(e,t,["proxyManager"]);var r={},a={};function o(e,t){a[t]||(a[t]=[]);for(var n=a[t],i=0;i0&&void 0!==arguments[0]?arguments[0]:z,r=[],o=t.proxyId,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:z;return a[e]}(n)||[],l=0;l1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];var r=null,a=[],o=0,i=!1;function s(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;var c=[],u=null;for(o=a.length;o--;){var d=a[o];d.instance===n?u=d:c.push(d)}if(!u)return null;var f=u.instance["get".concat(O(u.propertyName))]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=n.onModified(s),u=a[0];return a.push({instance:n,propertyName:r,subscription:i}),o&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set(l({},r,t.propertyLinkMap[e].value)):u&&s(u.instance,!0)),{unsubscribe:function(){return c(n,r)}}},unbind:c,unsubscribe:function(){for(;a.length;)a.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=u,u},e.listPropertyNames=function(){return i().map(function(e){return e.name})},e.getPropertyByName=function(e){return i().find(function(t){return t.name===e})},e.getPropertyDomainByName=function(e){return(r[e]||{}).domain},e.getProxySection=function(){return{id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}},e.delete=function(){for(var r=Object.keys(t.propertyLinkMap),a=r.length;a--;)t.propertyLinkMap[r[a]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},I(function(){if(t.links)for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.this=e;for(var a=Object.keys(r),o=a.length,i=function(){var i=a[o];t[i]=r[i];var s=n[i];e["set".concat(O(i))]=function(n){n!==t[i]&&(t[i]=n,function(e){for(var n=Object.keys(e),r=n.length;r--;){var a=n[r];t[a].set(e[a])}}(s[n]),e.modified())}};o--;)i();a.length&&E(e,t,a)},safeArrays:M,set:L,setArray:k,setGet:N,setGetArray:F,setImmediate:I,setLoggerFunction:function(e,t){y[e]&&(y[e]=t||h)},throttle:function(e,t){var n=!1,r=null;function a(){n=!1,null!==r&&(o.apply(void 0,c(r)),r=null)}function o(){for(var o=arguments.length,i=new Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(U(t)){if(a.indexOf(t)>=0)return r;a.push(t);var o=n(t);void 0!==o&&r.push(o);var i=t.get();Object.keys(i).forEach(function(t){var o=i[t];Array.isArray(o)?o.forEach(function(t){e(t,n,r,a)}):e(o,n,r,a)})}return r},TYPED_ARRAYS:P,uncapitalize:function(e){return e.charAt(0).toLowerCase()+e.slice(1)},VOID:m,vtkDebugMacro:b,vtkErrorMacro:T,vtkInfoMacro:function(){y.info.apply(y,arguments)},vtkLogMacro:function(){y.log.apply(y,arguments)},vtkOnceErrorMacro:function(e){S[e]||(y.error(e),S[e]=!0)},vtkWarningMacro:C}}).call(this,n(7))},function(e,t,n){"use strict";(function(e){function r(e){"@babel/helpers - typeof";return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return s});var i={vtkObject:function(){return null}};function s(t){if(null===t||void 0===t)return t;if(t.isA)return t;if(!t.vtkClass)return e.console&&e.console.error&&e.console.error("Invalid VTK object"),null;var n=i[t.vtkClass];if(!n)return e.console&&e.console.error&&e.console.error("No vtk class found for Object of type ".concat(t.vtkClass)),null;var l=function(e){for(var t=1;t 0\nuniform float vSpecularPower;\nuniform float vAmbient;\nuniform float vDiffuse;\nuniform float vSpecular;\n//VTK::Light::Dec\n#endif\n\n// possibly define vtkGradientOpacityOn\n//VTK::GradientOpacityOn\n#ifdef vtkGradientOpacityOn\nuniform float goscale0;\nuniform float goshift0;\nuniform float gomin0;\nuniform float gomax0;\n#if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\nuniform float goscale1;\nuniform float goshift1;\nuniform float gomin1;\nuniform float gomax1;\n#if vtkNumComponents >= 3\nuniform float goscale2;\nuniform float goshift2;\nuniform float gomin2;\nuniform float gomax2;\n#endif\n#if vtkNumComponents >= 4\nuniform float goscale3;\nuniform float goshift3;\nuniform float gomin3;\nuniform float gomax3;\n#endif\n#endif\n#endif\n\n// if you want to see the raw tiled\n// data in webgl1 uncomment the following line\n// #define debugtile\n\n// camera values\nuniform float camThick;\nuniform float camNear;\nuniform float camFar;\nuniform int cameraParallel;\n\n// values describing the volume geometry\nuniform vec3 vOriginVC;\nuniform vec3 vSpacing;\nuniform ivec3 volumeDimensions; // 3d texture dimensions\nuniform vec3 vPlaneNormal0;\nuniform float vPlaneDistance0;\nuniform vec3 vPlaneNormal1;\nuniform float vPlaneDistance1;\nuniform vec3 vPlaneNormal2;\nuniform float vPlaneDistance2;\nuniform vec3 vPlaneNormal3;\nuniform float vPlaneDistance3;\nuniform vec3 vPlaneNormal4;\nuniform float vPlaneDistance4;\nuniform vec3 vPlaneNormal5;\nuniform float vPlaneDistance5;\n\n//VTK::ClipPlane::Dec\n\n// opacity and color textures\nuniform sampler2D otexture;\nuniform float oshift0;\nuniform float oscale0;\nuniform sampler2D ctexture;\nuniform float cshift0;\nuniform float cscale0;\n\n// jitter texture\nuniform sampler2D jtexture;\n\n// some 3D texture values\nuniform float sampleDistance;\nuniform vec3 vVCToIJK;\n\n// the heights defined below are the locations\n// for the up to four components of the tfuns\n// the tfuns have a height of 2XnumComps pixels so the\n// values are computed to hit the middle of the two rows\n// for that component\n#ifdef vtkIndependentComponentsOn\n#if vtkNumComponents == 2\nuniform float mix0;\nuniform float mix1;\n#define height0 0.25\n#define height1 0.75\n#endif\n#if vtkNumComponents == 3\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\n#define height0 0.17\n#define height1 0.5\n#define height2 0.83\n#endif\n#if vtkNumComponents == 4\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\nuniform float mix3;\n#define height0 0.125\n#define height1 0.375\n#define height2 0.625\n#define height3 0.875\n#endif\n#endif\n\n#if vtkNumComponents >= 2\nuniform float oshift1;\nuniform float oscale1;\nuniform float cshift1;\nuniform float cscale1;\n#endif\n#if vtkNumComponents >= 3\nuniform float oshift2;\nuniform float oscale2;\nuniform float cshift2;\nuniform float cscale2;\n#endif\n#if vtkNumComponents >= 4\nuniform float oshift3;\nuniform float oscale3;\nuniform float cshift3;\nuniform float cscale3;\n#endif\n\n// declaration for intermixed geometry\n//VTK::ZBuffer::Dec\n\n// Lighting values\n//VTK::Light::Dec\n\n//=======================================================================\n// Webgl2 specific version of functions\n#if __VERSION__ == 300\n\nuniform highp sampler3D texture1;\n\nvec4 getTextureValue(vec3 pos)\n{\n vec4 tmp = texture(texture1, pos);\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.a = tmp.g;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n return tmp;\n}\n\n//=======================================================================\n// WebGL1 specific version of functions\n#else\n\nuniform sampler2D texture1;\n\nuniform float texWidth;\nuniform float texHeight;\nuniform int xreps;\nuniform int xstride;\nuniform int ystride;\n\n// if computing triliear values from multiple z slices\n#ifdef vtkTriliearOn\nvec4 getTextureValue(vec3 ijk)\n{\n float zoff = 1.0/float(volumeDimensions.z);\n vec4 val1 = getOneTextureValue(ijk);\n vec4 val2 = getOneTextureValue(vec3(ijk.xy, ijk.z + zoff));\n\n float indexZ = float(volumeDimensions)*ijk.z;\n float zmix = indexZ - floor(indexZ);\n\n return mix(val1, val2, zmix);\n}\n\nvec4 getOneTextureValue(vec3 ijk)\n#else // nearest or fast linear\nvec4 getTextureValue(vec3 ijk)\n#endif\n{\n vec3 tdims = vec3(volumeDimensions);\n\n#ifdef debugtile\n vec2 tpos = vec2(ijk.x, ijk.y);\n vec4 tmp = texture2D(texture1, tpos);\n tmp.a = 1.0;\n\n#else\n int z = int(ijk.z * tdims.z);\n int yz = z / xreps;\n int xz = z - yz*xreps;\n\n int tileWidth = volumeDimensions.x/xstride;\n int tileHeight = volumeDimensions.y/ystride;\n\n xz *= tileWidth;\n yz *= tileHeight;\n\n float ni = float(xz) + (ijk.x*float(tileWidth));\n float nj = float(yz) + (ijk.y*float(tileHeight));\n\n vec2 tpos = vec2(ni/texWidth, nj/texHeight);\n\n vec4 tmp = texture2D(texture1, tpos);\n\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.g = tmp.a;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n#endif\n\n return tmp;\n}\n\n// End of Webgl1 specific code\n//=======================================================================\n#endif\n\n//=======================================================================\n// compute the normal and gradient magnitude for a position\nvec4 computeNormal(vec3 pos, float scalar, vec3 tstep)\n{\n vec4 result;\n\n result.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a - scalar;\n result.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a - scalar;\n result.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a - scalar;\n\n // divide by spacing\n result.xyz /= vSpacing;\n\n result.w = length(result.xyz);\n\n // rotate to View Coords\n result.xyz =\n result.x * vPlaneNormal0 +\n result.y * vPlaneNormal2 +\n result.z * vPlaneNormal4;\n\n if (result.w > 0.0)\n {\n result.xyz /= result.w;\n }\n return result;\n}\n\n#ifdef vtkImageLabelOutlineOn\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\n vec4 pcPos = vec4(\n (fragCoord.x / vpWidth - 0.5) * 2.0,\n (fragCoord.y / vpHeight - 0.5) * 2.0,\n (fragCoord.z - 0.5) * 2.0,\n 1.0);\n\n vec4 worldCoord = PCWCMatrix * pcPos;\n vec4 vertex = (worldCoord/worldCoord.w);\n\n return (vWCtoIDX * vertex).xyz / vec3(volumeDimensions);\n}\n#endif\n\n//=======================================================================\n// compute the normals and gradient magnitudes for a position\n// for independent components\nmat4 computeMat4Normal(vec3 pos, vec4 tValue, vec3 tstep)\n{\n mat4 result;\n vec4 distX = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)) - tValue;\n vec4 distY = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)) - tValue;\n vec4 distZ = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)) - tValue;\n\n // divide by spacing\n distX /= vSpacing.x;\n distY /= vSpacing.y;\n distZ /= vSpacing.z;\n\n mat3 rot;\n rot[0] = vPlaneNormal0;\n rot[1] = vPlaneNormal2;\n rot[2] = vPlaneNormal4;\n\n#if !defined(vtkComponent0Proportional)\n result[0].xyz = vec3(distX.r, distY.r, distZ.r);\n result[0].a = length(result[0].xyz);\n result[0].xyz *= rot;\n if (result[0].w > 0.0)\n {\n result[0].xyz /= result[0].w;\n }\n#endif\n\n// optionally compute the 2nd component\n#if vtkNumComponents >= 2 && !defined(vtkComponent1Proportional)\n result[1].xyz = vec3(distX.g, distY.g, distZ.g);\n result[1].a = length(result[1].xyz);\n result[1].xyz *= rot;\n if (result[1].w > 0.0)\n {\n result[1].xyz /= result[1].w;\n }\n#endif\n\n// optionally compute the 3rd component\n#if vtkNumComponents >= 3 && !defined(vtkComponent2Proportional)\n result[2].xyz = vec3(distX.b, distY.b, distZ.b);\n result[2].a = length(result[2].xyz);\n result[2].xyz *= rot;\n if (result[2].w > 0.0)\n {\n result[2].xyz /= result[2].w;\n }\n#endif\n\n// optionally compute the 4th component\n#if vtkNumComponents >= 4 && !defined(vtkComponent3Proportional)\n result[3].xyz = vec3(distX.a, distY.a, distZ.a);\n result[3].a = length(result[3].xyz);\n result[3].xyz *= rot;\n if (result[3].w > 0.0)\n {\n result[3].xyz /= result[3].w;\n }\n#endif\n\n return result;\n}\n\n//=======================================================================\n// Given a normal compute the gradient opacity factors\n//\nfloat computeGradientOpacityFactor(\n vec4 normal, float goscale, float goshift, float gomin, float gomax)\n{\n#if defined(vtkGradientOpacityOn)\n return clamp(normal.a*goscale + goshift, gomin, gomax);\n#else\n return 1.0;\n#endif\n}\n\n#if vtkLightComplexity > 0\nvoid applyLighting(inout vec3 tColor, vec4 normal)\n{\n vec3 diffuse = vec3(0.0, 0.0, 0.0);\n vec3 specular = vec3(0.0, 0.0, 0.0);\n //VTK::Light::Impl\n tColor.rgb = tColor.rgb*(diffuse*vDiffuse + vAmbient) + specular*vSpecular;\n}\n#endif\n\n//=======================================================================\n// Given a texture value compute the color and opacity\n//\nvec4 getColorForValue(vec4 tValue, vec3 posIS, vec3 tstep)\n{\n#ifdef vtkImageLabelOutlineOn\n vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\n vec4 centerValue = getTextureValue(centerPosIS);\n bool pixelOnBorder = false;\n vec4 tColor = texture2D(ctexture, vec2(centerValue.r * cscale0 + cshift0, 0.5));\n\n // Get alpha of segment from opacity function.\n tColor.a = texture2D(otexture, vec2(centerValue.r * oscale0 + oshift0, 0.5)).r;\n\n // Only perform outline check on fragments rendering voxels that aren't invisible.\n // Saves a bunch of needless checks on the background.\n // TODO define epsilon when building shader?\n if (float(tColor.a) > 0.01) {\n for (int i = -outlineThickness; i <= outlineThickness; i++) {\n for (int j = -outlineThickness; j <= outlineThickness; j++) {\n if (i == 0 || j == 0) {\n continue;\n }\n\n vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\n gl_FragCoord.y + float(j),\n gl_FragCoord.z, gl_FragCoord.w);\n\n vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\n vec4 value = getTextureValue(neighborPosIS);\n\n // If any of my neighbours are not the same value as I\n // am, this means I am on the border of the segment.\n // We can break the loops\n if (any(notEqual(value, centerValue))) {\n pixelOnBorder = true;\n break;\n }\n }\n\n if (pixelOnBorder == true) {\n break;\n }\n }\n\n // If I am on the border, I am displayed at full opacity\n if (pixelOnBorder == true) {\n tColor.a = 1.0;\n }\n }\n\n#else\n // compute the normal and gradient magnitude if needed\n // We compute it as a vec4 if possible otherwise a mat4\n //\n vec4 goFactor = vec4(1.0,1.0,1.0,1.0);\n\n // compute the normal vectors as needed\n #if (vtkLightComplexity > 0) || defined(vtkGradientOpacityOn)\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n mat4 normalMat = computeMat4Normal(posIS, tValue, tstep);\n #if !defined(vtkComponent0Proportional)\n vec4 normal0 = normalMat[0];\n #endif\n #if !defined(vtkComponent1Proportional)\n vec4 normal1 = normalMat[1];\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n vec4 normal2 = normalMat[2];\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n vec4 normal3 = normalMat[3];\n #endif\n #endif\n #endif\n #else\n vec4 normal0 = computeNormal(posIS, tValue.a, tstep);\n #endif\n #endif\n\n // compute gradient opacity factors as needed\n #if defined(vtkGradientOpacityOn)\n #if !defined(vtkComponent0Proportional)\n goFactor.x =\n computeGradientOpacityFactor(normal0, goscale0, goshift0, gomin0, gomax0);\n #endif\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n #if !defined(vtkComponent1Proportional)\n goFactor.y =\n computeGradientOpacityFactor(normal1, goscale1, goshift1, gomin1, gomax1);\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n goFactor.z =\n computeGradientOpacityFactor(normal2, goscale2, goshift2, gomin2, gomax2);\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n goFactor.w =\n computeGradientOpacityFactor(normal3, goscale3, goshift3, gomin3, gomax3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n // single component is always independent\n #if vtkNumComponents == 1\n vec4 tColor = texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, 0.5));\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n vec4 tColor = mix0*texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, height0));\n #if !defined(vtkComponent0Proportional)\n tColor.a = goFactor.x*mix0*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n tColor *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix0));\n #endif\n\n vec3 tColor1 = mix1*texture2D(ctexture, vec2(tValue.g * cscale1 + cshift1, height1)).rgb;\n #if !defined(vtkComponent1Proportional)\n tColor.a += goFactor.y*mix1*texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n tColor1 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix1));\n #endif\n\n #if vtkNumComponents >= 3\n vec3 tColor2 = mix2*texture2D(ctexture, vec2(tValue.b * cscale2 + cshift2, height2)).rgb;\n #if !defined(vtkComponent2Proportional)\n tColor.a += goFactor.z*mix2*texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n tColor2 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix2));\n #endif\n\n #if vtkNumComponents >= 4\n vec3 tColor3 = mix3*texture2D(ctexture, vec2(tValue.a * cscale3 + cshift3, height3)).rgb;\n #if !defined(vtkComponent3Proportional)\n tColor.a += goFactor.w*mix3*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n tColor3 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix3));\n #endif\n #endif\n #endif\n #else // then not independent\n\n #if vtkNumComponents == 2\n float lum = tValue.r * cscale0 + cshift0;\n float alpha = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale1 + oshift1, 0.5)).r;\n vec4 tColor = vec4(lum, lum, lum, alpha);\n #endif\n #if vtkNumComponents == 3\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale0 + oshift0, 0.5)).r;\n #endif\n #if vtkNumComponents == 4\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, 0.5)).r;\n #endif\n #endif // dependent\n\n // apply lighting if requested as appropriate\n #if vtkLightComplexity > 0\n #if !defined(vtkComponent0Proportional)\n applyLighting(tColor.rgb, normal0);\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n #if !defined(vtkComponent1Proportional)\n applyLighting(tColor1, normal1);\n #endif\n #if vtkNumComponents >= 3\n #if !defined(vtkComponent2Proportional)\n applyLighting(tColor2, normal2);\n #endif\n #if vtkNumComponents >= 4\n #if !defined(vtkComponent3Proportional)\n applyLighting(tColor3, normal3);\n #endif\n #endif\n #endif\n #endif\n#endif\n\n// perform final independent blend as needed\n#if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n tColor.rgb += tColor1;\n#if vtkNumComponents >= 3\n tColor.rgb += tColor2;\n#if vtkNumComponents >= 4\n tColor.rgb += tColor3;\n#endif\n#endif\n#endif\n\n#endif\n\n\n\n\n\n\n\nreturn tColor;\n}\n\n\n\n//=======================================================================\n// Apply the specified blend mode operation along the ray's path.\n//\nvoid applyBlend(vec3 posIS, vec3 endIS, float sampleDistanceIS, vec3 tdims)\n{\n vec3 tstep = 1.0/tdims;\n\n // start slightly inside and apply some jitter\n vec3 delta = endIS - posIS;\n vec3 stepIS = normalize(delta)*sampleDistanceIS;\n float raySteps = length(delta)/sampleDistanceIS;\n\n // avoid 0.0 jitter\n float jitter = 0.01 + 0.99*texture2D(jtexture, gl_FragCoord.xy/32.0).r;\n float stepsTraveled = jitter;\n\n // local vars for the loop\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n vec4 tValue;\n vec4 tColor;\n\n // if we have less than one step then pick the middle point\n // as our value\n // if (raySteps <= 1.0)\n // {\n // posIS = (posIS + endIS)*0.5;\n // }\n\n // Perform initial step at the volume boundary\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n #if vtkBlendMode == 0 // COMPOSITE_BLEND\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps);\n gl_FragData[0] = tColor;\n return;\n }\n\n tColor.a = 1.0 - pow(1.0 - tColor.a, jitter);\n color = vec4(tColor.rgb*tColor.a, tColor.a);\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n float mix = (1.0 - color.a);\n\n // this line should not be needed but nvidia seems to not handle\n // the break correctly on windows/chrome 58 angle\n //mix = mix * sign(max(raySteps - stepsTraveled - 1.0, 0.0));\n\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n stepsTraveled++;\n posIS += stepIS;\n if (color.a > 0.99) { color.a = 1.0; break; }\n }\n\n if (color.a < 0.99 && (raySteps - stepsTraveled) > 0.0)\n {\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\n\n float mix = (1.0 - color.a);\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n }\n\n gl_FragData[0] = vec4(color.rgb/color.a, color.a);\n #endif\n #if vtkBlendMode == 1 || vtkBlendMode == 2\n // MAXIMUM_INTENSITY_BLEND || MINIMUM_INTENSITY_BLEND\n // Find maximum/minimum intensity along the ray.\n\n // Define the operation we will use (min or max)\n #if vtkBlendMode == 1\n #define OP max\n #else\n #define OP min\n #endif\n\n // If the clipping range is shorter than the sample distance\n // we can skip the sampling loop along the ray.\n if (raySteps <= 1.0)\n {\n gl_FragData[0] = getColorForValue(tValue, posIS, tstep);\n return;\n }\n\n vec4 value = tValue;\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // Update the maximum value if necessary\n value = OP(tValue, value);\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n tValue = getTextureValue(posIS);\n value = OP(tValue, value);\n\n // Now map through opacity and color\n gl_FragData[0] = getColorForValue(value, posIS, tstep);\n #endif\n #if vtkBlendMode == 3 //AVERAGE_INTENSITY_BLEND\n vec4 averageIPScalarRangeMin = vec4 (\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n 1.0);\n vec4 averageIPScalarRangeMax = vec4(\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n 1.0);\n\n vec4 sum = vec4(0.);\n\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n }\n\n if (raySteps <= 1.0) {\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n return;\n }\n\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation.\n // Notes:\n // - We are comparing all values in the texture to see if any of them\n // are outside of the scalar range. In the future we might want to allow\n // scalar ranges for each component.\n // - We are setting the alpha channel for averageIPScalarRangeMin and\n // averageIPScalarRangeMax so that we do not trigger this 'continue'\n // based on the alpha channel comparison.\n // - There might be a better way to do this. I'm not sure if there is an\n // equivalent of 'any' which only operates on RGB, though I suppose\n // we could write an 'anyRGB' function and see if that is faster.\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n if (any(lessThan(tValue, averageIPScalarRangeMin)) ||\n any(greaterThan(tValue, averageIPScalarRangeMax))) {\n continue;\n }\n\n // Sum the values across each step in the path\n sum += tValue;\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n\n stepsTraveled++;\n }\n\n sum /= vec4(stepsTraveled, stepsTraveled, stepsTraveled, 1.0);\n\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n #endif\n}\n\n//=======================================================================\n// Compute a new start and end point for a given ray based\n// on the provided bounded clipping plane (aka a rectangle)\nvoid getRayPointIntersectionBounds(\n vec3 rayPos, vec3 rayDir,\n vec3 planeDir, float planeDist,\n inout vec2 tbounds, vec3 vPlaneX, vec3 vPlaneY,\n float vSize1, float vSize2)\n{\n float result = dot(rayDir, planeDir);\n if (result == 0.0)\n {\n return;\n }\n result = -1.0 * (dot(rayPos, planeDir) + planeDist) / result;\n vec3 xposVC = rayPos + rayDir*result;\n vec3 vxpos = xposVC - vOriginVC;\n vec2 vpos = vec2(\n dot(vxpos, vPlaneX),\n dot(vxpos, vPlaneY));\n\n // on some apple nvidia systems this does not work\n // if (vpos.x < 0.0 || vpos.x > vSize1 ||\n // vpos.y < 0.0 || vpos.y > vSize2)\n // even just\n // if (vpos.x < 0.0 || vpos.y < 0.0)\n // fails\n // so instead we compute a value that represents in and out\n //and then compute the return using this value\n float xcheck = max(0.0, vpos.x * (vpos.x - vSize1)); // 0 means in bounds\n float check = sign(max(xcheck, vpos.y * (vpos.y - vSize2))); // 0 means in bounds, 1 = out\n\n tbounds = mix(\n vec2(min(tbounds.x, result), max(tbounds.y, result)), // in value\n tbounds, // out value\n check); // 0 in 1 out\n}\n\n//=======================================================================\n// given a\n// - ray direction (rayDir)\n// - starting point (vertexVCVSOutput)\n// - bounding planes of the volume\n// - optionally depth buffer values\n// - far clipping plane\n// compute the start/end distances of the ray we need to cast\nvec2 computeRayDistances(vec3 rayDir, vec3 tdims)\n{\n vec2 dists = vec2(100.0*camFar, -1.0);\n\n vec3 vSize = vSpacing*(tdims - 1.0);\n\n // all this is in View Coordinates\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal0, vPlaneDistance0, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal1, vPlaneDistance1, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal2, vPlaneDistance2, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal3, vPlaneDistance3, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal4, vPlaneDistance4, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal5, vPlaneDistance5, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n\n //VTK::ClipPlane::Impl\n\n // do not go behind front clipping plane\n dists.x = max(0.0,dists.x);\n\n // do not go PAST far clipping plane\n float farDist = -camThick/rayDir.z;\n dists.y = min(farDist,dists.y);\n\n // Do not go past the zbuffer value if set\n // This is used for intermixing opaque geometry\n //VTK::ZBuffer::Impl\n\n return dists;\n}\n\n//=======================================================================\n// Compute the index space starting position (pos) and end\n// position\n//\nvoid computeIndexSpaceValues(out vec3 pos, out vec3 endPos, out float sampleDistanceIS, vec3 rayDir, vec2 dists)\n{\n // compute starting and ending values in volume space\n pos = vertexVCVSOutput + dists.x*rayDir;\n pos = pos - vOriginVC;\n // convert to volume basis and origin\n pos = vec3(\n dot(pos, vPlaneNormal0),\n dot(pos, vPlaneNormal2),\n dot(pos, vPlaneNormal4));\n\n endPos = vertexVCVSOutput + dists.y*rayDir;\n endPos = endPos - vOriginVC;\n endPos = vec3(\n dot(endPos, vPlaneNormal0),\n dot(endPos, vPlaneNormal2),\n dot(endPos, vPlaneNormal4));\n\n float delta = length(endPos - pos);\n\n pos *= vVCToIJK;\n endPos *= vVCToIJK;\n\n float delta2 = length(endPos - pos);\n sampleDistanceIS = sampleDistance*delta2/delta;\n}\n\nvoid main()\n{\n\n vec3 rayDirVC;\n\n if (cameraParallel == 1)\n {\n // Camera is parallel, so the rayDir is just the direction of the camera.\n rayDirVC = vec3(0.0, 0.0, -1.0);\n } else {\n // camera is at 0,0,0 so rayDir for perspective is just the vc coord\n rayDirVC = normalize(vertexVCVSOutput);\n }\n\n vec3 tdims = vec3(volumeDimensions);\n\n // compute the start and end points for the ray\n vec2 rayStartEndDistancesVC = computeRayDistances(rayDirVC, tdims);\n\n // do we need to composite? aka does the ray have any length\n // If not, bail out early\n if (rayStartEndDistancesVC.y <= rayStartEndDistancesVC.x)\n {\n discard;\n }\n\n // IS = Index Space\n vec3 posIS;\n vec3 endIS;\n float sampleDistanceIS;\n computeIndexSpaceValues(posIS, endIS, sampleDistanceIS, rayDirVC, rayStartEndDistancesVC);\n\n // Perform the blending operation along the ray\n applyBlend(posIS, endIS, sampleDistanceIS, tdims);\n}\n"},function(e,t,n){var r;!function(a){"use strict";function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function i(e,t,n,r,a,i){return o(function(e,t){return e<>>32-t}(o(o(t,e),o(r,i)),a),n)}function s(e,t,n,r,a,o,s){return i(t&n|~t&r,e,t,a,o,s)}function l(e,t,n,r,a,o,s){return i(t&r|n&~r,e,t,a,o,s)}function c(e,t,n,r,a,o,s){return i(t^n^r,e,t,a,o,s)}function u(e,t,n,r,a,o,s){return i(n^(t|~r),e,t,a,o,s)}function d(e,t){var n,r,a,i,d;e[t>>5]|=128<>>9<<4)]=t;var f=1732584193,p=-271733879,g=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+"0123456789abcdef".charAt(15&t);return r}function m(e){return unescape(encodeURIComponent(e))}function v(e){return function(e){return f(d(p(e),8*e.length))}(m(e))}function h(e,t){return function(e,t){var n,r,a=p(e),o=[],i=[];for(o[15]=i[15]=void 0,a.length>16&&(a=d(a,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^a[n],i[n]=1549556828^a[n];return r=d(o.concat(p(t)),512+8*t.length),f(d(i.concat(r),640))}(m(e),m(t))}function y(e,t,n){return t?n?h(t,e):function(e,t){return g(h(e,t))}(t,e):n?v(e):function(e){return g(v(e))}(e)}void 0===(r=function(){return y}.call(t,n,t,e))||(e.exports=r)}()},function(e){e.exports=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,7.54296e-7,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,1.11641e-7,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,3.63578e-7,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,4.05298e-7,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4.264e-8,0,6.20844e-7,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,3.3216e-7,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,4.05432e-7,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,4.55569e-8]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,4.55569e-8,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}]},function(e,t,n){"use strict";var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments[3];return new Promise(function(o,i){var s=n._messageId++;n._messages.set(s,[o,i,a]),n._worker.postMessage([s,t,e],r||[])})}},{key:"postMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];return new Promise(function(a,o){var i=t._messageId++;t._messages.set(i,[a,o,r]),t._worker.postMessage([i,e],n||[])})}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)}}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&s(r,n),a.state=function(){return s(n,{})}),a}a&&a.exports?a.exports=l:n(2)&&n(4)?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new function(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor128=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorwow=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorshift7=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,o=t.i;return t.w=r=r+1640531527|0,n=a[o+34&127],e=a[o=o+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[o]=n^e,t.i=o,n+(r^r>>>16)|0},function(e,t){var n,r,a,o,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,o=-32;o>>15,r^=r<<4,r^=r>>>13,o>=0&&(i=i+1640531527|0,a=0==(n=s[127&o]^=r+i)?a+1:0);for(a>=128&&(s[127&(t&&t.length||0)]=-1),a=127,o=512;o>0;--o)r=s[a+34&127],n=s[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[a]=r^n;e.w=i,e.X=s,e.i=a}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor4096=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.tychei=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){var r;!function(a,o,i){var s,l=256,c=6,u="random",d=i.pow(l,c),f=i.pow(2,52),p=2*f,g=l-1;function m(e,t,n){var r=[],m=h(function e(t,n){var r,a=[],o=typeof t;if(n&&"object"==o)for(r in t)try{a.push(e(t[r],n-1))}catch(e){}return a.length?a:"string"==o?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,y(o)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(a.crypto||a.msCrypto).getRandomValues(e)),y(e)}catch(e){var t=a.navigator,n=t&&t.plugins;return[+new Date,a,n,a.screen,y(o)]}}():e,3),r),b=new function(e){var t,n=e.length,r=this,a=0,o=r.i=r.j=0,i=r.S=[];n||(e=[n++]);for(;a=p;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|b.g(4)},T.quick=function(){return b.g(4)/4294967296},T.double=T,h(y(b.S),o),(t.pass||n||function(e,t,n,r){return r&&(r.S&&v(r,b),e.state=function(){return v(b,{})}),n?(i[u]=e,t):e})(T,m,"global"in t?t.global:this==i,t.state)}function v(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function h(e,t){for(var n,r=e+"",a=0;a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;M(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:I(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:3,t=[];t.length1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=-1/0,o=t,i=e.length;o1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var n=0,r=0;r2&&void 0!==arguments[2]?arguments[2]:1e-6;if(e.length!==t.length)return!1;return e.every(function(e,r){return Math.abs(e-t[r])<=n})}var ae=re;function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!"".concat(e).includes("e"))return+"".concat(Math.round("".concat(e,"e+").concat(t)),"e-").concat(t);var n="".concat(e).split("e"),r="";return+n[1]+t>0&&(r="+"),+"".concat(Math.round("".concat(+n[0],"e").concat(r).concat(+n[1]+t)),"e-").concat(t)}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=oe(e[0],n),t[1]=oe(e[1],n),t[2]=oe(e[2],n),t}function se(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g,m,v,h,b,C,S=w(t),P=w(t),x=function(e,t,n,r,a){h=e[t][n],v=e[r][a],e[t][n]=h-m*(v+h*p),e[r][a]=v+m*(h-v*p)};for(l=0;l3&&Math.abs(n[l])+h===Math.abs(n[l])&&Math.abs(n[s])+h===Math.abs(n[s]))e[l][s]=0;else if(Math.abs(e[l][s])>u){for(v=n[s]-n[l],Math.abs(v)+h===Math.abs(v)?f=e[l][s]/v:(d=.5*v/e[l][s],f=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(f=-f)),b=1/Math.sqrt(1+f*f),p=(m=f*b)/(1+b),v=f*e[l][s],P[l]-=v,P[s]+=v,n[l]-=v,n[s]+=v,e[l][s]=0,o=0;o<=l-1;o++)x(e,o,l,o,s);for(o=l+1;o<=s-1;o++)x(e,l,o,o,s);for(o=s+1;o=T)return y("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=C&&(C=n[i=a]);if(i!==o)for(n[i]=n[o],n[o]=C,a=0;a>1)+(1&t);for(o=0;o=0&&c++;if(c(r=l>s?l:s)?c:r,a[i]=1,0!==r&&(a[i]/=r)}var u=Math.abs(t[0][0])*a[0],d=Math.abs(t[1][0])*a[1],f=Math.abs(t[2][0])*a[2];o[0]=0,d>=(r=u)&&(r=d,o[0]=1),f>=r&&(o[0]=2),0!==o[0]&&(P(t[o[0]],t[0]),a[o[0]]=a[0]);var p=Math.abs(t[1][1])*a[1],g=Math.abs(t[2][1])*a[2];o[1]=1,g>=(r=p)&&(o[1]=2,P(t[2],t[1])),o[2]=2;var m=0;if(te(t)<0){m=1;for(var v=0;v<3;v++)t[0][v]=-t[0][v],t[1][v]=-t[1][v],t[2][v]=-t[2][v]}var h=w(4);if(le(t,h),ne(h,t),m)for(var y=0;y<3;y++)t[0][y]=-t[0][y],t[1][y]=-t[1][y],t[2][y]=-t[2][y];1!==o[1]&&P(t[o[1]],t[1]),0!==o[0]&&P(t[o[0]],t[0])}function ue(e,t,n){var r,a,o,i,s,l,c=[w(3),w(3),w(3)],u=w(3),d=w(3);for(r=0;r<3;r++)c[r][0]=e[r][0],c[r][1]=e[r][1],c[r][2]=e[r][2],u[r]=c[r],d[r]=n[r];if(se(u,3,t,d),t[0]!==t[1]||t[0]!==t[2]){for(J(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[r][0]),i=0,a=1;a<3;a++)l<(s=Math.abs(n[r][a]))&&(l=s,i=a);return i!==r&&(s=t[i],t[i]=t[r],t[r]=s,P(n[r],n[i])),n[i][i]<0&&(n[i][0]=-n[i][0],n[i][1]=-n[i][1],n[i][2]=-n[i][2]),o=(i+2)%3,n[a=(i+1)%3][0]=0,n[a][1]=0,n[a][2]=0,n[a][a]=1,z(n[i],n[a],n[o]),K(n[o]),z(n[o],n[i],n[a]),void J(n,n)}for(l=Math.abs(n[0][0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[r][0]))&&(l=s,i=r);for(0!==i&&(s=t[i],t[i]=t[0],t[0]=s,P(n[i],n[0])),Math.abs(n[1][1])i&&(i=c);if(0===i)return y("Unable to factor linear system"),0;d[r]=1/i}for(a=0;a=i&&(i=l,u=r)}if(a!==u){for(o=0;o=0)for(o=i;o<=a-1;o++)l-=e[a][o]*n[o];else 0!==l&&(i=a);n[a]=l}for(a=r-1;a>=0;a--){for(l=n[a],o=a+1;o3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=r||w(n),i=a||w(n);if(0===de(e,o,n))return 0;for(var s=0;sl?l=i:il?l=s:s0?(l-c)/l:0)>0?(n=o===l?1/6*(i-s)/(l-c):i===l?1/3+1/6*(s-o)/(l-c):2/3+1/6*(o-i)/(l-c))<0&&(n+=1):n=0,t[0]=n,t[1]=r,t[2]=u}function he(e,t){var n,r,a,o=m(e,3),i=o[0],s=o[1],l=o[2];i>1/6&&i<=1/3?(r=1,n=(1/3-i)/(1/6),a=0):i>1/3&&i<=.5?(r=1,a=(i-1/3)/(1/6),n=0):i>.5&&i<=2/3?(a=1,r=(2/3-i)/(1/6),n=0):i>2/3&&i<=5/6?(a=1,n=(i-2/3)/(1/6),r=0):i>5/6&&i<=1?(n=1,a=(1-i)/(1/6),r=0):(n=1,r=i/(1/6),a=0),n=s*n+(1-s),r=s*r+(1-s),a=s*a+(1-s),n*=l,r*=l,a*=l,t[0]=n,t[1]=r,t[2]=a}function ye(e,t){var n=m(e,3),r=(n[0]+16)/116,a=n[1]/500+r,o=r-n[2]/200;r=Math.pow(r,3)>.008856?Math.pow(r,3):(r-16/116)/7.787,a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,o=Math.pow(o,3)>.008856?Math.pow(o,3):(o-16/116)/7.787;t[0]=.9505*a,t[1]=1*r,t[2]=1.089*o}function be(e,t){var n=m(e,3),r=n[0]/.9505,a=n[1]/1,o=n[2]/1.089;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,t[0]=116*a-16,t[1]=500*(r-a),t[2]=200*(a-o)}function Te(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2],i=3.2406*r+-1.5372*a+-.4986*o,s=-.9689*r+1.8758*a+.0415*o,l=.0557*r+-.204*a+1.057*o;i>.0031308?i=1.055*Math.pow(i,1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,l>.0031308?l=1.055*Math.pow(l,1/2.4)-.055:l*=12.92;var c=i;c1&&(i/=c,s/=c,l/=c),i<0&&(i=0),s<0&&(s=0),l<0&&(l=0),t[0]=i,t[1]=s,t[2]=l}function Ce(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2];r>.04045?r=Math.pow((r+.055)/1.055,2.4):r/=12.92,a>.04045?a=Math.pow((a+.055)/1.055,2.4):a/=12.92,o>.04045?o=Math.pow((o+.055)/1.055,2.4):o/=12.92,t[0]=.4124*r+.3576*a+.1805*o,t[1]=.2126*r+.7152*a+.0722*o,t[2]=.0193*r+.1192*a+.9505*o}function Se(e,t){var n=[0,0,0];Ce(e,n),be(n,t)}function Pe(e,t){var n=[0,0,0];ye(e,n),Te(n,t)}function we(e){e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1}function xe(e){return!(e[1]-e[0]<0)}function Oe(e,t,n){n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2])}function Me(e,t,n){return en?n:e}function Ae(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return r[0]=Me(e[0],t[0],n[0]),r[1]=Me(e[1],t[1],n[1]),r[2]=Me(e[2],t[2],n[2]),r}var Ie=S("GetScalarTypeFittingRange"),Re=S("GetAdjustedScalarRange");var Ee=function(e){return!Number.isFinite(e)},De=Number.isFinite,Ve=Number.isNaN,Le=Ve;function Ne(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Be(e){var t=Math.floor(255*e);return t>15?t.toString(16):"0".concat(t.toString(16))}function ke(e){return Math.round(255*e)}var Fe={Pi:function(){return Math.PI},radiansFromDegrees:x,degreesFromRadians:O,round:M,floor:A,ceil:I,ceilLog2:V,min:R,max:E,arrayMin:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=t,o=e.length;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0,a=t,o=e.length;a=0;--a)if(n[a]0&&void 0!==arguments[0]?arguments[0]:0;return e+((arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)-e)*Math.random()},gaussian:k,add:F,subtract:G,multiplyScalar:U,multiplyScalar2D:j,multiplyAccumulate:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r},multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:W,outer:function(e,t,n){for(var r=0;r<3;r++)for(var a=0;a<3;a++)n[r][a]=e[r]*t[a]},cross:z,norm:H,normalize:K,perpendiculars:function(e,t,n,r){var a,o,i,s=e[0]*e[0],l=e[1]*e[1],c=e[2]*e[2],u=Math.sqrt(s+l+c);s>l&&s>c?(a=0,o=1,i=2):l>c?(a=1,o=2,i=0):(a=2,o=0,i=1);var d=e[a]/u,f=e[o]/u,p=e[i]/u,g=Math.sqrt(d*d+p*p);if(0!==r){var m=Math.sin(r),v=Math.cos(r);t&&(t[a]=(p*v-d*f*m)/g,t[o]=m*g,t[i]=(-d*v-f*p*m)/g),n&&(n[a]=(-p*m-d*f*v)/g,n[o]=v*g,n[i]=(d*m-f*p*v)/g)}else t&&(t[a]=p/g,t[o]=0,t[i]=-d/g),n&&(n[a]=-d*f/g,n[o]=g,n[i]=-f*p/g)},projectVector:function(e,t,n){var r=W(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;for(var a=W(e,t)/r,o=0;o<3;o++)n[o]=t[o];return U(n,a),!0},projectVector2D:function(e,t,n){var r=X(t,t);if(0===r)return n[0]=0,n[1]=0,!1;for(var a=X(e,t)/r,o=0;o<2;o++)n[o]=t[o];return j(n,a),!0},distance2BetweenPoints:q,angleBetweenVectors:Y,gaussianAmplitude:function(e,t,n){var r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-Math.pow(r,2)/(2*t))},gaussianWeight:function(e,t,n){var r=Math.abs(e-n);return Math.exp(-Math.pow(r,2)/(2*t))},dot2D:X,outer2D:function(e,t,n){for(var r=0;r<2;r++)for(var a=0;a<2;a++)n[r][a]=e[r]*t[a]},norm2D:Z,normalize2D:function(e){var t=Z(e);return 0!==t&&(e[0]/=t,e[1]/=t),t},determinant2x2:Q,LUFactor3x3:function(e,t){for(var n,r,a,o=[0,0,0],i=0;i<3;i++)a=Math.abs(e[i][0]),(r=Math.abs(e[i][1]))>a&&(a=r),(r=Math.abs(e[i][2]))>a&&(a=r),o[i]=1/a;a=o[0]*Math.abs(e[0][0]),n=0,(r=o[1]*Math.abs(e[1][0]))>=a&&(a=r,n=1),(r=o[2]*Math.abs(e[2][0]))>=a&&(n=2),0!==n&&(P(e[n],e[0]),o[n]=o[0]),t[0]=n,e[1][0]/=e[0][0],e[2][0]/=e[0][0],e[1][1]-=e[1][0]*e[0][1],e[2][1]-=e[2][0]*e[0][1],a=o[1]*Math.abs(e[1][1]),n=1,(r=o[2]*Math.abs(e[2][1]))>=a&&(n=2,P(e[2],e[1]),o[2]=o[1]),t[1]=n,e[2][1]/=e[1][1],e[1][2]-=e[1][0]*e[0][2],e[2][2]-=e[2][0]*e[0][2]+e[2][1]*e[1][2],t[2]=2},LUSolve3x3:function(e,t,n){var r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[1][0]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[2][0]*n[0]-e[2][1]*n[1],n[2]/=e[2][2],n[1]=(n[1]-e[1][2]*n[2])/e[1][1],n[0]=(n[0]-e[0][1]*n[1]-e[0][2]*n[2])/e[0][0]},linearSolve3x3:function(e,t,n){var r=e[0][0],a=e[0][1],o=e[0][2],i=e[1][0],s=e[1][1],l=e[1][2],c=e[2][0],u=e[2][1],d=e[2][2],f=+Q(s,u,l,d),p=-Q(i,c,l,d),g=+Q(i,c,s,u),m=-Q(a,u,o,d),v=+Q(r,c,o,d),h=-Q(r,c,a,u),y=+Q(a,s,o,l),b=-Q(r,i,o,l),T=+Q(r,i,a,s),C=r*f+a*p+o*g,S=f*t[0]+m*t[1]+y*t[2],P=p*t[0]+v*t[1]+b*t[2],w=g*t[0]+h*t[1]+T*t[2];n[0]=S/C,n[1]=P/C,n[2]=w/C},multiply3x3_vect3:function(e,t,n){var r=e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],a=e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],o=e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2];n[0]=r,n[1]=a,n[2]=o},multiply3x3_mat3:$,multiplyMatrix:function(e,t,n,r,a,o,i){r!==a&&h("Number of columns of A must match number of rows of B.");for(var s=0;sE&&(r=Math.abs(e[a][o]));for(var i=0;i6&&void 0!==arguments[6])||arguments[6];if(eC&&(f=0,d[c]=0);if(f&&1===a)return y("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),me(e,t,n,o);if(f)g=1;else for(c=0;c1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:ve,hsv2rgb:he,lab2xyz:ye,xyz2lab:be,xyz2rgb:Te,rgb2xyz:Ce,rgb2lab:Se,lab2rgb:Pe,uninitializeBounds:we,areBoundsInitialized:xe,computeBoundsFromPoints:Oe,clampValue:Me,clampVector:Ae,clampAndNormalizeValue:function(e,t){var n=0;return t[0]!==t[1]&&(n=((n=et[1]?t[1]:e)-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Ie,getAdjustedScalarRange:Re,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(var n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(var r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(var r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){for(var a=w(3),o=w(3),i=w(3),s=w(3),l=w(3),c=w(3),u=0;u<3;++u)a[u]=e[u]-t[u],o[u]=t[u]-n[u],i[u]=n[u]-e[u],s[u]=-a[u],l[u]=-o[u],c[u]=-i[u];var d=H(s),f=H(l),p=H(i),g=w(3);z(a,o,g);for(var m=H(g),v=d*f*p/(2*m),h=2*m*m,y=f*f*W(a,c)/h,b=p*p*W(s,o)/h,T=d*d*W(i,l)/h,C=0;C<3;++C)r[C]=y*e[C]+b*t[C]+T*n[C];return v},inf:1/0,negInf:-1/0,isInf:Ee,isNan:Ve,isNaN:Ve,isFinite:De,createUninitializedBounds:Ne,getMajorAxisIndex:function(e){for(var t=-1,n=-1,r=0;rt&&(n=r,t=a)}return n},floatToHex2:Be,floatRGB2HexCode:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";return"".concat(t).concat(e.map(Be).join(""))},float2CssRGBA:function(e){return 3===e.length?"rgb(".concat(e.map(ke).join(", "),")"):"rgba(".concat(ke(e[0]||0),", ").concat(ke(e[1]||0),", ").concat(ke(e[2]||0),", ").concat(e[3]||0,")")}};function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _e(e){for(var t=1;ta&&(e=a),t1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=We(),a=e.length,o=0;if(t<0&&n>1){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=e||[];n.length<=t;)n.push(null);return n}function Ke(e){return Object.prototype.toString.call(e).slice(8,-1)}var Xe={computeRange:ze,createRangeHelper:We,getDataType:Ke,getMaxNorm:function(e){for(var t=e.getNumberOfComponents(),n=0,r=0;rn&&(n=a)}return n}};var qe={name:"",numberOfComponents:1,size:0,dataType:d.DefaultDataType,rangeTuple:[0,0]};function Ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,qe,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");t.values?Array.isArray(t.values)&&(t.values=f.f(t.dataType,t.values)):t.values=f.e(t.dataType,t.size),t.values&&(t.size=t.values.length,t.dataType=Ke(t.values)),f.g(e,t),f.h(e,t,["name","numberOfComponents"]),function(e,t){function n(){t.ranges=null,e.modified()}t.classHierarchy.push("vtkDataArray"),e.getElementComponentSize=function(){return t.values.BYTES_PER_ELEMENT},e.getComponent=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=function(e,r,a){a!==t.values[e*t.numberOfComponents+r]&&(t.values[e*t.numberOfComponents+r]=a,n())},e.getData=function(){return t.values},e.getRange=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=e<0?t.numberOfComponents:e,r=null;return t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents)),(r=t.ranges[n])?(t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple):(r=ze(t.values,e,t.numberOfComponents),t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple)},e.setRange=function(e,n){t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents));var r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=function(e,n){for(var r=e*t.numberOfComponents,a=0;a1&&void 0!==arguments[1]?arguments[1]:je,r=t.numberOfComponents||1;n.length!==r&&(n.length=r);var a=e*r;if(1===r)n[0]=t.values[a];else if(2===r)n[0]=t.values[a],n[1]=t.values[a+1];else if(3===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2];else if(4===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2],n[3]=t.values[a+3];else for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=function(){return t.numberOfComponents},e.getNumberOfValues=function(){return t.values.length},e.getNumberOfTuples=function(){return t.values.length/t.numberOfComponents},e.getDataType=function(){return t.dataType},e.newClone=function(){return Ze({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents})},e.getName=function(){return t.name||(e.modified(),t.name="vtkDataArray".concat(e.getMTime())),t.name},e.setData=function(e,r){t.values=e,t.size=e.length,t.dataType=Ke(e),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),n()},e.getState=function(){var n=_e(_e({},t),{},{vtkClass:e.getClassName()});n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(function(e){n[e]||delete n[e]});var r={};return Object.keys(n).sort().forEach(function(e){r[e]=n[e]}),r.mtime&&delete r.mtime,r}}(e,t)}var Ze=f.d(Ye,"vtkDataArray"),Qe=_e(_e({newInstance:Ze,extend:Ye},Xe),d);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var et=1e-6,tt="coincide",nt="disjoint";function rt(e,t,n){var r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function at(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a);r[0]=e[0]-o*n[0],r[1]=e[1]-o*n[1],r[2]=e[2]-o*n[2]}function ot(e,t,n){var r=W(e,t),a=W(t,t);return 0===a&&(a=1),n[0]=e[0]-r*t[0]/a,n[1]=e[1]-r*t[1]/a,n[2]=e[2]-r*t[2]/a,n}function it(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a),i=W(n,n);0!==i?(r[0]=e[0]-o*n[0]/i,r[1]=e[1]-o*n[1]/i,r[2]=e[2]-o*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function st(e,t,n,r){var a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],i=[];G(t,e,o),G(n,e,i);var s=W(r,i),l=W(r,o);return(l<0?-l:l)<=(s<0?-s*et:s*et)?a:(a.t=s/l,a.x[0]=e[0]+a.t*o[0],a.x[1]=e[1]+a.t*o[1],a.x[2]=e[2]+a.t*o[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1,a)}function lt(e,t,n,r){var a={intersection:!1,l0:[],l1:[],error:null},o=[];z(t,r,o);var i,s=o.map(function(e){return Math.abs(e)});if(s[0]+s[1]+s[2]s[1]&&s[0]>s[2]?"x":s[1]>s[2]?"y":"z";var c=[],u=-W(t,e),d=-W(r,n);switch(i){case"x":c[0]=0,c[1]=(d*t[2]-u*r[2])/o[0],c[2]=(u*r[1]-d*t[1])/o[0];break;case"y":c[0]=(u*r[2]-d*t[2])/o[1],c[1]=0,c[2]=(d*t[0]-u*r[0])/o[1];break;case"z":c[0]=(d*t[1]-u*r[1])/o[2],c[1]=(u*r[0]-d*t[0])/o[2],c[2]=0}return a.l0=c,F(c,o,a.l1),a.intersection=!0,a}var ct={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:rt,projectPoint:at,projectVector:ot,generalizedProjectPoint:it,intersectWithLine:st,intersectWithPlane:lt,DISJOINT:nt,COINCIDE:tt};var ut={normal:[0,0,1],origin:[0,0,0]};function dt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ut,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=function(e){return rt(e,t.origin,t.normal)},e.projectPoint=function(e,n){at(e,t.origin,t.normal,n)},e.projectVector=function(e,n){return ot(e,t.normal,n)},e.push=function(e){if(0!==e)for(var n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=function(e,n){it(e,t.origin,t.normal,n)},e.evaluateFunction=function(e,n,r){return Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2])},e.evaluateGradient=function(e){return[t.normal[0],t.normal[1],t.normal[2]]},e.intersectWithLine=function(e,n){return st(e,n,t.origin,t.normal)},e.intersectWithPlane=function(e,n){return lt(e,n,t.origin,t.normal)}}(e,t)}var ft=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n(arguments.length<=1?void 0:arguments[1])?r:arguments.length<=1?void 0:arguments[1],e[2]=a<(arguments.length<=2?void 0:arguments[2])?a:arguments.length<=2?void 0:arguments[2],e[3]=o>(arguments.length<=2?void 0:arguments[2])?o:arguments.length<=2?void 0:arguments[2],e[4]=i<(arguments.length<=3?void 0:arguments[3])?i:arguments.length<=3?void 0:arguments[3],e[5]=s>(arguments.length<=3?void 0:arguments[3])?s:arguments.length<=3?void 0:arguments[3]}function Ot(e,t,n,r,a,o,i){var s=ht(e,6),l=s[0],c=s[1],u=s[2],d=s[3],f=s[4],p=s[5];void 0===i?(e[0]=Math.min(t[0],l),e[1]=Math.max(t[1],c),e[2]=Math.min(t[2],u),e[3]=Math.max(t[3],d),e[4]=Math.min(t[4],f),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,l),e[1]=Math.max(n,c),e[2]=Math.min(r,u),e[3]=Math.max(a,d),e[4]=Math.min(o,f),e[5]=Math.max(i,p))}function Mt(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t,e[1]=t>i?t:i,e[2]=n,e[3]=n>l?n:l,e[4]=r,e[5]=r>u?r:u,o!==t||s!==n||c!==r}function At(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Et(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function Dt(e,t){return e[2*t+1]-e[2*t]}function Vt(e){return[Dt(e,0),Dt(e,1),Dt(e,2)]}function Lt(e){return e.slice(0,2)}function Nt(e){return e.slice(2,4)}function Bt(e){return e.slice(4,6)}function kt(e){var t=Vt(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function Ft(e){if(St(e)){var t=Vt(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function Gt(e){return[e[0],e[2],e[4]]}function _t(e){return[e[1],e[3],e[5]]}function Ut(e,t){return e<=0&&t>=0||e>=0&&t<=0}function jt(e,t){for(var n=0,r=0;r<2;r++)for(var a=2;a<4;a++)for(var o=4;o<6;o++)t[n]=[e[r],e[a],e[o]],n++}function Wt(e,t,n){t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5]}function zt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Et(e);return t[0]=e[1]-n[0],t[1]=e[3]-n[1],t[2]=e[5]-n[2],t}function Ht(e,t,n,r){for(var a=[].concat(Tt),o=e.getData(),i=0;ie[2*u+1]?(i[u]=0,c[u]=e[2*u+1],o=!1):i[u]=2;if(o)return r[0]=t[0],r[1]=t[1],r[2]=t[2],a[0]=0,1;for(var d=0;d<3;d++)2!==i[d]&&0!==n[d]?l[d]=(c[d]-t[d])/n[d]:l[d]=-1;for(var f=0;f<3;f++)l[s]1||l[s]<0)return 0;a[0]=l[s];for(var p=0;p<3;p++)if(s!==p){if(r[p]=t[p]+l[s]*n[p],r[p]e[2*p+1])return 0}else r[p]=c[p];return 1}function Xt(e,t,n){for(var r=[],a=0,o=1,i=1,s=4;s<=5;++s){r[2]=e[s];for(var l=2;l<=3;++l){r[1]=e[l];for(var c=0;c<=1;++c)if(r[0]=e[c],a=ft.evaluate(n,t,r),i&&(o=a>=0?1:-1,i=0),0===a||o>0&&a<0||o<0&&a>0)return 1}}return 0}function qt(e,t){if(!St(e)||!St(t))return!1;for(var n,r=[0,0,0,0,0,0],a=0;a<3;a++)if(n=!1,t[2*a]>=e[2*a]&&t[2*a]<=e[2*a+1]?(n=!0,r[2*a]=t[2*a]):e[2*a]>=t[2*a]&&e[2*a]<=t[2*a+1]&&(n=!0,r[2*a]=e[2*a]),t[2*a+1]>=e[2*a]&&t[2*a+1]<=e[2*a+1]?(n=!0,r[2*a+1]=t[2*a+1]):e[2*a+1]>=t[2*a]&&e[2*a+1]<=t[2*a+1]&&(n=!0,r[2*a+1]=e[2*a+1]),!n)return!1;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],!0}function Yt(e,t){if(!St(e)||!St(t))return!1;for(var n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Zt(e,t,n,r){return!(te[1])&&(!(ne[3])&&!(re[5]))}function Qt(e,t,n){for(var 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],o=0,i=0;i<2;i++)for(var s=2;s<4;s++)for(var l=4;l<6;l++){var c=[e[i],e[s],e[l]];a[o++]=ft.evaluate(n,t,c)}for(var u=2;u--&&!(Ut(a[r[u][0]],a[r[u][4]])&&Ut(a[r[u][1]],a[r[u][5]])&&Ut(a[r[u][2]],a[r[u][6]])&&Ut(a[r[u][3]],a[r[u][7]])););if(u<0)return!1;for(var d=Math.sign(n[u]),f=Math.abs((e[2*u+1]-e[2*u])*n[u]),p=d>0?1:0,g=0;g<4;g++)if(0!==f){var m=Math.abs(a[r[u][g]])/f;d>0&&mp&&(p=m)}var v=(1-p)*e[2*u]+p*e[2*u+1];return d>0?e[2*u]=v:e[2*u+1]=v,!0}var $t=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bounds=t,this.bounds||(this.bounds=new Float64Array(6),Pt(this.bounds,Tt))}return function(e,t,n){t&&mt(e.prototype,t),n&&mt(e,n)}(e,[{key:"getBounds",value:function(){return this.bounds}},{key:"equals",value:function(e){return Ct(this.bounds,e)}},{key:"isValid",value:function(){return St(this.bounds)}},{key:"setBounds",value:function(e){return Pt(this.bounds,e)}},{key:"reset",value:function(){return wt(this.bounds)}},{key:"addPoint",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tn,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkFieldData");var n=e.getState;t.arrays&&(t.arrays=t.arrays.map(function(e){return{data:Object(en.a)(e.data)}})),e.initialize=function(){e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=function(){t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=function(n){e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map(function(e){return e}),t.arrays=n.arrays().map(function(e){return{array:e}})},e.getNumberOfArrays=function(){return t.arrays.length},e.getNumberOfActiveArrays=function(){return t.arrays.length},e.addArray=function(e){return t.arrays=[].concat(t.arrays,{data:e}),t.arrays.length-1},e.removeAllArrays=function(){t.arrays=[]},e.removeArray=function(e){t.arrays=t.arrays.filter(function(t){return e!==t.data.getName()})},e.removeArrayByIndex=function(e){t.arrays=t.arrays.filter(function(t,n){return n!==e})},e.getArrays=function(){return t.arrays.map(function(e){return e.data})},e.getArray=function(t){return"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t)},e.getArrayByName=function(e){return t.arrays.reduce(function(t,n,r){return n.data.getName()===e?n.data:t},null)},e.getArrayWithIndex=function(e){return t.arrays.reduce(function(t,n,r){return n.data&&n.data.getName()===e?{array:n.data,index:r}:t},{array:null,index:-1})},e.getArrayByIndex=function(e){return e>=0&&e=0},e.getArrayName=function(e){var n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=function(){return t.copyFieldFlags},e.getFlag=function(e){return t.copyFieldFlags[e]},e.passData=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach(function(n){var o=e.getFlag(n.getName());if(!1!==o&&(!t.doCopyAllOff||!0===o)&&n){var i=e.getArrayByName(n.getName());if(i){if(n.getNumberOfComponents()===i.getNumberOfComponents())if(r>-1&&r-1?a:r;i.setTuple(s,n.getTuple(r))}else for(var l=0;ln.getNumberOfTuples())e.addArray(n);else{var c=n.getNumberOfComponents(),u=n.getNumberOfValues(),d=a>-1?a:r;ue?t.data.getMTime():e},t.mtime)},e.getNumberOfComponents=function(){return t.arrays.reduce(function(e,t){return e+t.data.getNumberOfComponents()},0)},e.getNumberOfTuples=function(){return t.arrays.length>0?t.arrays[0].getNumberOfTuples():0},e.getState=function(){var e=n();return e.arrays=t.arrays.map(function(e){return{data:e.data.getState()}}),e}}(e,t)}var rn={newInstance:f.a.newInstance(nn,"vtkFieldData"),extend:nn},an={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln=an.AttributeTypes,cn=an.AttributeCopyOperations,un=f.a.vtkWarningMacro;var dn={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function fn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dn,n),rn.extend(e,t,n),f.a.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),function(e,t){var n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){var t=n.find(function(t){return ln[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()});return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes"),e.checkNumberOfComponents=function(e){return!0},e.setAttribute=function(n,a){var o=r(a);if(n&&"PEDIGREEIDS"===o.toUpperCase()&&!n.isA("vtkDataArray"))return un("Cannot set attribute ".concat(o,". The attribute must be a vtkDataArray.")),-1;if(n&&!e.checkNumberOfComponents(n,o))return un("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1;var i=t["active".concat(o)];if(i>=0&&i=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),f.a.obj(e,t),f.a.setGet(e,t,yn),function(e,t){t.classHierarchy.push("vtkDataSet"),yn.forEach(function(e){t[e]?t[e]=Object(en.a)(t[e]):t[e]=pn.newInstance()});var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),yn.forEach(function(n){t[n]=pn.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})}}(e,t)}var Cn=function(e){for(var t=1;te[1]||e[2]>e[3]||e[4]>e[5]?On.EMPTY:3===t?On.XYZ_GRID:2===t?e[0]===e[1]?On.YZ_PLANE:e[2]===e[3]?On.XZ_PLANE:On.XY_PLANE:1===t?e[0]0?(n[0]=2*(s*i+u*r+l*o-c*a)/d,n[1]=2*(l*i+u*a+c*r-s*o)/d,n[2]=2*(c*i+u*o+s*a-l*r)/d):(n[0]=2*(s*i+u*r+l*o-c*a),n[1]=2*(l*i+u*a+c*r-s*o),n[2]=2*(c*i+u*o+s*a-l*r)),Br(e,t,n),e}function Fr(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Gr(e,t){var n=t[0],r=t[1],a=t[2],o=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,a),e[1]=Math.hypot(o,i,s),e[2]=Math.hypot(l,c,u),e}function _r(e,t){var n=new In(3);Gr(n,t);var r=1/n[0],a=1/n[1],o=1/n[2],i=t[0]*r,s=t[1]*a,l=t[2]*o,c=t[4]*r,u=t[5]*a,d=t[6]*o,f=t[8]*r,p=t[9]*a,g=t[10]*o,m=i+u+g,v=0;return m>0?(v=2*Math.sqrt(m+1),e[3]=.25*v,e[0]=(d-p)/v,e[1]=(f-l)/v,e[2]=(s-c)/v):i>u&&i>g?(v=2*Math.sqrt(1+i-u-g),e[3]=(d-p)/v,e[0]=.25*v,e[1]=(s+c)/v,e[2]=(f+l)/v):u>g?(v=2*Math.sqrt(1+u-i-g),e[3]=(f-l)/v,e[0]=(s+c)/v,e[1]=.25*v,e[2]=(d+p)/v):(v=2*Math.sqrt(1+g-i-u),e[3]=(s-c)/v,e[0]=(f+l)/v,e[1]=(d+p)/v,e[2]=.25*v),e}function Ur(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3],l=a+a,c=o+o,u=i+i,d=a*l,f=a*c,p=a*u,g=o*c,m=o*u,v=i*u,h=s*l,y=s*c,b=s*u,T=r[0],C=r[1],S=r[2];return e[0]=(1-(g+v))*T,e[1]=(f+b)*T,e[2]=(p-y)*T,e[3]=0,e[4]=(f-b)*C,e[5]=(1-(d+v))*C,e[6]=(m+h)*C,e[7]=0,e[8]=(p+y)*S,e[9]=(m-h)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function jr(e,t,n,r,a){var o=t[0],i=t[1],s=t[2],l=t[3],c=o+o,u=i+i,d=s+s,f=o*c,p=o*u,g=o*d,m=i*u,v=i*d,h=s*d,y=l*c,b=l*u,T=l*d,C=r[0],S=r[1],P=r[2],w=a[0],x=a[1],O=a[2],M=(1-(m+h))*C,A=(p+T)*C,I=(g-b)*C,R=(p-T)*S,E=(1-(f+h))*S,D=(v+y)*S,V=(g+b)*P,L=(v-y)*P,N=(1-(f+m))*P;return e[0]=M,e[1]=A,e[2]=I,e[3]=0,e[4]=R,e[5]=E,e[6]=D,e[7]=0,e[8]=V,e[9]=L,e[10]=N,e[11]=0,e[12]=n[0]+w-(M*w+R*x+V*O),e[13]=n[1]+x-(A*w+E*x+L*O),e[14]=n[2]+O-(I*w+D*x+N*O),e[15]=1,e}function Wr(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n+n,s=r+r,l=a+a,c=n*i,u=r*i,d=r*s,f=a*i,p=a*s,g=a*l,m=o*i,v=o*s,h=o*l;return e[0]=1-d-g,e[1]=u+h,e[2]=f-v,e[3]=0,e[4]=u-h,e[5]=1-c-g,e[6]=p+m,e[7]=0,e[8]=f+v,e[9]=p-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zr(e,t,n,r,a,o,i){var s=1/(n-t),l=1/(a-r),c=1/(o-i);return e[0]=2*o*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*o*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(a+r)*l,e[10]=(i+o)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*o*2*c,e[15]=0,e}function Hr(e,t,n,r,a){var o,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(o=1/(r-a),e[10]=(a+r)*o,e[14]=2*a*r*o):(e[10]=-1,e[14]=-2*r),e}function Kr(e,t,n,r){var a=Math.tan(t.upDegrees*Math.PI/180),o=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(a+o);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(a-o)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function Xr(e,t,n,r,a,o,i){var s=1/(t-n),l=1/(r-a),c=1/(o-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(a+r)*l,e[14]=(i+o)*c,e[15]=1,e}function qr(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g=t[0],m=t[1],v=t[2],h=r[0],y=r[1],b=r[2],T=n[0],C=n[1],S=n[2];return Math.abs(g-T)0&&(u*=p=1/Math.sqrt(p),d*=p,f*=p);var g=l*f-c*d,m=c*u-s*f,v=s*d-l*u;return(p=g*g+m*m+v*v)>0&&(g*=p=1/Math.sqrt(p),m*=p,v*=p),e[0]=g,e[1]=m,e[2]=v,e[3]=0,e[4]=d*v-f*m,e[5]=f*g-u*v,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=f,e[11]=0,e[12]=a,e[13]=o,e[14]=i,e[15]=1,e}function Zr(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Qr(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function $r(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Jr(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function ea(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function ta(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function na(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[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]}function ra(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=e[9],f=e[10],p=e[11],g=e[12],m=e[13],v=e[14],h=e[15],y=t[0],b=t[1],T=t[2],C=t[3],S=t[4],P=t[5],w=t[6],x=t[7],O=t[8],M=t[9],A=t[10],I=t[11],R=t[12],E=t[13],D=t[14],V=t[15];return Math.abs(n-y)<=An*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-b)<=An*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(a-T)<=An*Math.max(1,Math.abs(a),Math.abs(T))&&Math.abs(o-C)<=An*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(i-S)<=An*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-P)<=An*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(l-w)<=An*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(c-x)<=An*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(u-O)<=An*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-M)<=An*Math.max(1,Math.abs(d),Math.abs(M))&&Math.abs(f-A)<=An*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(p-I)<=An*Math.max(1,Math.abs(p),Math.abs(I))&&Math.abs(g-R)<=An*Math.max(1,Math.abs(g),Math.abs(R))&&Math.abs(m-E)<=An*Math.max(1,Math.abs(m),Math.abs(E))&&Math.abs(v-D)<=An*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(h-V)<=An*Math.max(1,Math.abs(h),Math.abs(V))}var aa=Pr,oa=Jr;function ia(){var e=new In(3);return In!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function sa(e){var t=new In(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function la(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function ca(e,t,n){var r=new In(3);return r[0]=e,r[1]=t,r[2]=n,r}function ua(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function da(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function fa(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function pa(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function ga(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function ma(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function va(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ha(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function ya(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function ba(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Ta(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function Ca(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Sa(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Pa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return Math.hypot(n,r,a)}function wa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return n*n+r*r+a*a}function xa(e){var t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function Oa(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ma(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Aa(e,t){var n=t[0],r=t[1],a=t[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function Ia(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ra(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2];return e[0]=a*l-o*s,e[1]=o*i-r*l,e[2]=r*s-a*i,e}function Ea(e,t,n,r){var a=t[0],o=t[1],i=t[2];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e}function Da(e,t,n,r,a,o){var i=o*o,s=i*(2*o-3)+1,l=i*(o-2)+o,c=i*(o-1),u=i*(3-2*o);return e[0]=t[0]*s+n[0]*l+r[0]*c+a[0]*u,e[1]=t[1]*s+n[1]*l+r[1]*c+a[1]*u,e[2]=t[2]*s+n[2]*l+r[2]*c+a[2]*u,e}function Va(e,t,n,r,a,o){var i=1-o,s=i*i,l=o*o,c=s*i,u=3*o*s,d=3*l*i,f=l*o;return e[0]=t[0]*c+n[0]*u+r[0]*d+a[0]*f,e[1]=t[1]*c+n[1]*u+r[1]*d+a[1]*f,e[2]=t[2]*c+n[2]*u+r[2]*d+a[2]*f,e}function La(e,t){t=t||1;var n=2*Rn()*Math.PI,r=2*Rn()-1,a=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(n)*a,e[1]=Math.sin(n)*a,e[2]=r*t,e}function Na(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,e[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,e[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,e}function Ba(e,t,n){var r=t[0],a=t[1],o=t[2];return e[0]=r*n[0]+a*n[3]+o*n[6],e[1]=r*n[1]+a*n[4]+o*n[7],e[2]=r*n[2]+a*n[5]+o*n[8],e}function ka(e,t,n){var r=n[0],a=n[1],o=n[2],i=n[3],s=t[0],l=t[1],c=t[2],u=a*c-o*l,d=o*s-r*c,f=r*l-a*s,p=a*f-o*d,g=o*u-r*f,m=r*d-a*u,v=2*i;return u*=v,d*=v,f*=v,p*=2,g*=2,m*=2,e[0]=s+u+p,e[1]=l+d+g,e[2]=c+f+m,e}function Fa(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0],o[1]=a[1]*Math.cos(r)-a[2]*Math.sin(r),o[2]=a[1]*Math.sin(r)+a[2]*Math.cos(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ga(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[2]*Math.sin(r)+a[0]*Math.cos(r),o[1]=a[1],o[2]=a[2]*Math.cos(r)-a[0]*Math.sin(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function _a(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0]*Math.cos(r)-a[1]*Math.sin(r),o[1]=a[0]*Math.sin(r)+a[1]*Math.cos(r),o[2]=a[2],e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ua(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2],l=Math.sqrt(n*n+r*r+a*a)*Math.sqrt(o*o+i*i+s*s),c=l&&Ia(e,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function ja(e){return e[0]=0,e[1]=0,e[2]=0,e}function Wa(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function za(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ha(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2];return Math.abs(n-o)<=An*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-i)<=An*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-s)<=An*Math.max(1,Math.abs(a),Math.abs(s))}var Ka=pa,Xa=ga,qa=ma,Ya=Pa,Za=wa,Qa=la,$a=xa,Ja=function(){var e=ia();return function(t,n,r,a,o,i){var s,l;for(n||(n=3),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;s0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=a*i,e[3]=o*i,e}function wo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function xo(e,t,n,r){var a=n[0]*r[1]-n[1]*r[0],o=n[0]*r[2]-n[2]*r[0],i=n[0]*r[3]-n[3]*r[0],s=n[1]*r[2]-n[2]*r[1],l=n[1]*r[3]-n[3]*r[1],c=n[2]*r[3]-n[3]*r[2],u=t[0],d=t[1],f=t[2],p=t[3];return e[0]=d*c-f*l+p*s,e[1]=-u*c+f*i-p*o,e[2]=u*l-d*i+p*a,e[3]=-u*s+d*o-f*a,e}function Oo(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e[3]=s+r*(n[3]-s),e}function Mo(e,t){var n,r,a,o,i,s;t=t||1;do{i=(n=2*Rn()-1)*n+(r=2*Rn()-1)*r}while(i>=1);do{s=(a=2*Rn()-1)*a+(o=2*Rn()-1)*o}while(s>=1);var l=Math.sqrt((1-i)/s);return e[0]=t*n,e[1]=t*r,e[2]=t*a*l,e[3]=t*o*l,e}function Ao(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3];return e[0]=n[0]*r+n[4]*a+n[8]*o+n[12]*i,e[1]=n[1]*r+n[5]*a+n[9]*o+n[13]*i,e[2]=n[2]*r+n[6]*a+n[10]*o+n[14]*i,e[3]=n[3]*r+n[7]*a+n[11]*o+n[15]*i,e}function Io(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2],c=n[3],u=c*r+s*o-l*a,d=c*a+l*r-i*o,f=c*o+i*a-s*r,p=-i*r-s*a-l*o;return e[0]=u*c+p*-i+d*-l-f*-s,e[1]=d*c+p*-s+f*-i-u*-l,e[2]=f*c+p*-l+u*-s-d*-i,e[3]=t[3],e}function Ro(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Eo(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Do(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Vo(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=t[0],s=t[1],l=t[2],c=t[3];return Math.abs(n-i)<=An*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=An*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-l)<=An*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(o-c)<=An*Math.max(1,Math.abs(o),Math.abs(c))}var Lo=io,No=so,Bo=lo,ko=ho,Fo=yo,Go=bo,_o=To,Uo=function(){var e=eo();return function(t,n,r,a,o,i){var s,l;for(n||(n=4),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;sAn?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Ko(e,t){var n=mi(e,t);return Math.acos(2*n*n-1)}function Xo(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+a*c-o*l,e[1]=a*u+i*l+o*s-r*c,e[2]=o*u+i*c+r*l-a*s,e[3]=i*u-r*s-a*l-o*c,e}function qo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+i*s,e[1]=a*l+o*s,e[2]=o*l-a*s,e[3]=i*l-r*s,e}function Yo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l-o*s,e[1]=a*l+i*s,e[2]=o*l+r*s,e[3]=i*l-a*s,e}function Zo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+a*s,e[1]=a*l-r*s,e[2]=o*l+i*s,e[3]=i*l-o*s,e}function Qo(e,t){var n=t[0],r=t[1],a=t[2];return e[0]=n,e[1]=r,e[2]=a,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-a*a)),e}function $o(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=Math.exp(o),l=i>0?s*Math.sin(i)/i:0;return e[0]=n*l,e[1]=r*l,e[2]=a*l,e[3]=s*Math.cos(i),e}function Jo(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=i>0?Math.atan2(i,o)/i:0;return e[0]=n*s,e[1]=r*s,e[2]=a*s,e[3]=.5*Math.log(n*n+r*r+a*a+o*o),e}function ei(e,t,n){return Jo(e,t),gi(e,e,n),$o(e,e),e}function ti(e,t,n,r){var a,o,i,s,l,c=t[0],u=t[1],d=t[2],f=t[3],p=n[0],g=n[1],m=n[2],v=n[3];return(o=c*p+u*g+d*m+f*v)<0&&(o=-o,p=-p,g=-g,m=-m,v=-v),1-o>An?(a=Math.acos(o),i=Math.sin(a),s=Math.sin((1-r)*a)/i,l=Math.sin(r*a)/i):(s=1-r,l=r),e[0]=s*c+l*p,e[1]=s*u+l*g,e[2]=s*d+l*m,e[3]=s*f+l*v,e}function ni(e){var t=Rn(),n=Rn(),r=Rn(),a=Math.sqrt(1-t),o=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*n),e[1]=a*Math.cos(2*Math.PI*n),e[2]=o*Math.sin(2*Math.PI*r),e[3]=o*Math.cos(2*Math.PI*r),e}function ri(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n*n+r*r+a*a+o*o,s=i?1/i:0;return e[0]=-n*s,e[1]=-r*s,e[2]=-a*s,e[3]=o*s,e}function ai(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function oi(e,t){var n,r=t[0]+t[4]+t[8];if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var o=(a+1)%3,i=(a+2)%3;n=Math.sqrt(t[3*a+a]-t[3*o+o]-t[3*i+i]+1),e[a]=.5*n,n=.5/n,e[3]=(t[3*o+i]-t[3*i+o])*n,e[o]=(t[3*o+a]+t[3*a+o])*n,e[i]=(t[3*i+a]+t[3*a+i])*n}return e}function ii(e,t,n,r){var a=.5*Math.PI/180;t*=a,n*=a,r*=a;var o=Math.sin(t),i=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(r),u=Math.cos(r);return e[0]=o*l*u-i*s*c,e[1]=i*s*u+o*l*c,e[2]=i*l*c-o*s*u,e[3]=i*l*u+o*s*c,e}function si(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var li=to,ci=no,ui=ro,di=ao,fi=oo,pi=Xo,gi=mo,mi=wo,vi=Oo,hi=bo,yi=hi,bi=To,Ti=bi,Ci=Po,Si=Do,Pi=Vo,wi=function(){var e=ia(),t=ca(1,0,0),n=ca(0,1,0);return function(r,a,o){var i=Ia(a,o);return i<-.999999?(Ra(e,t,a),Qa(e)<1e-6&&Ra(e,n,a),Aa(e,e),zo(r,e,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Ra(e,a,o),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+i,Ci(r,r))}}(),xi=function(){var e=jo(),t=jo();return function(n,r,a,o,i,s){return ti(e,r,i,s),ti(t,a,o,s),ti(n,e,t,2*s*(1-s)),n}}(),Oi=function(){var e=Nn();return function(t,n,r,a){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=a[0],e[4]=a[1],e[7]=a[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Ci(t,oi(t,e))}}();function Mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ai(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ai(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ri,n),Cn.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=a.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),f.a.get(e,t,["direction","indexToWorld","worldToIndex"]),f.a.setGetArray(e,t,["origin","spacing"],3),f.a.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&(n*=t[r]-1)}return n},e.getNumberOfPoints=function(){var t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=function(n){var r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return Ii("Requesting a point from an empty image."),null;var a=new Float64Array(3);switch(t.dataDescription){case Sn.EMPTY:return null;case Sn.SINGLE_POINT:break;case Sn.X_LINE:a[0]=n;break;case Sn.Y_LINE:a[1]=n;break;case Sn.Z_LINE:a[2]=n;break;case Sn.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Sn.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Sn.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Sn.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:Ii("Invalid dataDescription")}var o=[0,0,0];return e.indexToWorld(a,o),o},e.getBounds=function(){return e.extentToBounds(t.extent)},e.extentToBounds=function(t){var n=[t[0],t[2],t[4],t[1],t[2],t[4],t[0],t[3],t[4],t[1],t[3],t[4],t[0],t[2],t[5],t[1],t[2],t[5],t[0],t[3],t[5],t[1],t[3],t[5]],r=new Float64Array([n[0],n[1],n[2]]),a=new Float64Array(3);e.indexToWorld(r,a);for(var o=[a[0],a[0],a[1],a[1],a[2],a[2]],s=3;s<24;s+=3)i.set(r,n[s],n[s+1],n[s+2]),e.indexToWorld(r,a),a[0]o[1]&&(o[1]=a[0]),a[1]>o[3]&&(o[3]=a[1]),a[2]>o[5]&&(o[5]=a[2]);return o},e.computeTransforms=function(){o.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],o.scale(t.indexToWorld,t.indexToWorld,t.spacing),o.invert(t.worldToIndex,t.indexToWorld)},e.setDirection=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.indexToWorld),i.transformMat4(s,a,t.indexToWorld),Oe(o,s,n),n},e.worldToIndexBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.worldToIndex),i.transformMat4(s,a,t.worldToIndex),Oe(o,s,n),n},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=function(){for(var t=e.getBounds(),n=[],r=0;r<3;r++)n[r]=(t[2*r+1]+t[2*r])/2;return n},e.computeHistogram=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);var a=[0,0,0],o=[0,0,0];Jt.computeCornerPoints(r,a,o),ie(a,a),ie(o,o);var i=e.getDimensions();Ae(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a),Ae(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o);for(var s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData(),u=-1/0,d=1/0,f=0,p=0,g=0,m=a[2];m<=o[2];m++)for(var v=a[1];v<=o[1];v++)for(var h=a[0]+v*s+m*l,y=a[0];y<=o[0];y++){if(!n||n([y,v,m],r)){var b=c[h];b>u&&(u=b),b0?p/g:0,C=f-T*T;return{minimum:d,maximum:u,average:T,variance:C,sigma:Math.sqrt(C)}},e.computeIncrements=function(e){for(var t=[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=0;r<3;++r)t[r]=n,n*=e[2*r+1]-e[2*r]+1;return t},e.computeOffsetIndex=function(t){var n=Mi(t,3),r=n[0],a=n[1],o=n[2],i=e.getExtent(),s=e.getPointData().getScalars().getNumberOfComponents(),l=e.computeIncrements(i,s);return Math.floor((Math.round(r)-i[0])*l[0]+(Math.round(a)-i[2])*l[1]+(Math.round(o)-i[4])*l[2])},e.getOffsetIndexFromWorld=function(t){for(var n=e.getExtent(),r=e.worldToIndex(t),a=0;a<3;++a)if(r[a]n[2*a+1])return Ii("GetScalarPointer: Pixel ".concat(r," is not in memory. Current extent = ").concat(n)),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return Ii("GetScalarPointer: Scalar Component ".concat(n," is not within bounds. Current Scalar numberOfComponents: ").concat(r)),NaN;var a=e.getOffsetIndexFromWorld(t);return Number.isNaN(a)?a:e.getPointData().getScalars().getComponent(a,n)}}(e,t)}var Di={newInstance:f.a.newInstance(Ei,"vtkImageData"),extend:Ei};function Vi(e){return function(){return f.a.vtkErrorMacro("vtkProp::".concat(e," - NOT IMPLEMENTED"))}}var Li={visibility:!0,pickable:!0,dragable:!0,useBounds:!0,allocatedRenderTime:10,estimatedRenderTime:0,savedEstimatedRenderTime:0,renderTimeMultiplier:1,paths:null,textures:[]};function Ni(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Li,n),f.a.obj(e,t),f.a.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),f.a.setGet(e,t,["visibility","pickable","dragable","useBounds","renderTimeMultiplier"]),function(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=function(){for(var e=t.mtime,n=0;ne&&(e=r)}return e},e.getNestedProps=function(){return null},e.getActors=function(){return[]},e.getActors2D=function(){return[]},e.getVolumes=function(){return[]},e.pick=Vi("pick"),e.hasKey=Vi("hasKey"),e.getRedrawMTime=function(){return t.mtime},e.setEstimatedRenderTime=function(e){t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=function(){t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=function(e){t.estimatedRenderTime+=e},e.setAllocatedRenderTime=function(e){t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=function(){return!1},e.getTextures=function(){return t.textures},e.hasTexture=function(e){return-1!==t.textures.indexOf(e)},e.addTexture=function(n){n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=function(n){var r=t.textures.filter(function(e){return e!==n});t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=function(){t.textures=[],e.modified()}}(e,t)}var Bi={newInstance:f.a.newInstance(Ni,"vtkProp"),extend:Ni};var ki={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 Fi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ki,n),Bi.extend(e,t,n),t.matrixMTime={},f.a.obj(t.matrixMTime),f.a.get(e,t,["bounds","isIdentity"]),f.a.getArray(e,t,["orientation"]),f.a.setGetArray(e,t,["origin","position","scale"],3),t.matrix=o.identity(new Float64Array(16)),t.rotation=o.identity(new Float64Array(16)),t.userMatrix=o.identity(new Float64Array(16)),t.transform=null,function(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=function(n){t.position=t.position.map(function(e,t){return e+n[t]}),e.modified()},e.getOrientationWXYZ=function(){var e=l.create();o.getRotation(e,t.rotation);var n=new Float64Array(3);return[O(l.getAxisAngle(n,e)),n[0],n[1],n[2]]},e.rotateX=function(n){0!==n&&(o.rotateX(t.rotation,t.rotation,x(n)),e.modified())},e.rotateY=function(n){0!==n&&(o.rotateY(t.rotation,t.rotation,x(n)),e.modified())},e.rotateZ=function(n){0!==n&&(o.rotateZ(t.rotation,t.rotation,x(n)),e.modified())},e.rotateWXYZ=function(n,r,a,i){if(0!==n&&(0!==r||0!==a||0!==i)){var s=x(n),c=l.create();l.setAxisAngle(c,[r,a,i],s);var u=new Float64Array(16);o.fromQuat(u,c),o.multiply(t.rotation,t.rotation,u),e.modified()}},e.setOrientation=function(n,r,a){return(n!==t.orientation[0]||r!==t.orientation[1]||a!==t.orientation[2])&&(t.orientation=[n,r,a],o.identity(t.rotation),e.rotateZ(a),e.rotateX(n),e.rotateY(r),e.modified(),!0)},e.setUserMatrix=function(n){o.copy(t.userMatrix,n),e.modified()},e.getMatrix=function(){return e.computeMatrix(),t.matrix},e.computeMatrix=function(){if(e.getMTime()>t.matrixMTime.getMTime()){o.identity(t.matrix),t.userMatrix&&o.multiply(t.matrix,t.matrix,t.userMatrix),o.translate(t.matrix,t.matrix,t.origin),o.translate(t.matrix,t.matrix,t.position),o.multiply(t.matrix,t.matrix,t.rotation),o.scale(t.matrix,t.matrix,t.scale),o.translate(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),o.transpose(t.matrix,t.matrix),t.isIdentity=!0;for(var n=0;n<4;++n)for(var r=0;r<4;++r)(n===r?1:0)!==t.matrix[n+4*r]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=function(){return Jt.getCenter(t.bounds)},e.getLength=function(){return Jt.getLength(t.bounds)},e.getXRange=function(){return Jt.getXRange(t.bounds)},e.getYRange=function(){return Jt.getYRange(t.bounds)},e.getZRange=function(){return Jt.getZRange(t.bounds)},e.getUserMatrix=function(){return t.userMatrix},e.onModified(function(){e.computeMatrix()})}(e,t)}var Gi={newInstance:f.a.newInstance(Fi,"vtkProp3D"),extend:Fi},_i={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},Ui={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:_i},ji={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Wi={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:ji};function zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ki=Ui.ScalarMappingTarget,Xi=Ui.VectorMode,qi=Qe.VtkDataTypes,Yi=Wi.ColorMode,Zi=f.a.vtkErrorMacro;function Qi(e){return e}function $i(e){return Math.floor(255*e+.5)}var Ji={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Xi.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ji,n),f.a.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],f.a.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),f.a.setArray(e,t,["mappingRange"],2),f.a.getArray(e,t,["mappingRange"]),function(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=function(){return e.setVectorMode(Xi.MAGNITUDE)},e.setVectorModeToComponent=function(){return e.setVectorMode(Xi.COMPONENT)},e.setVectorModeToRGBColors=function(){return e.setVectorMode(Xi.RGBCOLORS)},e.build=function(){},e.isOpaque=function(){return!0},e.setAnnotations=function(n,r){if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)Zi("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n)for(var a=r.length,o=0;o=0?t.annotationArray[a].annotation!==r&&(t.annotationArray[a].annotation=r,o=!0):(t.annotationArray.push({value:n,annotation:r}),a=t.annotationArray.length-1,o=!0),o&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=function(){return t.annotationArray.length},e.getAnnotatedValue=function(e){return e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value},e.getAnnotation=function(e){return void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation},e.getAnnotatedValueIndex=function(n){return t.annotationArray.length?e.checkForAnnotatedValue(n):-1},e.removeAnnotation=function(n){var r=e.checkForAnnotatedValue(n),a=r>=0;return a&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=function(){t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=function(n,r){if(t.indexedLookup){var a=e.getAnnotatedValueIndex(n);e.getIndexedColor(a,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=function(t){return e.getAnnotatedValueIndexInternal(t)},e.getAnnotatedValueIndexInternal=function(e){if(void 0!==t.annotatedValueMap[e]){var n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=function(e,t){t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=function(){t.annotatedValueMap=[];for(var e=t.annotationArray.length,n=0;n1?e.mapVectorsThroughTable(t,o,Ki.RGBA,-1,-1):(l<0&&(l=0),l>=a&&(l=a-1),e.mapScalarsThroughTable(t,o,Ki.RGBA,l))}return o},e.mapVectorsToMagnitude=function(e,t,n){for(var r=e.getNumberOfTuples(),a=e.getNumberOfComponents(),o=t.getData(),i=e.getData(),s=0;s=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==Xi.MAGNITUDE||1!==c&&1!==s||(i=Xi.COMPONENT));var u=0;switch(l>0&&(u=l),i){case Xi.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;default:case Xi.MAGNITUDE:var d=Qe.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,d,s),e.mapScalarsThroughTable(d,n,r,0);break;case Xi.RGBCOLORS:}},e.luminanceToRGBA=function(e,t,n,r){for(var a=r(n),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c=1&&n.getDataType()===qi.UNSIGNED_CHAR)return n;var i=Qe.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:qi.UNSIGNED_CHAR});if(a<=0)return i;o=(o=o>0?o:0)<1?o:1;var s=Qi;switch(n.getDataType()!==qi.FLOAT&&n.getDataType()!==qi.DOUBLE||(s=$i),r){case 1:e.luminanceToRGBA(i,n,o,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,o,s);break;case 4:e.rGBAToRGBA(i,n,o,s);break;default:return Zi("Cannot convert colors"),null}return i},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return 16777216},e.setRange=function(t,n){return e.setMappingRange(t,n)},e.getRange=function(t,n){return e.getMappingRange()}}(e,t)}var ts=function(e){for(var t=1;t.001?Math.acos(n/o):0,s=i>.001?Math.atan2(a,r):0;t[0]=o,t[1]=i,t[2]=s}function fs(e,t){if(e[0]>=t-.1)return e[2];var n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+n:e[2]-n}function ps(e,t,n,r){var a=[],o=[];Se(t,a),Se(n,o);var i=[],s=[];ds(a,i),ds(o,s);var l=e;if(i[1]>.05&&s[1]>.05&&function(e,t){var n=e-t;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}(i[2],s[2])>.33*Math.PI){var c=Math.max(i[0],s[0]);c=Math.max(88,c),e<.5?(s[0]=c,s[1]=0,s[2]=0,l*=2):(i[0]=c,i[1]=0,i[2]=0,l=2*l-1)}i[1]<.05&&s[1]>.05?i[2]=fs(s,i[0]):s[1]<.05&&i[1]>.05&&(s[2]=fs(i,s[0]));var u=[];u[0]=(1-l)*i[0]+l*s[0],u[1]=(1-l)*i[1]+l*s[1],u[2]=(1-l)*i[2]+l*s[2];var d=[];!function(e,t){var n=e[0],r=e[1],a=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(a),t[2]=n*Math.sin(r)*Math.sin(a)}(u,d),Pe(d,r)}var gs={clamping:!0,colorSpace:os.RGB,hSVWrap:!0,scale:is.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 ms(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gs,n),ts.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},f.a.obj(t.buildTime),f.a.get(e,t,["buildTime","mappingRange"]),f.a.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=function(){return t.nodes.length},e.addRGBPoint=function(t,n,r,a){return e.addRGBPointLong(t,n,r,a,.5,0)},e.addRGBPointLong=function(n,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(i<0||i>1)return cs("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return cs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var l={x:n,r:r,g:a,b:o,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();for(var c=0;c4&&void 0!==arguments[4]?arguments[4]:.5,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=[];return he([n,r,a],s),e.addRGBPoint(t,s[0],s[1],s[2],o,i)},e.setNodes=function(n){t.nodes!==n&&(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=function(){t.nodes.sort(function(e,t){return e.x-t.x}),e.updateRange()||e.modified()},e.updateRange=function(){var n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];var r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&&(e.modified(),!0)},e.removePoint=function(n){for(var r=0;r=t.nodes.length)return-1;var o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.movePoint=function(n,r){if(n!==r){e.removePoint(r);for(var a=0;a=n&&t.nodes[u].x<=i?t.nodes.splice(u,1):u++;e.addRGBPointLong(n,r,a,o,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=function(t,n,r,a,o,i,s,l){var c=[i,s,l],u=[],d=[];he([n,r,a],u),he(c,d),e.addRGBSegment(t,u[0],u[1],u[2],o,d[0],d[1],d[2])},e.mapValue=function(t){var n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=function(n,r){if(t.indexedLookup){var a=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o<0||0===a)e.getNanColor(r);else{var i=[];e.getNodeValue(o%a,i),r[0]=i.r,r[1]=i.g,r[2]=i.b}}else e.getTable(n,n,1,r)},e.getRedValue=function(t){var n=[];return e.getColor(t,n),n[0]},e.getGreenValue=function(t){var n=[];return e.getColor(t,n),n[1]},e.getBlueValue=function(t){var n=[];return e.getColor(t,n),n[2]},e.getTable=function(n,r,a,o){if(Le(n)||Le(r))for(var i=0;i0);var C=0,S=0,P=0;T&&(C=Math.log10(n),S=Math.log10(r));for(var w=0;w1?T?(P=C+w/(a-1)*(S-C),f=Math.pow(10,P)):f=n+w/(a-1)*(r-n):T?(P=.5*(C+S),f=Math.pow(10,P)):f=.5*(n+r),t.discretize){var O=t.mappingRange;if(f>=O[0]&&f<=O[1]){var M=t.numberOfValues,I=O[1]-O[0];if(M<=1)f=O[0]+I/2;else{var R=(f-O[0])/I,E=A(M*R);f=O[0]+E/(M-1)*I}}}for(;st.nodes[s].x;)++s.99999&&(h=.99999));if(f>t.mappingRange[1])o[x]=0,o[x+1]=0,o[x+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(o[x]=t.aboveRangeColor[0],o[x+1]=t.aboveRangeColor[1],o[x+2]=t.aboveRangeColor[2]):(o[x]=c,o[x+1]=u,o[x+2]=d));else if(f0&&(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b));else if(0===s&&(Math.abs(f-n)<1e-6||t.discretize))l>0?(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b):(o[x]=0,o[x+1]=0,o[x+2]=0);else{var D=0;if(D=(D=T?(P-p)/(g-p):(f-p)/(g-p)).99){if(D<.5){o[x]=m[0],o[x+1]=m[1],o[x+2]=m[2];continue}o[x]=v[0],o[x+1]=v[1],o[x+2]=v[2];continue}if(y<.01){if(t.colorSpace===os.RGB)o[x]=(1-D)*m[0]+D*v[0],o[x+1]=(1-D)*m[1]+D*v[1],o[x+2]=(1-D)*m[2]+D*v[2];else if(t.colorSpace===os.HSV){var V=[],L=[];ve(m,V),ve(v,L),t.hSVWrap&&(V[0]-L[0]>.5||L[0]-V[0]>.5)&&(V[0]>L[0]?V[0]-=1:L[0]-=1);var N=[];N[0]=(1-D)*V[0]+D*L[0],N[0]<0&&(N[0]+=1),N[1]=(1-D)*V[1]+D*L[1],N[2]=(1-D)*V[2]+D*L[2],he(N,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var B=[],k=[];Se(m,B),Se(v,k);var F=[];F[0]=(1-D)*B[0]+D*k[0],F[1]=(1-D)*B[1]+D*k[1],F[2]=(1-D)*B[2]+D*k[2],Pe(F,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.",t.colorSpace);continue}D<.5?D=.5*Math.pow(2*D,1+10*y):D>.5&&(D=1-.5*Math.pow(2*(1-D),1+10*y));var G=D*D,_=G*D,U=2*_-3*G+1,j=-2*_+3*G,W=_-2*G+D,z=_-G,H=void 0;if(t.colorSpace===os.RGB)for(var K=0;K<3;K++)H=(1-y)*(v[K]-m[K]),o[x+K]=U*m[K]+j*v[K]+W*H+z*H;else if(t.colorSpace===os.HSV){var X=[],q=[];ve(m,X),ve(v,q),t.hSVWrap&&(X[0]-q[0]>.5||q[0]-X[0]>.5)&&(X[0]>q[0]?X[0]-=1:q[0]-=1);for(var Y=[],Z=0;Z<3;Z++)H=(1-y)*(q[Z]-X[Z]),Y[Z]=U*X[Z]+j*q[Z]+W*H+z*H,0===Z&&Y[Z]<0&&(Y[Z]+=1);he(Y,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var Q=[],$=[];Se(m,Q),Se(v,$);for(var J=[],ee=0;ee<3;ee++)H=(1-y)*($[ee]-Q[ee]),J[ee]=U*Q[ee]+j*$[ee]+W*H+z*H;Pe(J,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.");for(var te=0;te<3;te++)o[x+te]=o[x+te]<0?0:o[x+te],o[x+te]=o[x+te]>1?1:o[x+te]}}}},e.getUint8Table=function(n,r,a){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==o)return t.table;if(0===t.nodes.length)return cs("Attempting to lookup a value with no points in the function"),t.table;var i=o?4:3;t.tableSize===a&&t.tableWithAlpha===o||(t.table=new Uint8Array(a*i),t.tableSize=a,t.tableWithAlpha=o);var s=[];e.getTable(n,r,a,s);for(var l=0;l1&&(i=(r-n)/(a-1));for(var s=0;s=t.nodes.length?(cs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){if(n<0||n>=t.nodes.length)return cs("Index out of range!"),-1;var a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=function(){return t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216},e.getIndexedColor=function(t,n){var r=e.getSize();if(r>0&&t>=0){var a=[];e.getNodeValue(t%r,a);for(var o=0;o<3;++o)n[o]=a[o+1];n[3]=1}else e.getNanColor(n),n[3]=1},e.fillFromDataPointer=function(t,n){if(!(t<=0)&&n){e.removeAllPoints();for(var r=0;rn[1]?(e.getColor(n[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])):(e.getColor(r[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(var o=0;o=n[0]&&t.nodes[o].x<=n[1]?t.nodes.splice(o,1):++o;return 1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){if(t.nodes.length<2)return-1;for(var e=Number.MAX_VALUE,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ys,n),f.a.obj(e,t),t.nodes=[],f.a.setGet(e,t,["allowDuplicateScalars","clamping"]),f.a.setArray(e,t,["range"],2),f.a.getArray(e,t,["range"]),function(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=function(){return t.nodes.length},e.getType=function(){var e,n=0,r=0;t.nodes.length>0&&(n=t.nodes[0].y);for(var a=1;an)switch(r){case 0:case 1:r=1;break;default:case 2:r=3}else switch(r){case 0:case 2:r=2;break;default:case 1:r=3}if(n=e,3===r)break}switch(r){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:case 3:return"Varied"}},e.getDataPointer=function(){var e=t.nodes.length;if(t.function=null,e>0){t.function=[];for(var n=0;n0?t.nodes[n-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x},e.getNodeValue=function(e,n){var r=t.nodes.length;return e<0||e>=r?(hs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){var a=t.nodes.length;if(n<0||n>=a)return hs("Index out of range!"),-1;var o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=function(t,n){return e.addPointLong(t,n,.5,0)},e.addPointLong=function(n,r,a,o){if(a<0||a>1)return hs("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return hs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var i,s={x:n,y:r,midpoint:a,sharpness:o};for(t.nodes.push(s),e.sortAndUpdateRange(),i=0;i=t.nodes.length)return-1;var a=r,o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addSegment=function(n,r,a,o){e.sortAndUpdateRange();for(var i=0;i=n&&t.nodes[i].x<=a?t.nodes.splice(i,1):i++;e.addPoint(n,r,.5,0),e.addPoint(a,o,.5,0)},e.getValue=function(t){var n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=function(n){if(n.length<2)return 0;var r=e.getRange();r[0]n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(var a=0;a=n[0]&&t.nodes[a].x<=n[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){var e=t.nodes.length;if(e<2)return-1;for(var n=t.nodes[1].x-t.nodes[0].x,r=0;r4&&void 0!==arguments[4]?arguments[4]:1,s=0,l=t.nodes.length,c=0;0!==l&&(c=t.nodes[l-1].y);var u=0,d=0,f=0,p=0,g=0,m=0,v=0;for(o=0;o1?e+o/(r-1)*(n-e):.5*(e+n);st.nodes[s].x;)++s.99999&&(m=.99999));if(s>=l)a[h]=t.clamping?c:0;else if(0===s)a[h]=t.clamping?t.nodes[0].y:0;else{var y=(u-d)/(f-d);if(y=y.99){if(y<.5){a[h]=p;continue}a[h]=g;continue}if(v<.01){a[h]=(1-y)*p+y*g;continue}y<.5?y=.5*Math.pow(2*y,1+10*v):y>.5&&(y=1-.5*Math.pow(2*(1-y),1+10*v));var b=y*y,T=b*y,C=2*T-3*b+1,S=-2*T+3*b,P=T-2*b+y,w=T-b,x=(1-v)*(g-p);a[h]=C*p+S*g+P*x+w*x;var O=pg?p:g;a[h]=a[h]M?M:a[h]}}}}(e,t)}var Ts={newInstance:f.a.newInstance(bs,"vtkPiecewiseFunction"),extend:bs},Cs={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ss={FRACTIONAL:0,PROPORTIONAL:1},Ps={InterpolationType:Cs,OpacityMode:Ss};function ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Os=Ps.InterpolationType,Ms=Ps.OpacityMode,As=f.a.vtkErrorMacro,Is=4;var Rs={independentComponents:!0,interpolationType:Os.FAST_LINEAR,shade:0,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:1};function Es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Rs,n),f.a.obj(e,t),!t.componentData){t.componentData=[];for(var r=0;r(e=t.componentData[r].grayTransferFunction.getMTime())?n:e):3===t.componentData[r].colorChannels&&t.componentData[r].rGBTransferFunction&&(n=n>(e=t.componentData[r].rGBTransferFunction.getMTime())?n:e),t.componentData[r].scalarOpacity&&(n=n>(e=t.componentData[r].scalarOpacity.getMTime())?n:e),t.componentData[r].gradientOpacity&&(t.componentData[r].disableGradientOpacity||(n=n>(e=t.componentData[r].gradientOpacity.getMTime())?n:e));return n},e.getColorChannels=function(e){return e<0||e>3?(As("Bad index - must be between 0 and 3"),0):t.componentData[e].colorChannels},e.setGrayTransferFunction=function(n,r){var a=!1;return t.componentData[n].grayTransferFunction!==r&&(t.componentData[n].grayTransferFunction=r,a=!0),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1,a=!0),a&&e.modified(),a},e.getGrayTransferFunction=function(n){return null===t.componentData[n].grayTransferFunction&&(t.componentData[n].grayTransferFunction=Ts.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction},e.setRGBTransferFunction=function(n,r){var a=!1;return t.componentData[n].rGBTransferFunction!==r&&(t.componentData[n].rGBTransferFunction=r,a=!0),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3,a=!0),a&&e.modified(),a},e.getRGBTransferFunction=function(n){return null===t.componentData[n].rGBTransferFunction&&(t.componentData[n].rGBTransferFunction=vs.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction},e.setScalarOpacity=function(n,r){return t.componentData[n].scalarOpacity!==r&&(t.componentData[n].scalarOpacity=r,e.modified(),!0)},e.getScalarOpacity=function(n){return null===t.componentData[n].scalarOpacity&&(t.componentData[n].scalarOpacity=Ts.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity},e.setComponentWeight=function(n,r){if(n<0||n>=Is)return As("Invalid index"),!1;var a=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==a&&(t.componentData[n].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=Is?(As("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(Os.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(Os.LINEAR)},e.setInterpolationTypeToFastLinear=function(){return e.setInterpolationType(Os.FAST_LINEAR)},e.getInterpolationTypeAsString=function(){return f.a.enumToString(Os,t.interpolationType)},["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["set".concat(r)]=function(r,a){return t.componentData[r]["".concat(n)]!==a&&(t.componentData[r]["".concat(n)]=a,e.modified(),!0)}}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["get".concat(r)]=function(e){return t.componentData[e]["".concat(n)]}})}(e,t)}var Ds=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ls,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["mapper"]),f.a.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=function(){return e},e.makeProperty=Ds.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!function(e){return e[0].map(function(t,n){return e.map(function(e){return e[n]})})}([n,t.mapperBounds]).reduce(function(e,t){return e&&t[0]===t[1]},!0)||e.getMTime()>t.boundsMTime.getMTime()){Vs("Recomputing bounds..."),t.mapperBounds=n.map(function(e){return e});var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?n:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e}}(e,t)}var Bs={newInstance:f.a.newInstance(Ns,"vtkVolume"),extend:Ns},ks={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3};var Fs={clippingPlanes:[]};var Gs={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fs,n),f.a.obj(e,t),f.a.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){e.update=function(){e.getInputData()},e.addClippingPlane=function(e){"vtkPlane"===e.getClassName()&&t.clippingPlanes.push(e)},e.getNumberOfClippingPlanes=function(){return t.clippingPlanes.length},e.removeAllClippingPlanes=function(){t.clippingPlanes.length=0},e.removeClippingPlane=function(e){e<0||e>=6||t.clippingPlanes.splice(e,1)},e.getClippingPlanes=function(){return t.clippingPlanes},e.setClippingPlanes=function(t){if(t)if(Array.isArray(t))for(var n=t.length,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Us,n),Gs.extend(e,t,n),f.a.obj(e,t),f.a.algo(e,t,1,0),f.a.setGet(e,t,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","blendMode"]),f.a.setGetArray(e,t,["averageIPScalarRange"],2),f.a.event(e,t,"lightingActivated"),function(e,t){t.classHierarchy.push("vtkVolumeMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.update=function(){e.getInputData()},e.setBlendModeToComposite=function(){e.setBlendMode(_s.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=function(){e.setBlendMode(_s.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=function(){e.setBlendMode(_s.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=function(){e.setBlendMode(_s.AVERAGE_INTENSITY_BLEND)},e.getBlendModeAsString=function(){return f.a.enumToString(_s,t.blendMode)}}(e,t)}var Ws={newInstance:f.a.newInstance(js,"vtkVolumeMapper"),extend:js};function zs(e,t){const n=[e.volume.cols,e.volume.rows,e.volume.imageIds.length];if(n[0]*n[1]*n[2]<1||n[1]<2||n[1]<2||n[2]<2)return;const r=Di.newInstance(),a=e.volume.imagePosition,o=e.volume.pixelSpacing.concat(e.volume.sliceThickness);r.setDimensions(n),r.setOrigin(a),r.setSpacing(o);const i=Qe.newInstance({name:"Scalars",values:t,numberOfComponents:1});return r.getPointData().setScalars(i),r.modified(),r}let Hs=!1;function Ks(e,t,n){let r=[],a=0,o=function(){let t={knee:24,thorax:364,abdomen:147}[e],n=[];for(let r=1;r{t.resetImageParsing(),t.readFiles(r,function(e,r){let a=e[_.keys(e)[0]];t.renderImage(a,"viewer"),n&&setTimeout(n,3e3,a)})})})}function Xs(e){return e*Math.PI/180}const qs=(e,t,n)=>{try{let r=ft.intersectWithPlane(e.position,e.normal,t.position,t.normal);if(r.intersection){const{l0:e,l1:t}=r,a=ft.intersectWithLine(e,t,n.position,n.normal);if(a.intersection)return a.x}}catch(e){console.log("some issue calculating the plane intersection",e)}return NaN};function Ys(e){const t=Bs.newInstance(),n=Ws.newInstance();n.setSampleDistance(1),t.setMapper(n),n.setInputData(e);const r=e.getPointData().getScalars().getRange();return t.getProperty().getRGBTransferFunction(0).setMappingRange(r[0],r[1]),t}n(28);var Zs=f.a.vtkErrorMacro;var Qs={parent:null,renderable:null,myFactory:null,children:[],visited:!1};function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qs,n),f.a.obj(e,t),f.a.event(e,t,"event"),t._renderableChildMap=new Map,f.a.get(e,t,["visited"]),f.a.setGet(e,t,["parent","renderable","myFactory"]),f.a.getArray(e,t,["children"]),function(e,t){t.classHierarchy.push("vtkViewNode"),e.build=function(e){},e.render=function(e){},e.traverse=function(n){var r=n.getTraverseOperation(),a=e[r];if(a)a(n);else{e.apply(n,!0);for(var o=0;o2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,el,n),f.a.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=function(n){if(n.isDeleted())return null;for(var r=0,a=n.getClassName(r++),o=!1,i=Object.keys(t.overrides);a&&!o;)-1!==i.indexOf(a)?o=!0:a=n.getClassName(r++);if(!o)return null;var s=t.overrides[a]();return s.setMyFactory(e),s},e.registerOverride=function(e,n){t.overrides[e]=n}}(e,t)}var nl={newInstance:f.a.newInstance(tl,"vtkViewNodeFactory"),extend:tl},rl=Object.create(null);function al(e,t){rl[e]=t}var ol={};function il(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ol,n),t.overrides=rl,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}(0,t)}var sl={newInstance:f.a.newInstance(il,"vtkOpenGLViewNodeFactory"),extend:il};var ll={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function cl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ll,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},f.i(e,t,["context","keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=function(n){n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext())},e.opaquePass=function(e){if(e){var n=t.openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),t.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},e.translucentPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=function(n){if(n!==t.lastRenderer||t.openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){o.copy(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,t.keyMatrices.wcvc);var r=t.openGLRenderer.getAspectRatio();o.copy(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(r,-1,1)),o.transpose(t.keyMatrices.vcpc,t.keyMatrices.vcpc),o.multiply(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)}var ul=f.d(cl);al("vtkCamera",ul);var dl=f.k;var fl={context:null,openGLRenderWindow:null,selector:null};function pl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fl,n),Js.extend(e,t,n),f.b(e,t,["shaderCache"]),f.i(e,t,["selector"]),function(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(dl("No lights are on, creating one."),t.renderable.createLight()),e},e.opaqueZBufferPass=function(n){if(n){var r=0,a=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),r|=a.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),r|=a.DEPTH_BUFFER_BIT,a.depthMask(!0));var o=e.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.colorMask(!0,!0,!0,!0),a.clear(r),a.enable(a.DEPTH_TEST)}},e.cameraPass=function(t){t&&e.clear()},e.getAspectRatio=function(){var e=t.parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=Me(e[0]-n[0],0,1),a=Me(e[1]-n[1],0,1),o=t.parent.normalizedDisplayToDisplay(r,a),i=Math.round(o[0]),s=Math.round(o[1]),l=Me(e[2]-n[0],0,1),c=Me(e[3]-n[1],0,1);l>n[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.clear=function(){var n=0,r=t.context;if(!t.renderable.getTransparent()){var a=t.renderable.getBackgroundByReference();t.context.clearColor(a[0],a[1],a[2],a[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);var o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))}}(e,t)}var gl=f.d(pl,"vtkOpenGLRenderer");al("vtkRenderer",gl);var ml={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},vl={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2},hl={ObjectType:vl};function yl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bl(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),f.a.obj(e,t),f.a.get(e,t,["openGLRenderWindow"]),function(e,t){function n(e){switch(e){case Cl.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Cl.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;default:case Cl.ARRAY_BUFFER:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");var r=null,a=null,o=!0,i="";e.getType=function(){return r},e.setType=function(e){r=e},e.getHandle=function(){return a},e.isReady=function(){return!1===o},e.generateBuffer=function(e){var o=n(e);return null===a&&(a=t.context.createBuffer(),r=e),n(r)===o},e.upload=function(s,l){return e.generateBuffer(l)?(t.context.bindBuffer(n(r),a),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),o=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1)},e.bind=function(){return!!a&&(t.context.bindBuffer(n(r),a),!0)},e.release=function(){return!!a&&(t.context.bindBuffer(n(r),null),!0)},e.releaseGraphicsResources=function(){null!==a&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(a),a=null)},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.getError=function(){return i}}(e,t)}var wl=bl(bl({newInstance:f.a.newInstance(Pl),extend:Pl},{}),hl),xl={FLAT:0,GOURAUD:1,PHONG:2},Ol={POINTS:0,WIREFRAME:1,SURFACE:2},Ml={Shading:xl,Representation:Ol,Interpolation:xl},Al=f.a.vtkErrorMacro;function Il(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(vl.ARRAY_BUFFER),e.createVBO=function(n,r,a,o){if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];var i=o.points.getData(),s=null,l=null,c=null,u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,s=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(function(e){e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())}),o.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=d,t.blockSize+=d,l=o.tcoords.getData()),o.colors?(t.colorComponents=o.colors.getNumberOfComponents(),t.colorOffset=0,c=o.colors.getData(),t.colorBO||(t.colorBO=wl.newInstance()),t.colorBO.setOpenGLRenderWindow(t.openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;var f,p=0,g=0,m=0,v=0,h=0,y=0,b={anythingToPoints:function(e,t,n){for(var r=0;r2)for(var r=0;r2){for(var r=0;r1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return e>2?3*(e-2):0}},C=null,S=null;a===Ol.POINTS||"verts"===r?(C=b.anythingToPoints,S=T.anythingToPoints):a===Ol.WIREFRAME||"lines"===r?(C=b["".concat(r,"ToWireframe")],S=T["".concat(r,"ToWireframe")]):(C=b["".concat(r,"ToSurface")],S=T["".concat(r,"ToSurface")]);for(var P=n.getData(),w=P.length,x=0,O=0;O0&&(Math.abs(D)/E>1e6||Math.abs(Math.log10(E))>3||0===E&&D>1e6)){for(var k=new Float64Array(3),F=new Float64Array(3),G=0;G<3;++G){var _=o.points.getRange(G),U=_[1]-_[0];k[G]=.5*(_[1]+_[0]),F[G]=U>0?1/U:1}e.setCoordShiftAndScale(k,F)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);f=function(e){if(p=3*e,t.coordShiftAndScaleEnabled?(A[I++]=(i[p++]-t.coordShift[0])*t.coordScale[0],A[I++]=(i[p++]-t.coordShift[1])*t.coordScale[1],A[I++]=(i[p++]-t.coordShift[2])*t.coordScale[2]):(A[I++]=i[p++],A[I++]=i[p++],A[I++]=i[p++]),null!==s&&(g=o.haveCellNormals?3*(y+o.cellOffset):3*e,A[I++]=s[g++],A[I++]=s[g++],A[I++]=s[g++]),t.customData.forEach(function(t){h=e*t.components;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rl,n),wl.extend(e,t,n),f.a.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),f.a.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Il(e,t)}var Dl={newInstance:f.a.newInstance(El),extend:El},Vl=f.a.vtkErrorMacro;var Ll={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function Nl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ll,n),f.a.obj(e,t),f.a.setGet(e,t,["shaderType","source","error","handle","context"]),function(e,t){t.classHierarchy.push("vtkShader"),e.compile=function(){var e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;switch(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),t.shaderType){case"Fragment":e=t.context.FRAGMENT_SHADER;break;case"Vertex":default:e=t.context.VERTEX_SHADER}if(t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){var n=t.context.getShaderInfoLog(t.handle);return Vl("Error compiling shader '".concat(t.source,"': ").concat(n)),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var Bl={newInstance:f.a.newInstance(Nl,"vtkShader"),extend:Nl},kl=f.a.vtkErrorMacro;var Fl={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 Gl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fl,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=Bl.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=Bl.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=Bl.newInstance(),t.geometryShader.setShaderType("Geometry"),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),function(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=function(){return t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(kl("Links failed: ".concat(t.error)),0):(kl(t.error),0):(kl(t.fragmentShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.fragmentShader.getError()),0):(kl(t.vertexShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.vertexShader.getError()),0)},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0)},e.bind=function(){return!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0))},e.isBound=function(){return!!t.bound},e.release=function(){t.context.useProgram(null),e.setBound(!1)},e.setContext=function(e){t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=function(){if(t.inked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){var n=t.context.getProgramInfoLog(t.handle);return kl("Error linking shader ".concat(n)),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix4fv(a,!1,o),!0},e.setUniformMatrix3x3=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix3fv(a,!1,o),!0},e.setUniformf=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1f(a,r),!0)},e.setUniformfv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1fv(a,r),!0)},e.setUniformi=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1i(a,r),!0)},e.setUniformiv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1iv(a,r),!0)},e.setUniform2f=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(o,r,a),!0},e.setUniform2fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2fv(a,r),!0)},e.setUniform2i=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(o,r,a),!0},e.setUniform2iv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2iv(a,r),!0)},e.setUniform3f=function(n,r,a,o){var i=e.findUniform(n);if(-1===i)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,a,o),!0},e.setUniform3fArray=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(a,r[0],r[1],r[2]),!0},e.setUniform3fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform3fv(a,r),!0)},e.setUniform3i=function(n){var r=e.findUniform(n);if(-1===r)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i1?a-1:0),i=1;i1?a-1:0),i=1;i3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var Ul={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null,openGLRenderWindow:null};function jl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ul,n),t.buffers=[],f.a.obj(e,t),f.a.get(e,t,["supported"]),f.a.setGet(e,t,["forceEmulation"]),function(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=function(){},e.initialize=function(){t.instancingExtension=null,t.openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t.openGLRenderWindow&&t.openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=function(){return 0!==t.handleVAO||!1===t.supported},e.bind=function(){if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,1):n.vertexAttribDivisor(i.index+l,1))}},e.release=function(){if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,0):n.vertexAttribDivisor(i.index+l,0)),n.disableVertexAttribArray(i.index+l)}},e.shaderProgramChanged=function(){e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=function(){e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=function(t,n,r,a,o,i,s,l){return e.addAttributeArrayWithDivisor(t,n,r,a,o,i,s,l,0,!1)},e.addAttributeArrayWithDivisor=function(n,r,a,o,i,s,l,c,u,d){if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==vl.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;var f=t.context,p={};if(p.name=a,p.index=f.getAttribLocation(t.handleProgram,a),p.offset=o,p.stride=i,p.type=s,p.size=l,p.normalize=c,p.isMatrix=d,p.divisor=u,-1===p.Index)return!1;if(r.bind(),f.enableVertexAttribArray(p.index),f.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p.index,1):f.vertexAttribDivisor(p.index,1)),p.buffer=r.getHandle(),!t.supported){for(var g=!1,m=0;m0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p+g,1):f.vertexAttribDivisor(p+g,1));return!0},e.removeAttributeArray=function(n){if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zl,n),f.a.obj(e,t),t.shaderSourceTime={},f.a.obj(t.shaderSourceTime),t.attributeUpdateTime={},f.a.obj(t.attributeUpdateTime),f.a.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType"]),t.program=_l.newInstance(),t.VAO=Wl.newInstance(),t.CABO=Dl.newInstance(),function(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=function(e){t.program.setContext(e.getContext()),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=function(e){t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)}}(e,t)}var Kl={newInstance:f.a.newInstance(Hl),extend:Hl},Xl={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},ql={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Yl={Wrap:Xl,Filter:ql};function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ql(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $l=Yl.Wrap,Jl=Yl.Filter,ec=Qe.VtkDataTypes,tc=f.k,nc=f.l,rc=f.m;var ac={openGLRenderWindow:null,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:$l.CLAMP_TO_EDGE,wrapT:$l.CLAMP_TO_EDGE,wrapR:$l.CLAMP_TO_EDGE,minificationFilter:Jl.NEAREST,magnificationFilter:Jl.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1};function oc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ac,n),Js.extend(e,t,n),t.sendParametersTime={},f.g(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},f.g(t.textureBuildTime,{mtime:0}),f.h(e,t,["format","openGLDataType"]),f.i(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap"]),f.b(e,t,["width","height","volumeInfo","components","handle","target"]),function(e,t){var n=this;function r(e,n){var r=[];if(e!==ec.FLOAT&&t.openGLDataType===t.context.FLOAT)for(var a=t.width*t.height*t.components,o=0;o=a&&(h=a-1);var y=m-v,b=1-y;v=v*r*o,h=h*r*o;for(var T=0;T=r&&(w=r-1);var x=S-P;P*=o,w*=o;for(var O=0;Oa[l]&&(a[l]=n[i]),i++;for(var c=[],u=[],d=0;d0&&void 0!==arguments[0]?arguments[0]:null;if(n?t.openGLRenderWindow=n:(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent()),t.context=t.openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Jl.LINEAR),e.setMagnificationFilter(Jl.LINEAR)):(e.setMinificationFilter(Jl.NEAREST),e.setMagnificationFilter(Jl.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR($l.REPEAT),e.setWrapS($l.REPEAT),e.setWrapT($l.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified()));var r=t.renderable.getInputData(0);if(r&&r.getPointData().getScalars()){for(var a=r.getExtent(),o=r.getPointData().getScalars(),i=[],s=0;st.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=function(){var e=!1;if(t.context&&t.handle){var n=0;switch(t.target){case t.context.TEXTURE_2D:n=t.context.TEXTURE_BINDING_2D;break;default:rc("impossible case")}e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=function(){t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t.openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=function(n,r){return t.internalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||tc("Unable to find suitable internal format for T=".concat(n," NC= ").concat(r)),t.internalFormat},e.getDefaultInternalFormat=function(e,r){var a=0;return(a=t.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!1))?a:((a=n.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!0))||(tc("Unsupported internal texture type!"),tc("Unable to find suitable internal format for T=".concat(e," NC= ").concat(r))),a)},e.setInternalFormat=function(n){n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=function(n,r){return t.format=e.getDefaultFormat(n,r),t.format},e.getDefaultFormat=function(e,n){if(t.openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}},e.resetFormatAndType=function(){t.format=0,t.internalFormat=0,t.openGLDataType=0},e.getDefaultDataType=function(e){if(t.openGLRenderWindow.getWebgl2())switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.FLOAT}switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear")?t.context.FLOAT:t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){return t.openGLDataType=e.getDefaultDataType(n),t.openGLDataType},e.getShiftAndScale=function(){var e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:e=(n=127.5)-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:e=(n=32767.5)-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:e=(n=2147483647.5)-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;break;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=function(e){switch(e){case Jl.NEAREST:return t.context.NEAREST;case Jl.LINEAR:return t.context.LINEAR;case Jl.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Jl.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Jl.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Jl.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=function(e){switch(e){case $l.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case $l.REPEAT:return t.context.REPEAT;case $l.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.create2DFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var c=a(r(s,[l]));return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,c[0]),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.createCubeFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();for(var c=a(r(s,l)),u=[],d=t.width,p=t.height,g=0;g=1&&C>=1;){var S=null;b<=t.maxLevel&&(S=u[6*b+y]),t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,t.internalFormat,T,C,0,t.format,t.openGLDataType,S),b++,T/=2,C/=2}return e.deactivate(),!0},e.createDepthFromRaw=function(n,r,a,o){return e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t.openGLRenderWindow.getWebgl2()?a===ec.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=r,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,o),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create2DFromImage=function(n){if(e.getOpenGLDataType(ec.UNSIGNED_CHAR),e.getInternalFormat(ec.UNSIGNED_CHAR,4),e.getFormat(ec.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.width=n.width,t.height=n.height,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);var r=!B(n.width)||!B(n.height),a=document.createElement("canvas");a.width=r?N(n.width):n.width,a.height=r?N(n.height):n.height;var o=a.getContext("2d");o.translate(0,a.height),o.scale(1,-1),o.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height),navigator.userAgent.indexOf("Chrome/69")>=0&&o.getImageData(0,0,1,1);var i=a;return t.context.texImage2D(t.target,0,t.internalFormat,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create3DFromRaw=function(n,r,a,o,i,s){return e.getOpenGLDataType(i),e.getInternalFormat(i,o),e.getFormat(i,o),t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_3D,t.components=o,t.width=n,t.height=r,t.depth=a,t.numberOfDimensions=3,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create3DFilterableFromRaw=function(n,r,a,i,s,l){for(var c=n*r*a,u=[],d=[],f=0;f4096&&(w===ec.FLOAT||i>=3)&&(O=4096);var M=1,A=1;c>O*O&&(A=M=Math.ceil(Math.sqrt(c/(O*O))));var I=Math.sqrt(c)/M;I=N(I);var R,E=Math.floor(I*M/n),D=Math.ceil(a/E),V=N(r*D/A);t.width=I,t.height=V,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=E,t.volumeInfo.yreps=D,t.volumeInfo.xstride=M,t.volumeInfo.ystride=A,t.volumeInfo.offset=S.offset,t.volumeInfo.scale=S.scale;var L=I*V*i;R=w===ec.FLOAT?new Float32Array(L):new Uint8Array(L);for(var B=0,k=Math.floor(n/M),F=Math.floor(r/A),G=0;G2&&void 0!==arguments[2]&&arguments[2],e.replaceShaderCoincidentOffset=function(n,r,a){var o=e.getCoincidentParameters(r,a);if(o&&(0!==o.factor||0!==o.offset)){var i=n.Fragment;i=_l.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t.openGLRenderWindow.getWebgl2()&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}},gc=f.l,mc=ml;function vc(e,t,n){if(t.apply(e)){var r=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(r,"-").concat(n)}return"0"}var hc={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,colorTexture:null,pwfTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hc,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.tris=Kl.newInstance(),t.openGLTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.pwfTexture=sc.newInstance(),t.imagemat=o.identity(new Float64Array(16)),f.i(e,t,[]),t.VBOBuildTime={},f.g(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkOpenGLImageMapper"),e.buildPass=function(n){if(n){t.openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera()),t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(r.getActiveCamera())}},e.translucentPass=function(t){t&&e.render()},e.opaqueZBufferPass=function(n){n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,n){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var n=t.openGLImageSlice.getRenderable(),r=t.openGLRenderer.getRenderable();e.renderPiece(r,n)},e.buildShaders=function(t,n,r){e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.getShaderTemplate=function(e,t,n){e.Vertex=uc.a,e.Fragment=fc.a,e.Geometry=""},e.replaceShaderValues=function(n,r,a){var o=n.Vertex,i=n.Fragment;o=_l.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,o=_l.substitute(o,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;var s=t.openGLTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;"];if(l){for(var u=1;un.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||gc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||gc("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());var o=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",o);var i=t.openGLTexture.getComponents(),s=a.getProperty().getIndependentComponents();if(s)for(var l=0;l1?1:0;var j=o.getData(),W=null;if(D===mc.I){W=new j.constructor(k[2]*k[1]*l);for(var z=0,H=0;H2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Tc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLImageSlice"),e.buildPass=function(n){if(t.renderable&&t.renderable.getVisibility()&&n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaqueZBufferPass=function(t){e.traverseOpaquePass(t)},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.opaqueZBufferPass=function(t,n){return e.opaquePass(t,n)},e.opaquePass=function(n,r){n&&(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0))},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Sc=f.d(Cc,"vtkOpenGLImageSlice");al("vtkImageSlice",Sc);var Pc={};function wc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0))},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.MCWCMatrix,t.renderable.getMatrix()),o.transpose(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?a.identity(t.normalMatrix):(a.fromMat4(t.normalMatrix,t.MCWCMatrix),a.invert(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix}}}(e,t)}var xc=f.d(wc,"vtkOpenGLVolume");al("vtkVolume",xc);var Oc={openGLRenderWindow:null,glFramebuffer:null,colorTexture:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Mc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Oc,n),f.g(e,t),f.i(e,t,["colorTexture"]),function(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=function(){return t.context.FRAMEBUFFER},e.saveCurrentBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=function(e){var n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t.openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=function(e){},e.restorePreviousBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=function(e){var n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t.openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=function(e){},e.bind=function(){t.context.bindFramebuffer(t.context.FRAMEBUFFER,t.glFramebuffer),t.colorTexture&&t.colorTexture.bind(),t.openGLRenderWindow.setActiveFramebuffer(e)},e.create=function(e,n){t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n},e.setColorBuffer=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.context,a=r.COLOR_ATTACHMENT0;if(n>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");a+=n}t.colorTexture=e,r.framebufferTexture2D(r.FRAMEBUFFER,a,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=t.context,r=n.COLOR_ATTACHMENT0;if(e>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0)},e.setDepthBuffer=function(e){if(t.openGLRenderWindow.getWebgl2()){var n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else f.l("Attaching depth buffer textures to fbo requires WebGL 2")},e.removeDepthBuffer=function(){if(t.openGLRenderWindow.getWebgl2()){var e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else f.l("Attaching depth buffer textures to framebuffers requires WebGL 2")},e.getGLFramebuffer=function(){return t.glFramebuffer},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.releaseGraphicsResources=function(){t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer),t.colorTexture&&t.colorTexture.releaseGraphicsResources()},e.getSize=function(){var e=[0,0];return null!==t.glFramebuffer&&(e[0]=t.glFramebuffer.width,e[1]=t.glFramebuffer.height),e},e.populateFramebuffer=function(){e.bind();var n=t.context,r=sc.newInstance();r.setOpenGLRenderWindow(t.openGLRenderWindow),r.setMinificationFilter(ql.LINEAR),r.setMagnificationFilter(ql.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,u.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)}}(e,t)}var Ac={newInstance:f.d(Mc,"vtkFramebuffer"),extend:Mc},Ic=n(10),Rc=n.n(Ic),Ec=n(11),Dc=n.n(Ec);function Vc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nc=f.m,Bc=f.l;function kc(e,t){if(e.length!==t.length)return!1;for(var n=0;n0&&(o=_l.substitute(o,"//VTK::vtkProportionalComponents",c.join("\n")).result)}var d=t.currentInput.getExtent(),f=t.currentInput.getSpacing(),p=new Float64Array(3);i.set(p,(d[1]-d[0])*f[0],(d[3]-d[2])*f[1],(d[5]-d[4])*f[2]);var g=i.length(p)/t.renderable.getSampleDistance();o=_l.substitute(o,"//VTK::MaximumSamplesValue","".concat(Math.ceil(g))).result,o=_l.substitute(o,"//VTK::LightComplexity","#define vtkLightComplexity ".concat(t.lastLightComplexity)).result,t.gopacity=a.getProperty().getUseGradientOpacity(0);for(var m=1;l&&!t.gopacity&&m0&&(a=_l.substitute(a,"//VTK::Light::Dec",["uniform vec3 lightColor".concat(o,";"),"uniform vec3 lightDirectionVC".concat(o,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(o,"; // normalized"),"//VTK::Light::Dec"],!1).result,a=_l.substitute(a,"//VTK::Light::Impl",[" float df = abs(dot(normal.rgb, -lightDirectionVC".concat(o,"));")," diffuse += ((df".concat("",") * lightColor").concat(o,");")," float sf = pow( abs(dot(lightHalfAngleVC".concat(o,",normal.rgb)), vSpecularPower);")," specular += ((sf".concat("",") * lightColor").concat(o,");")," //VTK::Light::Impl"],!1).result,o++)})}e.Fragment=a},e.replaceShaderClippingPlane=function(e,n,r){var a=e.Fragment;if(t.renderable.getClippingPlanes().length>0){var o=t.renderable.getClippingPlanes().length;a=_l.substitute(a,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","//VTK::ClipPlane::Dec"],!1).result,a=_l.substitute(a,"//VTK::ClipPlane::Impl",["for(int i = 0; i < ".concat(o,"; i++) {")," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}e.Fragment=a},e.getNeedToRebuildShaders=function(n,r,a){var o=0;a.getProperty().getShade()&&t.renderable.getBlendMode()===ks.COMPOSITE_BLEND&&(o=0,t.numberOfLights=0,r.getLights().forEach(function(e){e.getSwitch()>0&&(t.numberOfLights++,0===o&&(o=1)),1===o&&(t.numberOfLights>1||1!==e.getIntensity()||!e.lightTypeIsHeadLight())&&(o=2),o<3&&e.getPositional()&&(o=3)}));var s=!1;t.lastLightComplexity!==o&&(t.lastLightComplexity=o,s=!0);var l=t.scalarTexture.getComponents(),c=a.getProperty().getIndependentComponents(),u=!1,d=[];if(c){for(var f=0;f0&&(u=!0)}var p=t.currentInput.getExtent(),g=t.currentInput.getSpacing(),m=new Float64Array(3);i.set(m,(p[1]-p[0])*g[0],(p[3]-p[2])*g[1],(p[5]-p[4])*g[2]);var v=i.length(m)/t.renderable.getSampleDistance(),h={interpolationType:a.getProperty().getInterpolationType(),useLabelOutline:a.getProperty().getUseLabelOutline(),numComp:l,usesProportionalComponents:u,iComps:c,maxSamples:v,useGradientOpacity:a.getProperty().getUseGradientOpacity(0),blendMode:t.renderable.getBlendMode(),averageIPScalarMode:t.renderable.getAverageIPScalarRange(),proportionalComponents:d};return t.previousState&&t.previousState.interpolationType===h.interpolationType&&t.previousState.useLabelOutline===h.useLabelOutline&&t.previousState.numComp===h.numComp&&t.previousState.usesProportionalComponents===h.usesProportionalComponents&&t.previousState.iComps===h.iComps&&t.previousState.maxSamples===h.maxSamples&&t.previousState.useGradientOpacity===h.useGradientOpacity&&t.previousState.blendMode===h.blendMode&&kc(t.previousState.averageIPScalarMode,h.averageIPScalarMode)&&kc(t.previousState.proportionalComponents,h.proportionalComponents)?!!(0===n.getProgram()||s||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||!!t.lastZBufferTexture!=!!t.zBufferTexture||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(o.isAttributeUsed("vertexDC")&&(n.getVAO().addAttributeArray(o,n.getCABO(),"vertexDC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in shader VAO.")),n.getAttributeUpdateTime().modified()),o.setUniformi("texture1",t.scalarTexture.getTextureUnit()),o.setUniformf("sampleDistance",t.renderable.getSampleDistance()),null!==t.zBufferTexture){o.setUniformi("zBufferTexture",t.zBufferTexture.getTextureUnit());var i=e.getRenderTargetSize();o.setUniformf("vpWidth",i[0]),o.setUniformf("vpHeight",i[1])}},e.setCameraShaderParameters=function(n,r,s){var l=t.openGLCamera.getKeyMatrices(r),c=t.openGLVolume.getKeyMatrices();o.multiply(t.modelToView,l.wcvc,c.mcwc);var u=n.getProgram(),d=t.openGLCamera.getRenderable(),f=d.getClippingRange();u.setUniformf("camThick",f[1]-f[0]),u.setUniformf("camNear",f[0]),u.setUniformf("camFar",f[1]);for(var p=t.currentInput.getBounds(),g=t.currentInput.getDimensions(),m=new Float64Array(3),v=new Float64Array(3),h=1,y=-1,b=1,T=-1,C=0;C<8;++C){if(i.set(m,p[C%2],p[2+Math.floor(C/2)%2],p[4+Math.floor(C/4)]),i.transformMat4(m,m,t.modelToView),!d.getParallelProjection()){i.normalize(v,m);var S=-f[0]/m[2];i.scale(m,v,S)}i.transformMat4(m,m,l.vcpc),h=Math.min(m[0],h),y=Math.max(m[0],y),b=Math.min(m[1],b),T=Math.max(m[1],T)}u.setUniformf("dcxmin",h),u.setUniformf("dcxmax",y),u.setUniformf("dcymin",b),u.setUniformf("dcymax",T),u.isUniformUsed("cameraParallel")&&u.setUniformi("cameraParallel",d.getParallelProjection());var P=t.currentInput.getExtent(),w=t.currentInput.getSpacing(),x=new Float64Array(3);i.set(x,(P[1]-P[0]+1)*w[0],(P[3]-P[2]+1)*w[1],(P[5]-P[4]+1)*w[2]),u.setUniform3f("vSpacing",w[0],w[1],w[2]),i.set(m,P[0],P[2],P[4]),t.currentInput.indexToWorldVec3(m,m),i.transformMat4(m,m,t.modelToView),u.setUniform3f("vOriginVC",m[0],m[1],m[2]);var O=t.currentInput.getIndexToWorld();o.multiply(t.idxToView,t.modelToView,O),a.multiply(t.idxNormalMatrix,l.normalMatrix,c.normalMatrix),a.multiply(t.idxNormalMatrix,t.idxNormalMatrix,t.currentInput.getDirection());var M=i.length(x)/t.renderable.getSampleDistance();M>t.renderable.getMaximumSamplesPerRay()&&Nc("The number of steps required ".concat(Math.ceil(M)," is larger than the\n specified maximum number of steps ").concat(t.renderable.getMaximumSamplesPerRay(),".\n Please either change the\n volumeMapper sampleDistance or its maximum number of samples."));var A=new Float64Array(3);if(i.set(A,1,1,1),i.divide(A,A,x),u.setUniform3f("vVCToIJK",A[0],A[1],A[2]),u.setUniform3i("volumeDimensions",g[0],g[1],g[2]),!t.openGLRenderWindow.getWebgl2()){var I=t.scalarTexture.getVolumeInfo();u.setUniformf("texWidth",t.scalarTexture.getWidth()),u.setUniformf("texHeight",t.scalarTexture.getHeight()),u.setUniformi("xreps",I.xreps),u.setUniformi("xstride",I.xstride),u.setUniformi("ystride",I.ystride)}for(var R=new Float64Array(3),E=new Float64Array(3),D=0;D<6;++D){switch(D){default:case 0:i.set(R,1,0,0),i.set(E,P[1],P[3],P[5]);break;case 1:i.set(R,-1,0,0),i.set(E,P[0],P[2],P[4]);break;case 2:i.set(R,0,1,0),i.set(E,P[1],P[3],P[5]);break;case 3:i.set(R,0,-1,0),i.set(E,P[0],P[2],P[4]);break;case 4:i.set(R,0,0,1),i.set(E,P[1],P[3],P[5]);break;case 5:i.set(R,0,0,-1),i.set(E,P[0],P[2],P[4])}i.transformMat3(R,R,t.idxNormalMatrix),i.transformMat4(E,E,t.idxToView);var V=-1*i.dot(E,R);if(u.setUniform3f("vPlaneNormal".concat(D),R[0],R[1],R[2]),u.setUniformf("vPlaneDistance".concat(D),V),s.getProperty().getUseLabelOutline()){var L=t.currentInput.getWorldToIndex();u.setUniformMatrix("vWCtoIDX",L),o.invert(t.projectionToWorld,l.wcpc),u.setUniformMatrix("PCWCMatrix",t.projectionToWorld);var N=e.getRenderTargetSize();u.setUniformf("vpWidth",N[0]),u.setUniformf("vpHeight",N[1])}}switch(o.invert(t.projectionToView,l.vcpc),u.setUniformMatrix("PCVCMatrix",t.projectionToView),t.lastLightComplexity){default:case 0:break;case 1:case 2:case 3:var B=0,k=[];r.getLights().forEach(function(e){if(e.getSwitch()>0){var t=e.getColor(),n=e.getIntensity();k[0]=t[0]*n,k[1]=t[1]*n,k[2]=t[2]*n,u.setUniform3fArray("lightColor".concat(B),k);var r=e.getDirection();i.set(R,r[0],r[1],r[2]),i.transformMat3(R,R,l.normalMatrix),u.setUniform3f("lightDirectionVC".concat(B),R[0],R[1],R[2]);var a=[-.5*R[0],-.5*R[1],-.5*(R[2]-1)];u.setUniform3fArray("lightHalfAngleVC".concat(B),a),B++}})}},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram();a.setUniformi("ctexture",t.colorTexture.getTextureUnit()),a.setUniformi("otexture",t.opacityTexture.getTextureUnit()),a.setUniformi("jtexture",t.jitterTexture.getTextureUnit());var o=t.scalarTexture.getVolumeInfo(),i=r.getProperty(),s=t.scalarTexture.getComponents(),l=r.getProperty().getIndependentComponents();if(l&&s>=2)for(var c=0;c0&&(a.setUniformf("vAmbient",i.getAmbient()),a.setUniformf("vDiffuse",i.getDiffuse()),a.setUniformf("vSpecular",i.getSpecular()),a.setUniformf("vSpecularPower",i.getSpecularPower()))},e.getClippingPlaneShaderParameters=function(e,n,r){if(t.renderable.getClippingPlanes().length>0){for(var a=t.openGLCamera.getKeyMatrices(n),o=[],s=[],l=t.renderable.getClippingPlanes(),c=l.length,u=0;u1.43){var e=t.framebuffer.getSize();return[t.fvp[0]*e[0],t.fvp[1]*e[1]]}return t.openGLRenderWindow.getFramebufferSize()},e.renderPieceStart=function(n,r){if(t.renderable.getAutoAdjustSampleDistances()){var a=n.getVTKWindow().getInteractor(),o=a.getLastFrameTime();if(t.avgFrameTime=.97*t.avgFrameTime+.03*o,t.avgWindowArea=.97*t.avgWindowArea+.03/(t.lastXYF*t.lastXYF),n.getVTKWindow().getInteractor().isAnimating()){var i=Math.sqrt(t.avgFrameTime*a.getDesiredUpdateRate()/t.avgWindowArea);i>10&&(i=10),t.targetXYF=i}else t.targetXYF=Math.sqrt(t.avgFrameTime*a.getStillUpdateRate()/t.avgWindowArea);t.targetXYF<1.53&&t.targetXYF>1.33&&(t.targetXYF=t.lastXYF),Math.abs(1-t.targetXYF/t.lastXYF)<.1&&(t.targetXYF=t.lastXYF),t.lastXYF=t.targetXYF}else t.lastXYF=t.renderable.getImageSampleDistance();t.lastXYF<=1.43&&(t.lastXYF=1);var s=t.lastXYF,l=t.openGLRenderWindow.getFramebufferSize();if(s>1.43){if(t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer();else{var c=t.framebuffer.getSize();c[0]===Math.floor(.7*l[0])&&c[1]===Math.floor(.7*l[1])||(t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();var u=t.context;u.clearColor(0,0,0,0),u.colorMask(!0,!0,!0,!0),u.clear(u.COLOR_BUFFER_BIT),u.viewport(0,0,l[0]/s,l[1]/s),t.fvp=[Math.floor(l[0]/s)/Math.floor(.7*l[0]),Math.floor(l[1]/s)/Math.floor(.7*l[1])]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r),r.getProperty().getInterpolationType()===Cs.NEAREST?(t.scalarTexture.setMinificationFilter(ql.NEAREST),t.scalarTexture.setMagnificationFilter(ql.NEAREST)):(t.scalarTexture.setMinificationFilter(ql.LINEAR),t.scalarTexture.setMagnificationFilter(ql.LINEAR)),t.lastBoundBO=null,null!==t.zBufferTexture&&t.zBufferTexture.activate()},e.renderPieceDraw=function(n,r){var a=t.context;t.scalarTexture.activate(),t.opacityTexture.activate(),t.colorTexture.activate(),t.jitterTexture.activate(),e.updateShaders(t.tris,n,r),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.scalarTexture.deactivate(),t.colorTexture.deactivate(),t.opacityTexture.deactivate(),t.jitterTexture.deactivate()},e.renderPieceFinish=function(e,n){if(null!==t.zBufferTexture&&t.zBufferTexture.deactivate(),t.lastXYF>1.43){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t.openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join("\n"),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join("\n"),"");var r=t.copyShader;t.copyVAO=Wl.newInstance(),t.copyVAO.setOpenGLRenderWindow(t.openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(r,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in copy shader VAO.")}else t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);var a=t.openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,a[0],a[1]);var o=t.framebuffer.getColorTexture();o.activate(),t.copyShader.setUniformi("texture",o.getTextureUnit()),t.copyShader.setUniform2f("tfactor",t.fvp[0],t.fvp[1]);var i=t.context;i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),o.deactivate(),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=function(n,r){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):Bc("No input!")},e.computeBounds=function(n,r){e.getInput()?t.bounds=e.getInput().getBounds():we(t.Bounds)},e.updateBufferObjects=function(t,n){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=function(n,r){return t.VBOBuildTime.getMTime()1?1:-1,I[3*R+2]=-1;var E=new Uint16Array(8);E[0]=3,E[1]=0,E[2]=1,E[3]=3,E[4]=3,E[5]=0,E[6]=3,E[7]=2;var D=Qe.newInstance({numberOfComponents:3,values:I});D.setName("points");var V=Qe.newInstance({numberOfComponents:1,values:E});t.tris.getCABO().createVBO(V,"polys",Ol.SURFACE,{points:D,cellOffset:0})}t.VBOBuildTime.modified()}}}}var Gc={context:null,VBOBuildTime:null,scalarTexture:null,scalarTextureString:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lastLightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function _c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gc,n),Js.extend(e,t,n),t.VBOBuildTime={},f.g(t.VBOBuildTime,{mtime:0}),t.tris=Kl.newInstance(),t.scalarTexture=sc.newInstance(),t.opacityTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.jitterTexture=sc.newInstance(),t.jitterTexture.setWrapS(Xl.REPEAT),t.jitterTexture.setWrapT(Xl.REPEAT),t.framebuffer=Ac.newInstance(),t.idxToView=o.identity(new Float64Array(16)),t.idxNormalMatrix=a.identity(new Float64Array(9)),t.modelToView=o.identity(new Float64Array(16)),t.projectionToView=o.identity(new Float64Array(16)),t.projectionToWorld=o.identity(new Float64Array(16)),f.i(e,t,["context"]),Fc(e,t)}var Uc=f.d(_c,"vtkOpenGLVolumeMapper");al("vtkVolumeMapper",Uc);var jc=f.k;var Wc={};function zc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wc,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent();var a=t.openGLRenderer.getAspectRatio(),o=t.openGLRenderer?t.openGLRenderer.getRenderable().getActiveCamera():null,i=t.openGLRenderer.getTiledSizeAndOrigin(),s=null;if(t.renderable.getUseZValues()){var l=r.getZBufferTexture(),c=Math.floor(l.getWidth()),u=Math.floor(l.getHeight()),d=t.openGLRenderWindow.getContext();l.bind();var f=r.getFramebuffer();f?f.saveCurrentBindingsAndBuffers():jc("No framebuffer to save/restore");var p=d.createFramebuffer();d.bindFramebuffer(d.FRAMEBUFFER,p),d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,l.getHandle(),0),d.checkFramebufferStatus(d.FRAMEBUFFER)===d.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(c*u*4),d.viewport(0,0,c,u),d.readPixels(0,0,c,u,d.RGBA,d.UNSIGNED_BYTE,s)),f&&f.restorePreviousBindingsAndBuffers(),d.deleteFramebuffer(p)}t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,s)},e.queryPass=function(e,n){e&&t.renderable.getUseZValues()&&n.requestDepth()}}(e,t)}var Hc=f.d(zc,"vtkOpenGLPixelSpaceCallbackMapper");al("vtkPixelSpaceCallbackMapper",Hc);var Kc=Object.create(null);function Xc(e,t){Kc[e]=t}var qc={};function Yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),t.overrides=Kc,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}(0,t)}f.a.newInstance(Yc,"vtkWebGPUViewNodeFactory");var Zc={keyMatrixTime:null,keyMatrices:null};function Qc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.a.obj(t.keyMatrixTime),t.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)},f.a.setGet(e,t,["keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getKeyMatrices=function(n){var r=n.getRenderable(),a=n.getParent();if(Math.max(a.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime().getMTime())>t.keyMatrixTime.getMTime()){var i=t.renderable.getViewMatrix();o.copy(t.keyMatrices.normalMatrix,i),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,i);var s=n.getStabilizedCenterByReference();o.translate(t.keyMatrices.scvc,t.keyMatrices.wcvc,s);var l=n.getAspectRatio(),c=t.renderable.getProjectionMatrix(l,-1,1);o.transpose(t.keyMatrices.vcpc,c),t.keyMatrices.vcpc[2]=.5*c[8]+.5*c[12],t.keyMatrices.vcpc[6]=.5*c[9]+.5*c[13],t.keyMatrices.vcpc[10]=.5*c[10]+.5*c[14],t.keyMatrices.vcpc[14]=.5*c[11]+.5*c[15],o.multiply(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),o.invert(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}(e,t)}var $c=f.a.newInstance(Qc);Xc("vtkCamera",$c);var Jc={device:null,handle:null,name:null};function eu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jc,n),f.a.obj(e,t),t.bindables=[],t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),f.a.setGet(e,t,["name","device","arrayInformation","sourceTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.addBindable=function(n){for(var r=0;rr?o:r}if(r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nu,n),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=function(e,n){t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var au={newInstance:f.a.newInstance(ru,"vtkWebGPUShaderModule"),extend:ru};var ou={shaderModules:null,device:null,window:null};function iu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ou,n),t._shaderModules=new Map,f.a.obj(e,t),f.a.setGet(e,t,["device","window"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=function(e){for(var n=e.getType(),r=e.getHash(),a=t._shaderModules.keys(),o=0;o3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var lu={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null};function cu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),f.g(e,t),t.layouts=[],t.shaderDescriptions=[],f.b(e,t,["handle"]),f.i(e,t,["device","renderEncoder","topology","vertexState"]),function(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=function(){return t.shaderDescriptions},e.initialize=function(e){var n=t.renderEncoder.getPipelineSettings();n.primitive.topology=t.topology,n.vertex=t.vertexState;for(var r=[],a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,du,n),t.outputNames=[],t.outputTypes=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],f.a.obj(e,t),f.a.setGet(e,t,["type","hash","code"]),f.a.getArray(e,t,["outputTypes","outputNames"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=function(e){return t.outputNames.includes(e)},e.addOutput=function(e,n){t.outputTypes.push(e),t.outputNames.push(n)},e.addBuiltinOutput=function(e,n){t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=function(e,n){t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=function(e,n){var r=[],a=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){var o=[];if(o.push("struct ".concat(t.type,"Input\n{")),e)for(var i=e.getOutputNamesByReference(),s=e.getOutputTypesByReference(),l=0;l1&&(o.push("};"),a=o,r[r.length-1]+=",",r.push("input: ".concat(t.type,"Input")))}if(r.length&&(t.code=su.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){for(var u=["struct ".concat(t.type,"Output\n{")],d=0;d ".concat(t.type,"Output")]).result}t.code=su.substitute(t.code,"//VTK::IOStructs::Dec",a).result}}(e,t)}var pu={newInstance:f.a.newInstance(fu,"vtkWebGPUShaderDescription"),extend:fu};var gu={getByteStrideFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;"x"===e[e.length-2]&&(t=e[e.length-1]);var n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Object(f.l)("unknown format ".concat(e)),0):t*(5-r/2)},getNativeTypeFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Object(f.l)("unknown format ".concat(e));t="Uint"}var n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array";Object(f.l)("unknown format ".concat(e))},getShaderTypeFromBufferFormat:function(e){var t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Object(f.l)("unknown format ".concat(e));t="u32"}var n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?"vec4<".concat(t,">"):3===n?"vec3<".concat(t,">"):2===n?"vec2<".concat(t,">"):t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;var t=1;return"vec"===e.substring(0,3)?t=e[3]:"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Object(f.l)("unknown format ".concat(e))}};function mu(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vu,n),f.g(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],f.i(e,t,["created","device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUVertexInput"),e.addBuffer=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vertex",a=n;Array.isArray(a)||(a=[a]);for(var o=0;ot.names[0]?1:0})},e.removeBufferIfPresent=function(e){for(var n=0;n0&&(e+=",\n"),e="".concat(e," [[location(").concat(n,")]] ").concat(t.inputs[r].names[a]," : ").concat(i),n++}return e},e.getVertexInputInformation=function(){var e={};if(t.inputs.length){for(var n=[],r=0,a=0;a = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Tu="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Cu={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 Su(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cu,n),f.a.obj(e,t),t.textureViews=[],t.vertexInput=yu.newInstance(),t.bindGroup=tu.newInstance(),t.bindGroup.setName("mapperBG"),t.fragmentShaderTemplate=t.fragmentShaderTemplate||Tu,t.vertexShaderTemplate=t.vertexShaderTemplate||bu,t.shaderReplacements=new Map,f.a.get(e,t,["vertexInput"]),f.a.setGet(e,t,["device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),function(e,t){t.classHierarchy.push("vtkWebGPUMapperHelper"),e.generateShaderDescriptions=function(n,r,a){var o=pu.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=pu.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(o),s.push(i);for(var l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return"replaceShader".concat(e.substring(7,e.length-2))}),d=0;d","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,t,n){t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=function(e){t.textureViews.includes(e)||t.textureViews.push(e)},e.renderForPipeline=function(e){var n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),n.bindVertexInput(e,t.vertexInput),e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.registerToDraw=function(){t.pipeline&&t.WebGPURenderer.registerPipelineCallback(t.pipeline,e.renderForPipeline)},e.render=function(n,r){e.build(n,r),n.setPipeline(t.pipeline),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(n),e.renderForPipeline(n)},e.build=function(n,r){t.renderEncoder=n,t.pipeline=r.getPipeline(t.pipelineHash),t.UBO&&t.bindGroup.addBindable(t.UBO),t.SSBO&&t.bindGroup.addBindable(t.SSBO);for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wu,n),Pu.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition);var n=e.build;e.build=function(e,r){var a=r.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(a,["vertexBC"]),t.numberOfVertices=6,n(e,r)}}(e,t)}var Ou={newInstance:f.a.newInstance(xu,"vtkWebGPUFullScreenQuad"),extend:xu},Mu={BufferUsage:{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},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};function Au(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ru=["getMappedRange","mapAsync","unmap"];function Eu(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e,usage:n}),t.sizeInBytes=e,t.usage=n},e.write=function(e){!function(e,t,n,r){var a=r.byteLength,o=e.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=o.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(r)),o.unmap();var s=e.createCommandEncoder();s.copyBufferToBuffer(o,0,t,n,a);var l=s.finish();e.queue.submit([l]),o.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(var n=function(n){e[Ru[n]]=function(){var e;return(e=t.handle)[Ru[n]].apply(e,arguments)}},r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Du,n),f.a.obj(e,t),f.a.get(e,t,["handle","sizeInBytes","usage"]),f.a.setGet(e,t,["strideInBytes","device","arrayInformation","sourceTime"]),Eu(e,t)}var Lu=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_u,n),f.a.obj(e,t),f.a.setGet(e,t,["lighting","interpolation","ambient","diffuse","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation"]),f.a.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),function(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=function(n,r,a){Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===a||(t.color[0]=n,t.color[1]=r,t.color[2]=a,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=Gu("ComputeCompositeColor"),e.getColor=function(){var e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(var n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.addShaderVariable=Gu("AddShaderVariable"),e.setInterpolationToFlat=function(){return e.setInterpolation(Fu.FLAT)},e.setInterpolationToGouraud=function(){return e.setInterpolation(Fu.GOURAUD)},e.setInterpolationToPhong=function(){return e.setInterpolation(Fu.PHONG)},e.getInterpolationAsString=function(){return f.a.enumToString(Fu,t.interpolation)},e.setRepresentationToWireframe=function(){return e.setRepresentation(ku.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(ku.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(ku.POINTS)},e.getRepresentationAsString=function(){return f.a.enumToString(ku,t.representation)}}(e,t)}var ju=function(e){for(var t=1;t1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return numPoints>2?3*(e-2):0}};function $u(e){switch(e){case Xu.Points:return"points";case Xu.Lines:return"lines";case Xu.Triangles:return"polys";case Xu.TriangleStrips:return"strips";default:return""}}function Ju(e,t,n){var r=null;r=t===qu.POINTS||"points"===n?Qu.anythingToPoints:t===qu.WIREFRAME||"lines"===n?Qu["".concat(n,"ToWireframe")]:Qu["".concat(n,"ToSurface")];for(var a=e.getData(),o=a.length,i=0,s=0;s2)for(var a=0;a2){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nd,n),f.g(e,t),t.buffers=new WeakMap,f.i(e,t,["device"]),td(e,t)}var ad=zu(zu({newInstance:f.d(rd),extend:rd},{}),Mu);function od(e){return function(e){if(Array.isArray(e))return id(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return id(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return id(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function id(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cd,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},f.a.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,f.a.get(e,t,["binding","bindGroupTime"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=function(e,n){t._bufferEntryNames.has(e)?ld("entry named ".concat(e," already exists")):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gu.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gu.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=function(){if(t.sortDirty){for(var e=0,n=[],r=0;r4&&(C.packed=!0,C.offset=e,n.push(C),e+=C.sizeInBytes)}for(var S=0;S ").concat(t.name,": ").concat(t.name,"Struct;")),a.join("\n")}}(e,t)}var dd={newInstance:f.a.newInstance(ud,"vtkWebGPUUniformBuffer"),extend:ud},fd=f.k,pd="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var gd={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gd,n),Js.extend(e,t,n),t.UBO=dd.newInstance(),t.UBO.setName("rendererUBO"),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("cameraParallel","u32"),t.bindGroup=tu.newInstance(),t.bindGroup.setName("rendererBG"),t.bindGroup.addBindable(t.UBO),t.tmpMat4=o.identity(new Float64Array(16)),t.stabilizedTime={},f.g(t.stabilizedTime,{mtime:0}),f.b(e,t,["bindGroup","stabilizedTime"]),f.c(e,t,["stabilizedCenter"]),f.i(e,t,["renderEncoder","selector","suppressClear","UBO"]),function(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=function(){var e=t.renderable.getActiveCamera(),n=e.getClippingRange(),r=e.getPositionByReference(),a=e.getDirectionOfProjectionByReference(),o=[],s=[];i.scale(s,a,.5*(n[0]+n[1])),i.add(o,r,s),i.sub(s,o,t.stabilizedCenter),i.len(s)/(n[1]-n[0])>t.recenterThreshold&&(t.stabilizedCenter=o,t.stabilizedTime.modified())},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(fd("No lights are on, creating one."),t.renderable.createLight()),e},e.registerPipelineCallback=function(e,n){for(var r=0;ra||e.getMTime()>a||n.getMTime()>a||t.renderable.getMTime()>a){var o=r.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",o.wcvc),t.UBO.setArray("SCPCMatrix",o.scpc),t.UBO.setArray("PCSCMatrix",o.pcsc),t.UBO.setArray("SCVCMatrix",o.scvc),t.UBO.setArray("VCPCMatrix",o.vcpc),t.UBO.setArray("WCVCNormals",o.normalMatrix),t.UBO.setValue("cameraParallel",n.getParallelProjection());var i=t.parent.getDevice();t.UBO.sendIfNeeded(i)}},e.scissorAndViewport=function(t){var n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=function(e){e.activateBindGroup(t.bindGroup)},e.opaquePass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder()),e.updateUBO();else{e.scissorAndViewport(t.renderEncoder),e.clear();for(var r=0;r"),t.clearFSQ.setUBO(n)}var r=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",r),t.clearFSQ.getUBO().sendIfNeeded(e),t.clearFSQ.render(t.renderEncoder,e)}},e.translucentPass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder());else{e.scissorAndViewport(t.renderEncoder);for(var r=0;rn[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hd,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(n,r){if(n){if(!t.renderable||!t.renderable.getVisibility())return;var a=t.renderable.getMapper().getBounds();if(!a||6!==a.length||a[0]>a[1])return;r.addVolume(e)}},e.getBoundingCubePoints=function(e,n){for(var r=t.renderable.getMapper().getBounds(),a=t.renderable.getMatrix(),o=0,i=4;i<6;i++)for(var s=r[i],l=2;l<4;l++)for(var c=r[l],u=0;u<2;u++){var d=r[u],f=n+3*o;e[f++]=a[0]*d+a[1]*c+a[2]*s+a[3],e[f++]=a[4]*d+a[5]*c+a[6]*s+a[7],e[f++]=a[8]*d+a[9]*c+a[10]*s+a[11],o++}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();o.transpose(t.keyMatrices.bcwc,n),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var bd=f.a.newInstance(yd,"vtkWebGPUVolume");Xc("vtkVolume",bd);var Td={};function Cd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Td,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();var a=t.WebGPURenderer.getAspectRatio(),o=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,null)}}(e,t)}var Sd=f.a.newInstance(Cd,"vtkWebGPUPixelSpaceCallbackMapper");Xc("vtkPixelSpaceCallbackMapper",Sd);var Pd={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function wd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pd,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=function(n){if(n){t.openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t.openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var r=0;rt.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?a.identity(t.keyMatrices.normalMatrix):(a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),a.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var xd=f.d(wd);al("vtkActor",xd);var Od={context:null,activeTextures:[]};function Md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Od,n),Js.extend(e,t,n),f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.activateTextures=function(){t.activeTextures=[],t.children.forEach(function(e){e.isA("vtkOpenGLTexture")&&(e.render(),e.getHandle()&&t.activeTextures.push(e))})},e.opaquePass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0),e.activateTextures()):t.activeTextures.forEach(function(e){e.deactivate()})},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1),e.activateTextures()):(t.activeTextures.forEach(function(e){e.deactivate()}),t.context.depthMask(!0))}}(e,t)}var Ad=f.d(Md);al("vtkActor2D",Ad);var Id={bounds:[1,-1,1,-1,1,-1],center:[0,0,0]};var Rd={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Id,n),Gs.extend(e,t,n),t.bounds||we(t.bounds),t.center||(t.center=[0,0,0]),function(e,t){e.getBounds=function(){return 0},e.getBounds=function(n){e.getBounds();for(var r=0;r<6;r++)n[r]=t.bounds[r]},e.getCenter=function(){e.getBounds();for(var n=0;n<3;n++)t.center[n]=(t.bounds[2*n+1]+t.bounds[2*n])/2;return t.center.slice()},e.getLength=function(){var n=0,r=0;e.getBounds();for(var a=0;a<3;a++)r+=(n=t.bounds[2*a+1]-t.bounds[2*a])*n;return Math.sqrt(r)},e.getClippingPlaneInDataCoords=function(e,n,r){var a=t.clippingPlanes,o=e;if(a){var i=a.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nd,n),ts.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},f.a.obj(t.buildTime),t.opaqueFlagBuildTime={},f.a.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},f.a.obj(t.insertTime,{mtime:0}),f.a.get(e,t,["buildTime"]),f.a.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),f.a.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=function(){if(t.opaqueFlagBuildTime.getMTime()t.range[1]?t.maxIndex+Vd+1.5:(n=(e+t.shift)*t.scale)e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=function(n,r,a,o){var i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);var s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);var c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),f=r.getData(),p=n.getData();if(c>=1){if(a===_i.RGBA)for(var g=0;gt.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&t.insertTime.modified()}(e,t)}var kd={newInstance:f.a.newInstance(Bd,"vtkLookupTable"),extend:Bd},Fd=1,Gd=0,_d=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function Ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Gd=e}var jd={getResolveCoincidentTopologyAsString:function(){return _d[Gd]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Fd},getResolveCoincidentTopology:function(){return Gd},setResolveCoincidentTopology:Ud,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){Fd=e},setResolveCoincidentTopologyToDefault:function(){Ud(0)},setResolveCoincidentTopologyToOff:function(){Ud(0)},setResolveCoincidentTopologyToPolygonOffset:function(){Ud(1)}};function Wd(e,t,n){n.forEach(function(n){e["get".concat(n.method)]=function(){return t[n.key]},e["set".concat(n.method)]=function(e,r){t[n.key]={factor:e,offset:r}}})}var zd=["Polygon","Line","Point"],Hd={};Wd(Hd,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},zd.map(function(e){return{key:e,method:"ResolveCoincidentTopology".concat(e,"OffsetParameters")}}));var Kd={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),f.a.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(jd).forEach(function(t){e[t]=jd[t]}),Object.keys(Hd).forEach(function(t){e[t]=Hd[t]}),Wd(e,t.topologyOffset,zd.map(function(e){return{key:e,method:"RelativeCoincidentTopology".concat(e,"OffsetParameters")}})),e.getCoincidentTopologyPolygonOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=function(){var t=Hd.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Hd,otherStaticMethods:jd,CATEGORIES:zd};function Xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qd(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),Rd.extend(e,t,n),f.a.get(e,t,["colorCoordinates","colorMapColors","colorTextureMap"]),f.a.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),f.a.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Kd.implementCoincidentTopologyMethods(e,t),function(e,t){t.classHierarchy.push("vtkMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.setForceCompileOnly=function(e){t.forceCompileOnly=e},e.createDefaultLookupTable=function(){t.lookupTable=kd.newInstance()},e.getColorModeAsString=function(){return f.a.enumToString($d,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return f.a.enumToString(Jd,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,n,r,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(n===Jd.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(n===Jd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Jd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Jd.USE_POINT_FIELD_DATA){var l=e.getPointData();i=r===ef.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(n===Jd.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=r===ef.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(n===Jd.USE_FIELD_DATA){var u=e.getFieldData();i=r===ef.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.mapScalars=function(n,r){var a=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!a)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);var o="".concat(e.getMTime()).concat(a.getMTime()).concat(r);if(t.colorBuildString!==o){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(n))e.mapScalarsToTexture(a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,-1))}t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(r)}},e.scalarToTextureCoordinate=function(e,t,n){var r=.5,a=1;return Le(e)||(a=.49,(r=(e-t)*n)>1e3?r=1e3:r<-1e3&&(r=-1e3)),{texCoordS:r,texCoordT:a}},e.createColorTextureCoordinates=function(t,n,r,a,o,i,s,l,c){var u=(i[1]-i[0])/l,d=[];d[0]=i[0]-u,d[1]=i[1]+u;var f=1/(d[1]-d[0]),p=n.getData(),g=t.getData(),m=0,v=0;if(o<0||o>=a)for(var h=0;ht.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==r){t.lookupTable.setAlpha(r),t.colorTextureMap=null,t.lookupTable.build();var s=t.lookupTable.getNumberOfAvailableColors();s>4094&&(s=4094),s+=2;for(var l=(a[1]-a[0])/(s-1-2),c=new Float64Array(2*s),u=0;ut.colorCoordinates.getMTime()||e.getInputData(0).getMTime()>t.colorCoordinates.getMTime()||t.lookupTable.getMTime()>t.colorCoordinates.getMTime()){t.colorCoordinates=null;var p=n.getNumberOfComponents(),g=n.getNumberOfTuples();t.colorCoordinates=Qe.newInstance({numberOfComponents:2,values:new Float32Array(2*g)});var m=t.lookupTable.getVectorComponent();t.lookupTable.getVectorMode()===tf.MAGNITUDE&&n.getNumberOfComponents()>1&&(m=-1),e.createColorTextureCoordinates(n,t.colorCoordinates,g,p,m,a,t.lookupTable.getRange(),t.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,o)}},e.getIsOpaque=function(){var t=e.getLookupTable();return!t||(t.build(),t.isOpaque())},e.canUseTextureMapForColoring=function(n){if(!t.interpolateScalarsBeforeMapping)return!1;if(t.lookupTable&&t.lookupTable.getIndexedLookup())return!1;var r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName),a=r.scalars;return!(!a||r.cellFlag||t.colorMode===$d.DEFAULT&&a.getDataType()===nf.UNSIGNED_CHAR||t.colorMode===$d.DIRECT_SCALARS)},e.clearColorArrays=function(){t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=function(){var t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells()}},e.acquireInvertibleLookupTable=rf("AcquireInvertibleLookupTable"),e.valueToColor=rf("ValueToColor"),e.colorToValue=rf("ColorToValue"),e.useInvertibleColorFor=rf("UseInvertibleColorFor"),e.clearInvertibleColor=rf("ClearInvertibleColor")}(e,t)}var sf=qd(qd(qd({newInstance:f.a.newInstance(of,"vtkMapper"),extend:of},Zd),Qd),Wi);function lf(e){return function(e){if(Array.isArray(e))return cf(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return cf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bf,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.primitives=[],t.primTypes=uf,t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16));for(var r=uf.Start;r= cos(radians(lightConeAngle".concat(d,")))")," {"," attenuation = attenuation * pow(coneDot, lightExponent".concat(d,");")," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));"," diffuseL += ((df".concat("",") * lightColor").concat(d,");")," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {"," float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC".concat(d,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(d,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=_l.substitute(a,"//VTK::Light::Impl",s,!1).result;break;default:vf("bad light complexity")}e.Fragment=a},e.replaceShaderNormal=function(n,r,a){if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var o=n.Vertex,i=n.Geometry,s=n.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,i=_l.substitute(i,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,i=_l.substitute(i,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,s=_l.substitute(s,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.getOpenGLMode(a.getProperty().getRepresentation(),t.lastBoundBO.getPrimitiveType())===t.context.LINES?(s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));"," vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," fdx = normalize(fdx);"," fdy = normalize(fdy);"," if (abs(fdx.x) > 0.0)"," { normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//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),n.Vertex=o,n.Geometry=i,n.Fragment=s}},e.replaceShaderPositionVC=function(e,n,r){var a=e.Vertex,o=e.Geometry,i=e.Fragment;r.getProperty().getRepresentation()!==df.POINTS&&t.lastBoundBO.getPrimitiveType()!==uf.Points||(a=_l.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = ".concat(r.getProperty().getPointSize(),".0;")],!1).result),t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=_l.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=_l.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=_l.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,n,r){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment;if(t.drawingEdges)return;a=_l.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;var s=t.openGLActor.getActiveTextures(),l=2,c=2;if(s&&s.length>0&&(l=s[0].getComponents(),s[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(c=3)),t.renderable.getColorTextureMap()&&(l=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),c=2),2===c){if(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,s&&s.length>=1)switch(l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*texture2D(texture1, tcoordVCVSOutput.st);").result}}else switch(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*textureCube(texture1, tcoordVCVSOutput);").result}e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderClip=function(e,n,r){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6),a=_l.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=_l.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=_l.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,o=_l.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getCoincidentParameters=function(e,n){var r=null,a=n.getProperty();if(t.renderable.getResolveCoincidentTopology()||a.getEdgeVisibility()&&a.getRepresentation()===df.SURFACE){var o=t.lastBoundBO.getPrimitiveType();o===uf.Points||a.getRepresentation()===df.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():o===uf.Lines||a.getRepresentation()===df.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():o!==uf.Tris&&o!==uf.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),o!==uf.TrisEdges&&o!==uf.TriStripsEdges||((r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()).factor/=2,r.offset/=2)}return r},e.replaceShaderPicking=function(e,t,n){var r=e.Fragment;r=_l.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=_l.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderValues=function(n,r,a){if(e.replaceShaderColor(n,r,a),e.replaceShaderNormal(n,r,a),e.replaceShaderLight(n,r,a),e.replaceShaderTCoord(n,r,a),e.replaceShaderPicking(n,r,a),e.replaceShaderClip(n,r,a),e.replaceShaderCoincidentOffset(n,r,a),e.replaceShaderPositionVC(n,r,a),t.haveSeenDepthRequest){var o=n.Fragment;o=_l.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=_l.substitute(o,"//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,n.Fragment=o}},e.getNeedToRebuildShaders=function(n,r,a){var o=0,i=0,s=n.getPrimitiveType(),l=t.currentInput,c=!1,u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),f=a.getProperty().getInterpolation()===ff.FLAT,p=a.getProperty().getRepresentation(),g=e.getOpenGLMode(p,s);if(g===t.context.TRIANGLES?c=!0:d&&!u?c=!0:!f&&u?c=!0:f||g!==t.context.LINES||(c=!0),a.getProperty().getLighting()&&c){o=0;for(var m=r.getLightsByReference(),v=0;v0&&(i++,0===o&&(o=1)),1===o&&(i>1||1!==h.getIntensity()||!h.lightTypeIsHeadLight())&&(o=2),o<3&&h.getPositional()&&(o=3)}}var y=!1,b=t.lastBoundBO.getReferenceByName("lastLightComplexity"),T=t.lastBoundBO.getReferenceByName("lastLightCount");return b===o&&T===i||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:i},!0),y=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===n.getProgram()||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){var o=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&o>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(function(e,r){n.getProgram().isAttributeUsed("".concat(e,"MC"))&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"".concat(e,"MC"),n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||vf("Error setting ".concat(e,"MC in shader VAO.")))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||vf("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||vf("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6);for(var s=[],l=0;l0){var f=d.getColorByReference(),p=d.getIntensity();t.lightColor[0]=f[0]*p,t.lightColor[1]=f[1]*p,t.lightColor[2]=f[2]*p;var g=d.getDirection(),m=n.getActiveCamera().getViewMatrix(),v=lf(g);d.lightTypeIsSceneLight()&&(v[0]=m[0]*g[0]+m[1]*g[1]+m[2]*g[2],v[1]=m[4]*g[0]+m[5]*g[1]+m[6]*g[2],v[2]=m[8]*g[0]+m[9]*g[1]+m[10]*g[2],K(v)),t.lightDirection[0]=v[0],t.lightDirection[1]=v[1],t.lightDirection[2]=v[2],t.lightHalfAngle[0]=-t.lightDirection[0],t.lightHalfAngle[1]=-t.lightDirection[1],t.lightHalfAngle[2]=1-t.lightDirection[2],K(t.lightDirection),s.setUniform3fArray("lightColor".concat(l),t.lightColor),s.setUniform3fArray("lightDirectionVC".concat(l),t.lightDirection),s.setUniform3fArray("lightHalfAngleVC".concat(l),t.lightHalfAngle),l++}}if(!(a<3)){var h=n.getActiveCamera().getViewMatrix();o.transpose(h,h),l=0;for(var y=0;y0){var T=b.getTransformedPosition(),C=new Float64Array(3);i.transformMat4(C,T,h),s.setUniform3fArray("lightAttenuation".concat(l),b.getAttenuationValuesByReference()),s.setUniformi("lightPositional".concat(l),b.getPositional()),s.setUniformf("lightExponent".concat(l),b.getExponent()),s.setUniformf("lightConeAngle".concat(l),b.getConeAngle()),s.setUniform3fArray("lightPositionVC".concat(l),[C[0],C[1],C[2]]),l++}}}}},e.setCameraShaderParameters=function(e,r,i){var s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(r),c=r.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,p=i.getIsIdentity(),g=p?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();s.setUniformMatrix("MCPCMatrix",n([l.wcpc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,g.normalMatrix],a,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),p||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram(),o=r.getProperty(),i=o.getOpacity(),s=t.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),l=t.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),c=t.drawingEdges?1:o.getAmbient(),u=t.drawingEdges?0:o.getDiffuse(),d=t.drawingEdges?0:o.getSpecular(),f=o.getSpecularPower();a.setUniformf("opacityUniform",i),a.setUniform3fArray("ambientColorUniform",s),a.setUniform3fArray("diffuseColorUniform",l),a.setUniformf("ambient",c),a.setUniformf("diffuse",u);var p=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(p<1)){var g=o.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",g),a.setUniformf("specularPowerUniform",f),a.isUniformUsed("ambientIntensityBF")){if(i=(o=r.getBackfaceProperty()).getOpacity(),s=o.getAmbientColor(),c=o.getAmbient(),l=o.getDiffuseColor(),u=o.getDiffuse(),g=o.getSpecularColor(),d=o.getSpecular(),a.setUniformf("ambientIntensityBF",c),a.setUniformf("diffuseIntensityBF",u),a.setUniformf("opacityUniformBF",i),a.setUniform3fArray("ambientColorUniformBF",s),a.setUniform3fArray("diffuseColorUniformBF",l),p<1)return;a.setUniformf("specularIntensityBF",d),a.setUniform3fArray("specularColorUniformBF",g),a.setUniformf("specularPowerUniformBF",f)}}},e.renderPieceStart=function(n,r){t.primitiveIDOffset=0,t.openGLRenderer.getSelector()&&(t.openGLRenderer.getSelector().getCurrentPass(),t.openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=function(n,r){var a=r.getProperty().getRepresentation(),o=t.context,i=r.getProperty().getEdgeVisibility()&&a===df.SURFACE;o.lineWidth(r.getProperty().getLineWidth());for(var s=uf.Start;s2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Js.extend(e,t,n),t.openGLTexture=sc.newInstance(),t.tris=Kl.newInstance(),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=function(n){if(n){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera())}},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=function(n,r){if(n&&!t.openGLRenderer.getSelector()){e.updateBufferObjects(),t.openGLRenderWindow.enableDepthMask(),t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t.openGLRenderWindow);var a=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",a);var i=t.openGLRenderer.getRenderable(),s=t.openGLCamera.getKeyMatrices(i),l=new Float64Array(16);if(o.invert(l,s.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",l),"box"===t.lastFormat){var c=i.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=function(){if(!t.tris.getCABO().getElementCount()){for(var e=new Float32Array(12),n=0;n<4;n++)e[3*n]=n%2*2-1,e[3*n+1]=n>1?1:-1,e[3*n+2]=1;var r=Qe.newInstance({numberOfComponents:3,values:e});r.setName("points");var a=new Uint16Array(8);a[0]=3,a[1]=0,a[2]=1,a[3]=3,a[4]=3,a[5]=0,a[6]=3,a[7]=2;var o=Qe.newInstance({numberOfComponents:1,values:a});t.tris.getCABO().createVBO(o,"polys",Ol.SURFACE,{points:r,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Pf("Error setting vertexMC in shader VAO."));var i=t.renderable.getTextures();i.length||Pf("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==i[0]&&(t.openGLTexture.releaseGraphicsResources(t.openGLRenderWindow),t.openGLTexture.setRenderable(i[0]))}}(e,t)}var Of=f.d(xf);al("vtkSkybox",Of);var Mf={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Af(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mf,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=function(n){n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=function(n){return e.getKeyMatrices(n),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();t.bufferShift[0]=n[3]-r[0],t.bufferShift[1]=n[7]-r[1],t.bufferShift[2]=n[11]-r[2],o.transpose(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?o.identity(t.keyMatrices.normalMatrix):(o.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),o.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var If=f.a.newInstance(Af);Xc("vtkActor",If);var Rf={repeat:!1,interpolate:!1,edgeClamp:!1,image:null,imageLoaded:!1};function Ef(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rf,n),f.a.obj(e,t),f.a.algo(e,t,6,0),f.a.get(e,t,["imageLoaded"]),f.a.setGet(e,t,["repeat","edgeClamp","interpolate","image"]),function(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=function(){t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setImage=function(n){t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null)),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())}}(e,t)}var Df={newInstance:f.a.newInstance(Ef,"vtkTexture"),extend:Ef},Vf=ad.BufferUsage,Lf=ad.PrimitiveTypes,Nf=ju.Representation,Bf=sf.ScalarMode,kf={type:"StartEvent"},Ff={type:"EndEvent"},Gf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(vertex)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",_f="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n var computedColor: vec4 = vec4(ambientColor.rgb * mapperUBO.AmbientIntensity\n + diffuse * mapperUBO.DiffuseIntensity\n + specular * mapperUBO.SpecularIntensity,\n opacity);\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Uf={colorTexture:null,renderEncoder:null,textures:null,textureViews:null,primitives:null,tmpMat4:null,fragmentShaderTemplate:null,vertexShaderTemplate:null};function jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Uf,n),Js.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16)),t.fragmentShaderTemplate=t.fragmentShaderTemplate||_f,t.vertexShaderTemplate=t.vertexShaderTemplate||Gf,t.UBO=dd.newInstance(),t.UBO.setName("mapperUBO"),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("SpecularPower","f32"),t.UBO.addEntry("PropID","u32"),f.b(e,t,["fragmentShaderTemplate","vertexShaderTemplate","UBO"]),f.i(e,t,["renderEncoder"]),t.textures=[],t.textureViews=[],t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.buildPass=function(n){n&&(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=function(t){t&&e.render()},e.opaquePass=function(t){t&&e.render()},e.updateUBO=function(){var n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){var a=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);t.UBO.setArray("BCWCMatrix",a.bcwc),t.UBO.setArray("BCSCMatrix",a.bcsc),t.UBO.setArray("MCWCNormals",a.normalMatrix);var o=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[o[0],o[1],o[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),o=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[o[0],o[1],o[2],1]),t.UBO.setValue("SpecularIntensity",n.getSpecular()),t.UBO.setValue("SpecularPower",n.getSpecularPower()),o=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[o[0],o[1],o[2],1]),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());var i=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(i)}},e.render=function(){e.invokeEvent(kf),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Ff),t.renderEncoder=t.WebGPURenderer.getRenderEncoder(),e.buildPrimitives(),e.updateUBO()},e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,n){if(n.hasAttribute("normalMC")){var r=t.getShaderDescription("vertex");r.addOutput("vec3","normalVC");var a=r.getCode();a=su.substitute(a,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"]).result,o.setCode(a)}},e.replaceShaderLight=function(e,t,n){var r=t.getShaderDescription("fragment"),a=r.getCode();a.includes("var normal")?(a=su.substitute(a,"//VTK::Light::Impl",[" var df: f32 = max(0.0, normal.z);"," var sf: f32 = pow(df, mapperUBO.SpecularPower);"," var diffuse: vec3 = df * diffuseColor.rgb;"," var specular: vec3 = sf * mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a)):(a=su.substitute(a,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a))},e.replaceShaderColor=function(e,t,n){if(n.hasAttribute("colorVI")){var r=t.getShaderDescription("vertex");r.addOutput("vec4","color");var a=r.getCode();a=su.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,o.setCode(a)}},e.replaceShaderTCoord=function(e,n,r){if(r.hasAttribute("tcoord")){var a=n.getShaderDescription("vertex");a.addOutput("vec2","tcoordVS");var o=a.getCode();o=su.substitute(o,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,a.setCode(o);var i=n.getShaderDescription("fragment");o=i.getCode(),t.textures.length&&(o=su.substitute(o,"//VTK::TCoord::Impl",["var tcolor: vec4 = textureSample(Texture0, Texture0Sampler, input.tcoordVS);","computedColor = computedColor*tcolor;"]).result),i.setCode(o)}},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("fragment"),a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,r.setCode(a)}},e.getUsage=function(e,t){return e===Nf.POINTS||0===t?Vf.Verts:1===t?Vf.Lines:e===Nf.WIREFRAME?2===t?Vf.LinesFromTriangles:Vf.LinesFromStrips:2===t?Vf.Triangles:Vf.Strips},e.getHashFromUsage=function(e){return"pt".concat(e)},e.getTopologyFromUsage=function(e){switch(e){case Vf.Triangles:return"triangle-list";case Vf.Verts:return"point-list";default:case Vf.Lines:return"line-list"}},e.buildVertexInput=function(n,r,a){var o=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),i=t.WebGPURenderWindow.getDevice(),s=t.primitives[a].getVertexInput(),l=r.getMTime()+o,c=n.getPoints();if(c){var u=t.WebGPUActor.getBufferShift(t.WebGPURenderer),d={hash:l+c.getMTime(),dataArray:c,source:c,cells:r,primitiveType:a,representation:o,time:Math.max(c.getMTime(),r.getMTime(),t.WebGPUActor.getKeyMatricesTime().getMTime()),shift:u,usage:Vf.PointArray,format:"float32x4",packExtra:!0},f=i.getBufferManager().getBuffer(d);s.addBuffer(f,["vertexBC"])}else s.removeBufferIfPresent("vertexBC");var p=e.getUsage(o,a);if(p===Vf.Triangles||p===Vf.Strips){var g=n.getPointData().getNormals(),m={cells:r,representation:o,primitiveType:a,format:"snorm8x4",packExtra:!0,shift:0,scale:127};if(g){m.hash=l+g.getMTime(),m.dataArray=g,m.source=g,m.time=Math.max(g.getMTime(),r.getMTime()),m.usage=Vf.PointArray;var v=i.getBufferManager().getBuffer(m);s.addBuffer(v,["normalMC"])}else if(a===Lf.Triangles){m.hash=l+c.getMTime(),m.dataArray=c,m.source=c,m.time=Math.max(c.getMTime(),r.getMTime()),m.usage=Vf.NormalsFromPoints;var h=i.getBufferManager().getBuffer(m);s.addBuffer(h,["normalMC"])}else s.removeBufferIfPresent("normalMC")}else s.removeBufferIfPresent("normalMC");var y=!1;if(t.renderable.getScalarVisibility()){var b=t.renderable.getColorMapColors();if(b){var T=t.renderable.getScalarMode(),C=!1;T!==Bf.USE_CELL_DATA&&T!==Bf.USE_CELL_FIELD_DATA&&T!==Bf.USE_FIELD_DATA&&n.getPointData().getScalars()||T===Bf.USE_POINT_FIELD_DATA||!b||(C=!0);var S={hash:l+c.getMTime(),dataArray:b,source:b,cells:r,primitiveType:a,representation:o,time:Math.max(b.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"unorm8x4",cellData:C,cellOffset:0},P=i.getBufferManager().getBuffer(S);s.addBuffer(P,["colorVI"]),y=!0}}y||s.removeBufferIfPresent("colorVI");var w=null;if(w=t.renderable.getInterpolateScalarsBeforeMapping()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords()){var x={hash:l+w.getMTime(),dataArray:w,source:w,cells:r,primitiveType:a,representation:o,time:Math.max(w.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"float32x2"},O=i.getBufferManager().getBuffer(x);s.addBuffer(O,["tcoord"])}else s.removeBufferIfPresent("tcoord")},e.updateTextures=function(){var e=[],n=[],r=t.renderable.getColorTextureMap();r&&(t.colorTexture||(t.colorTexture=Df.newInstance()),t.colorTexture.setInputData(r),n.push(t.colorTexture));for(var a=t.WebGPUActor.getRenderable().getTextures(),o=0;o=0;m--)e[m]||(t.textures.splice(m,1),t.textureViews.splice(m,1))},e.computePipelineHash=function(n,r){var a="pd";return n.hasAttribute("normalMC")&&(a+="n"),n.hasAttribute("colorVI")&&(a+="c"),n.hasAttribute("tcoord")&&(a+="t"),t.textures.length&&(a+="tx".concat(t.textures.length)),t.SSBO&&(a+="ssbo"),a+=e.getHashFromUsage(r),a+=t.renderEncoder.getPipelineHash()},e.buildPrimitives=function(){var n=t.currentInput,r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=t.WebGPURenderWindow.getDevice();t.renderable.mapScalars(n,1),e.updateTextures();for(var o=Lf.Points;o<=Lf.Triangles;o++)if(r[o].getNumberOfValues()>0){var i=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),s=e.getUsage(i,o),l=t.primitives[o];e.buildVertexInput(t.currentInput,r[o],o),l.setPipelineHash(e.computePipelineHash(l.getVertexInput(),s)),l.setTextureViews(t.textureViews),l.setWebGPURenderer(t.WebGPURenderer),l.setNumberOfInstances(1);var c=l.getVertexInput().getBuffer("vertexBC");l.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),l.setTopology(e.getTopologyFromUsage(s)),l.build(t.renderEncoder,a),l.registerToDraw()}},e.setShaderReplacement=function(e,n){for(var r=Lf.Start;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name"]),function(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.handle=t.device.getHandle().createSampler({magFilter:n.magFilter?n.magFilter:"nearest",minFilter:n.minFilter?n.minFilter:"nearest"}),t.bindGroupTime.modified()},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": sampler;")},e.getBindGroupEntry=function(){return{resource:t.handle}}}(e,t)}var Xf={newInstance:f.a.newInstance(Kf),extend:Kf};var qf={texture:null,handle:null,name:null,sampler:null};function Yf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","name","texture"]),f.a.setGet(e,t,["bindGroupLayoutEntry","sampler"]),function(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=function(e,n){t.texture=e,t.options=n,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options)},e.getBindGroupEntry=function(){return{resource:e.getHandle()}},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": texture_2d;")},e.addSampler=function(n,r){var a=Xf.newInstance();a.create(n,r),e.setSampler(a),t.sampler.setName("".concat(t.name,"Sampler"))},e.setName=function(n){t.sampler&&t.sampler.setName("".concat(n,"Sampler")),t.name!==n&&(t.name=n,e.modified())},e.getHandle=function(){return t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle}}(e,t)}var Zf={newInstance:f.a.newInstance(Yf),extend:Yf},Qf=ad.BufferUsage;var $f={device:null,handle:null,buffer:null,ready:!1};function Jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$f,n),f.a.obj(e,t),f.a.get(e,t,["handle","ready","width","height","depth","format","usage"]),f.a.setGet(e,t,["device"]),function(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=function(e,n){t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;var r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgbaunorm",t.usage=n.usage?n.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,dimension:r})},e.assignFromHandle=function(e,n,r){t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgbaunorm",t.usage=r.usage?r.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST},e.writeImageData=function(e){var n=4*t.width;if(e.dataArray){var r={dataArray:e.dataArray,time:e.dataArray.getMTime(),usage:Qf.Texture,format:"unorm8x4"};if(t.width%64){for(var a=e.dataArray.getData(),o=64*Math.floor((t.width+63)/64),i=new Uint8Array(o*t.height*4),s=0;s2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage}))},e.createView=function(t){var n=Zf.newInstance();return n.create(e,t),n}}(e,t)}f.a.newInstance(Jf);var ep={PassTypes:{MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,MAX_KNOWN_PASS:2}};function tp(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function np(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var o=e.apply(t,n);function i(e){tp(o,r,a,i,s,"next",e)}function s(e){tp(o,r,a,i,s,"throw",e)}i(void 0)})}}var rp={fieldAssociation:Cn.FieldAssociations.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function ap(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rp,n),f.a.obj(e,t),f.a.setGet(e,t,["fieldAssociation","captureZValues"]),function(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=function(){var e=np(regeneratorRuntime.mark(function e(t,n,r,a,o){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)}));return function(t,n,r,a,o){return e.apply(this,arguments)}}(),e.selectAsync=function(){var t=np(regeneratorRuntime.mark(function t(n,r,a,o,i){var s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.getSourceDataAsync(n,r,a,o,i);case 2:if(!(s=t.sent)){t.next=5;break}return t.abrupt("return",s.generateSelection(r,a,o,i));case 5:return t.abrupt("return",[]);case 6:case"end":return t.stop()}},t)}));return function(e,n,r,a,o){return t.apply(this,arguments)}}()}(e,t)}var op={newInstance:f.a.newInstance(ap,"vtkHardwareSelector"),extend:ap},ip={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};function sp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cp={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function up(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cp,n),f.a.obj(e,t),t.properties={},f.a.setGet(e,t,["contentType","fieldType","properties","selectionList"]),function(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=function(){return t.points.getBounds()}}(e,t)}var dp=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.area[2]||t[1]e.area[3])return null;var o=[t[0]-e.area[0],t[1]-e.area[1]],i=wp(o[0],o[1],e.pixBuffer[hp.ACTOR_PASS],e.area);if(i<=0)return null;var s={valid:!0};s.propID=i-Sp,s.prop=e.props[s.propID];var l=wp(o[0],o[1],e.pixBuffer[hp.COMPOSITE_INDEX_PASS],e.area);if((l<0||l>16777215)&&(l=0),s.compositeID=l-Sp,e.captureZValues){var c=4*(o[1]*(e.area[2]-e.area[0]+1)+o[0]);s.zValue=(256*e.zBuffer[c]+e.zBuffer[c+1])/65535,s.displayPosition=t}return s}var u=[t[0],t[1]],d=[0,0],f=xp(e,t,0,r);if(f&&f.valid)return f;for(var p=1;pp?u[1]-p:0;g<=u[1]+p;++g){if(d[1]=g,u[0]>=p&&(d[0]=u[0]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[0]=u[0]+p,(f=xp(e,d,0,r))&&f.valid)return f}for(var m=u[0]>=p?u[0]-(p-1):0;m<=u[0]+(p-1);++m){if(d[0]=m,u[1]>=p&&(d[1]=u[1]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[1]=u[1]+p,(f=xp(e,d,0,r))&&f.valid)return f}}return r[0]=t[0],r[1]=t[1],null}function Op(e,t,n,r,a){var o=[],i=0;return t.forEach(function(t,s){var l=dp.newInstance();switch(l.setContentType(yp.INDICES),e){case Tp.FIELD_ASSOCIATION_CELLS:l.setFieldType(bp.CELL);break;case Tp.FIELD_ASSOCIATION_POINTS:l.setFieldType(bp.POINT);break;default:Cp("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=a.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),o[i]=l,i++}),o}function Mp(e,t,n,r,a){for(var o=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=new Map,u=[0,0],d=i;d<=l;d++)for(var f=o;f<=s;f++){var p=xp(e,[f,d],0,u);if(p&&p.valid){var g=Pp(p);if(c.has(g)){var m=c.get(g);m.pixelCount++,e.captureZValues&&p.zValue0&&(--a in t.hitProps||(t.hitProps[a]=!0))}},e.renderProp=function(n){t.currentPass===hp.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+Sp),t.props.push(n))},e.renderCompositeIndex=function(n){t.currentPass===hp.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+Sp)},e.renderAttributeId=function(e){e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=function(e){return f.a.enumToString(hp,e)},e.isPropHit=function(e){return Boolean(t.hitProps[e])},e.setPropColorValueFromInt=function(e){t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=function(n,r,a){var o=r<0?0:r;if(0===o){if(a[0]=n[0],a[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;var i=[n[0]-t.area[0],n[1]-t.area[1]],s=wp(i[0],i[1],t.pixBuffer[hp.ACTOR_PASS],t.area);if(s<=0)return null;var l={valid:!0};l.propID=s-Sp,l.prop=t.props[l.propID];var c=wp(i[0],i[1],t.pixBuffer[hp.COMPOSITE_INDEX_PASS],t.area);if((c<0||c>16777215)&&(c=0),l.compositeID=c-Sp,t.captureZValues){var u=4*(i[1]*(t.area[2]-t.area[0]+1)+i[0]);l.zValue=(256*t.zBuffer[u]+t.zBuffer[u+1])/65535,l.displayPosition=n}return l}var d=[n[0],n[1]],f=[0,0],p=e.getPixelInformation(n,0,a);if(p&&p.valid)return p;for(var g=1;gg?d[1]-g:0;m<=d[1]+g;++m){if(f[1]=m,d[0]>=g&&(f[0]=d[0]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[0]=d[0]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}for(var v=d[0]>=g?d[0]-(g-1):0;v<=d[0]+(g-1);++v){if(f[0]=v,d[1]>=g&&(f[1]=d[1]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[1]=d[1]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}}return a[0]=n[0],a[1]=n[1],null},e.generateSelection=function(n,r,a,o){for(var i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=Math.floor(o),u=new Map,d=[0,0],f=s;f<=c;f++)for(var p=i;p<=l;p++){var g=[p,f],m=e.getPixelInformation(g,0,d);if(m&&m.valid){var v=Pp(m);if(u.has(v)){var h=u.get(v);h.pixelCount++,t.captureZValues&&m.zValue2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),op.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),f.a.setGetArray(e,t,["area"],4),f.a.setGet(e,t,["renderer","currentPass","openGLRenderWindow"]),f.a.setGetArray(e,t,["propColorValue"],3),f.a.event(e,t,"event"),Ap(e,t)}var Ep=function(e){for(var t=1;t0){var o=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),e.Vertex=o}n.replaceShaderNormal(e,r,a)},e.replaceShaderColor=function(e,r,a){if(t.hardwareSupport&&t.renderable.getColorArray()){var o=e.Vertex,i=e.Geometry,s=e.Fragment,l=t.lastBoundBO.getReferenceByName("lastLightComplexity"),c=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(c=c.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(c=c.concat(["varying vec4 vertexColorVSOutput;"]),o=_l.substitute(o,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,o=_l.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,i=_l.substitute(i,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,i=_l.substitute(i,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),s=_l.substitute(s,"//VTK::Color::Impl",u).result,s=_l.substitute(s,"//VTK::Color::Dec",c).result,e.Vertex=o,e.Geometry=i,e.Fragment=s}n.replaceShaderColor(e,r,a)},e.replaceShaderPositionVC=function(e,r,a){if(t.hardwareSupport){var o=e.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),e.Vertex=o}n.replaceShaderPositionVC(e,r,a)},e.replaceShaderPicking=function(e,r,a){if(t.hardwareSupport){var o=e.Fragment,i=e.Vertex;i=_l.substitute(i,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,i=_l.substitute(i,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,e.Vertex=i,o=_l.substitute(o,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,o=_l.substitute(o,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,e.Fragment=o}else n.replaceShaderPicking(e,r,a)},e.updateGlyphShaderParameters=function(n,r,a,o,i,s,l,c){var u=a.getProgram();if(n){var d=t.normalMatrix,f=s,p=9*l,g=t.tmpMat3,m=d[0],v=d[1],h=d[2],y=d[3],b=d[4],T=d[5],C=d[6],S=d[7],P=d[8],w=f[p],x=f[p+1],O=f[p+2],M=f[p+3],A=f[p+4],I=f[p+5],R=f[p+6],E=f[p+7],D=f[p+8];g[0]=w*m+x*y+O*C,g[1]=w*v+x*b+O*S,g[2]=w*h+x*T+O*P,g[3]=M*m+A*y+I*C,g[4]=M*v+A*b+I*S,g[5]=M*h+A*T+I*P,g[6]=R*m+E*y+D*C,g[7]=R*v+E*b+D*S,g[8]=R*h+E*T+D*P,u.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix("MCPCMatrix",t.tmpMat4),r&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix("MCVCMatrix",t.tmpMat4)),o){var V=o.getData();t.tmpColor[0]=V[4*l]/255,t.tmpColor[1]=V[4*l+1]/255,t.tmpColor[2]=V[4*l+2]/255,u.setUniform3fArray("ambientColorUniform",t.tmpColor),u.setUniform3fArray("diffuseColorUniform",t.tmpColor)}c&&u.setUniform3fArray("mapperIndex",c.getPropColorValue())},e.renderPieceDraw=function(n,r){var i=r.getProperty().getRepresentation(),s=t.context,l=r.getProperty().getEdgeVisibility()&&i===Np.SURFACE,c=t.openGLCamera.getKeyMatrices(n),u=t.openGLActor.getKeyMatrices();a.multiply(t.normalMatrix,c.normalMatrix,u.normalMatrix),o.multiply(t.mcpcMatrix,c.wcpc,u.mcwc),o.multiply(t.mcvcMatrix,c.wcvc,u.mcwc);var d=t.renderable.getMatrixArray(),f=t.renderable.getNormalArray(),p=t.renderable.getColorArray(),g=d.length/16,m=!1;t.openGLRenderer.getSelector()&&t.openGLRenderer.getSelector().getCurrentPass()===kp.COMPOSITE_INDEX_PASS&&(m=!0);for(var v=t.primTypes.Start;ve.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed("gMatrix")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||Lp("Error setting gMatrix in shader VAO."):e.getVAO().removeAttributeArray("gMatrix"),e.getProgram().isAttributeUsed("gNormal")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||Lp("Error setting gNormal in shader VAO."):e.getVAO().removeAttributeArray("gNormal"),e.getProgram().isAttributeUsed("gColor")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting gColor in shader VAO."):e.getVAO().removeAttributeArray("gColor"),e.getProgram().isAttributeUsed("mapperIndexVS")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting mapperIndexVS in shader VAO."):e.getVAO().removeAttributeArray("mapperIndexVS"),n.setMapperShaderParameters(e,r,a),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,a)},e.getNeedToRebuildBufferObjects=function(e,r){return t.renderable.buildArrays(),t.VBOBuildTime.getMTime()t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(a,Bp.ARRAY_BUFFER),t.normalBuffer.upload(o,Bp.ARRAY_BUFFER),i?t.colorBuffer.upload(i.getData(),Bp.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();for(var s=a.length/16,l=new Uint8Array(4*s),c=0;c2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Sf.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.normalMatrix=a.identity(new Float64Array(9)),t.mcpcMatrix=o.identity(new Float64Array(16)),t.mcvcMatrix=o.identity(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),_p(e,t)}var Wp=f.d(jp,"vtkOpenGLGlyph3DMapper");al("vtkGlyph3DMapper",Wp);var zp=ad.BufferUsage,Hp=f.a.vtkErrorMacro;var Kp={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,name:null,numberOfInstances:1};function Xp(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},f.a.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},f.a.get(e,t,["bindGroupTime"]),f.a.setGet(e,t,["device","bindGroupLayoutEntry","name","numberOfInstances","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=function(e,n){if(t._bufferEntryNames.has(e))Hp("entry named ".concat(e," already exists"));else{t._bufferEntryNames.set(e,t.bufferEntries.length);var r=gu.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gu.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r}},e.send=function(e){if(!t._buffer){var n={nativeArray:t.Float32Array,time:0,usage:zp.Storage};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=f.a.newTypedArray(e,t.arrayBuffer))},e.setValue=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);var s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=a}else Hp("entry named ".concat(n," not found in UBO"))},e.setArray=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);for(var s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT,c=0;c;\n};\n[[binding(").concat(e,"), group(").concat(n,")]] var ").concat(t.name,": [[access(read)]] ").concat(t.name,"Struct;\n")),r.join("\n")},e.getBindGroupEntry=function(){return{resource:{buffer:t._buffer.getHandle()}}},e.clearData=function(){t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var qp={newInstance:f.a.newInstance(Xp,"vtkWebGPUStorageBuffer"),extend:Xp};function Yp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qp=ad.PrimitiveTypes;function $p(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DMapper");var n=function(e){for(var t=1;t","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix"," *glyphSSBO.values[input.instanceIndex].matrix"," *vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,r){if(r.hasAttribute("normalMC")){var a=t.getShaderDescription("vertex"),o=a.getCode();o=su.substitute(o,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals"," * mapperUBO.MCWCNormals"," * glyphSSBO.values[input.instanceIndex].normal*normalMC).xyz);"]).result,a.setCode(o)}n.replaceShaderNormal(e,t,r)},e.replaceShaderColor=function(e,r,a){if(t.carray){var o=r.getShaderDescription("vertex");o.addOutput("vec4","color");var i=o.getCode();i=su.substitute(i,"//VTK::Color::Impl",[" output.color = glyphSSBO.values[input.instanceIndex].color;"]).result,o.setCode(i);var s=r.getShaderDescription("fragment");i=s.getCode(),i=su.substitute(i,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,s.setCode(i)}else n.replaceShaderColor(e,r,a)},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("vertex");r.addOutput("u32","compositeID");var a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" output.compositeID = input.instanceIndex;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Select::Impl",["var compositeID: u32 = input.compositeID;"]).result,o.setCode(a)}},e.buildPrimitives=function(){t.currentInput=t.renderable.getInputData(1),t.renderable.buildArrays();var e=t.renderable.getMatrixArray(),r=t.renderable.getNormalArray();t.carray=t.renderable.getColorArray();var a=e.length/16;if(t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){var o=t.WebGPURenderWindow.getDevice();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(a),t.SSBO.addEntry("matrix","mat4x4"),t.SSBO.addEntry("normal","mat4x4"),t.carray&&t.SSBO.addEntry("color","vec4"),t.SSBO.setAllInstancesFromArray("matrix",e),t.SSBO.setAllInstancesFromArray3x3To4x4("normal",r),t.carray&&t.SSBO.setAllInstancesFromArrayColorToFloat("color",t.carray.getData()),t.SSBO.send(o),t.glyphBOBuildTime.modified()}n.buildPrimitives();for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jp,n),zf.extend(e,t,n),t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),t.SSBO=qp.newInstance(),t.SSBO.setName("glyphSSBO"),$p(e,t);for(var r=Qp.Start;r1&&void 0!==arguments[1]?arguments[1]:{};return rg[e]&&rg[e](t)}var ig={defaultViewAPI:ng,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ig,n),f.a.obj(e,t),f.a.setGet(e,t,["interactor","numberOfLayers","views","defaultViewAPI"]),f.a.get(e,t,["neverRendered"]),f.a.getArray(e,t,["renderers"]),f.a.event(e,t,"completion"),function(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=function(n){e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=function(n){t.renderers=t.renderers.filter(function(e){return e!==n}),e.modified()},e.hasRenderer=function(e){return-1!==t.renderers.indexOf(e)},e.newAPISpecificView=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return og(e||t.defaultViewAPI,n)},e.addView=function(n){e.hasView(n)||(n.setRenderable(e),t.views.push(n),e.modified())},e.removeView=function(n){t.views=t.views.filter(function(e){return e!==n}),e.modified()},e.hasView=function(e){return-1!==t.views.indexOf(e)},e.render=function(){t.interactor?t.interactor.render():t.views.forEach(function(e){return e.traverseAllPasses()})},e.getStatistics=function(){var e={propCount:0,invisiblePropCount:0};return t.renderers.forEach(function(t){t.getViewProps().forEach(function(t){if(t.getVisibility()){e.propCount+=1;var n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){var r=n.getPrimitiveCount();Object.keys(r).forEach(function(t){e[t]||(e[t]=0),e[t]+=r[t]})}}else e.invisiblePropCount+=1})}),e.str=Object.keys(e).map(function(t){return"".concat(t,": ").concat(e[t])}).join("\n"),e},e.captureImages=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return f.a.setImmediate(e.render),t.views.map(function(e){return e.captureNextImage?e.captureNextImage(n,r):void 0}).filter(function(e){return!!e})}}(e,t)}var lg={newInstance:f.a.newInstance(sg,"vtkRenderWindow"),extend:sg,registerViewConstructor:ag,listViewAPIs:function(){return Object.keys(rg)},newAPISpecificView:og};var cg={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function ug(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cg,n),f.a.obj(e,t),f.a.get(e,t,["currentOperation"]),f.a.setGet(e,t,["delegates","currentParent","preDelegateOperations","postDelegateOperations"]),function(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=function(){return t.currentOperation},e.setCurrentOperation=function(e){t.currentOperation=e,t.currentTraverseOperation="traverse".concat(f.a.capitalize(t.currentOperation))},e.getTraverseOperation=function(){return t.currentTraverseOperation},e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t.currentParent=r,t.preDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}),t.delegates.forEach(function(t){t.traverse(n,e)}),t.postDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}))}}(e,t)}var dg={newInstance:f.a.newInstance(ug,"vtkRenderPass"),extend:ug};var fg={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,framebuffer:null,depthRequested:!1};function pg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fg,n),dg.extend(e,t,n),f.a.get(e,t,["framebuffer"]),function(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.deleted){t.currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);for(var a=n.getRenderable().getNumberOfLayers(),o=n.getChildren(),i=0;i0&&t.volumeCount>0||t.depthRequested){var u=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=Ac.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();var d=t.framebuffer.getSize();null!==d&&d[0]===u[0]&&d[1]===u[1]||(t.framebuffer.create(u[0],u[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("opaqueZBufferPass"),l.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),l.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),l.traverse(e)),t.translucentActorCount>0&&(e.setCurrentOperation("translucentPass"),l.traverse(e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),l.traverse(e))}}}},e.getZBufferTexture=function(){return t.framebuffer?t.framebuffer.getColorTexture():null},e.requestDepth=function(){t.depthRequested=!0},e.incrementOpaqueActorCount=function(){return t.opaqueActorCount++},e.incrementTranslucentActorCount=function(){return t.translucentActorCount++},e.incrementVolumeCount=function(){return t.volumeCount++}}(e,t)}var gg={newInstance:f.a.newInstance(pg,"vtkForwardPass"),extend:pg},mg=n(12),vg=n.n(mg),hg=["lastShaderBound","context","openGLRenderWindow"];var yg={lastShaderBound:null,shaderPrograms:null,context:null,openGLRenderWindow:null};function bg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yg,n),t.shaderPrograms={},f.a.obj(e,t),f.a.setGet(e,t,hg),function(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=function(e,n,r){var a=n;r.length>0&&(a=_l.substitute(a,"VSOut","GSOut").result);var o=t.openGLRenderWindow.getWebgl2(),i="\n",s="#version 100\n";o?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),a=_l.substitute(a,"//VTK::System::Dec",["".concat(s,"\n"),o?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;var l=_l.substitute(e,"//VTK::System::Dec",["".concat(s,"\n"),"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;return o&&(l=_l.substitute(l,"varying","out").result,a=_l.substitute(a,"varying","in").result,a=_l.substitute(a,"gl_FragData\\[0\\]","fragOutput0").result,a=_l.substitute(a,"//VTK::Output::Dec","layout(location = 0) out vec4 fragOutput0;").result),{VSSource:l,FSSource:a,GSSource:_l.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=function(t,n,r){var a=e.replaceShaderValues(t,n,r),o=e.getShaderProgram(a.VSSource,a.FSSource,a.GSSource);return e.readyShaderProgram(o)},e.readyShaderProgram=function(t){return t&&(t.getCompiled()||t.compileShader())&&e.bindShader(t)?t:null},e.getShaderProgram=function(e,n,r){var a="".concat(e).concat(n).concat(r),o=vg()(a);if(-1===Object.keys(t.shaderPrograms).indexOf(o)){var i=_l.newInstance();return i.setContext(t.context),i.getVertexShader().setSource(e),i.getFragmentShader().setSource(n),r&&i.getGeometryShader().setSource(r),i.setMd5Hash(o),t.shaderPrograms[o]=i,i}return t.shaderPrograms[o]},e.releaseGraphicsResources=function(n){e.releaseCurrentShader(),Object.keys(t.shaderPrograms).map(function(e){return t.shaderPrograms[e]}).forEach(function(e){return e.releaseGraphicsResources(n)})},e.releaseGraphicsResources=function(){t.astShaderBound&&(t.lastShaderBound.release(),t.lastShaderBound=null)},e.bindShader=function(e){return t.lastShaderBound===e?1:(t.lastShaderBound&&t.lastShaderBound.release(),e.bind(),t.lastShaderBound=e,1)}}(e,t)}var Tg={newInstance:f.a.newInstance(bg,"vtkShaderCache"),extend:bg};var Cg={size:void 0,selector:void 0};function Sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cg,n),t.size||(t.size=[300,300]),f.a.getArray(e,t,["size"],2),f.a.get(e,t,["selector"]),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=function(){return null},e.getAspectRatio=function(){return t.size[0]/t.size[1]},e.getAspectRatioForRenderer=function(e){var n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=function(t,n,r){var a=r.getViewportByReference(),o=e.getFramebufferSize();return a[0]*o[0]<=t&&a[2]*o[0]>=t&&a[1]*o[1]<=n&&a[3]*o[1]>=n},e.getViewportSize=function(t){var n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=function(t){var n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t/a[0],n/a[1],r]},e.normalizedDisplayToDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t*a[0],n*a[1],r]},e.worldToView=function(e,t,n,r){return r.worldToView(e,t,n)},e.viewToWorld=function(e,t,n,r){return r.viewToWorld(e,t,n)},e.worldToDisplay=function(t,n,r,a){var o=a.worldToView(t,n,r),i=e.getViewportSize(a),s=a.viewToProjection(o[0],o[1],o[2],i[0]/i[1]),l=a.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=function(t,n,r,a){var o=e.displayToNormalizedDisplay(t,n,r),i=a.normalizedDisplayToProjection(o[0],o[1],o[2]),s=e.getViewportSize(a),l=a.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return a.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=function(t,n,r,a){var o=a.getViewportByReference();o=e.normalizedDisplayToDisplay(o[0],o[1],0);var i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-o[0]-.5,i[1]-o[1]-.5,r]},e.viewportToNormalizedViewport=function(t,n,r,a){var o=e.getViewportSize(a);return o&&0!==o[0]&&0!==o[1]?[t/(o[0]-1),n/(o[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=function(t,n,r){var a=e.getFramebufferSize();return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=function(t,n,r){return[t,e.getFramebufferSize()[1]-n-1,r]},e.viewportToNormalizedDisplay=function(t,n,r,a){var o=a.getViewportByReference(),i=t+(o=e.normalizedDisplayToDisplay(o[0],o[1],0))[0]+.5,s=n+o[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getPixelData=function(e,t,n,r){f.a.vtkErrorMacro("not implemented")}}(e,t)}var Pg={newInstance:f.a.newInstance(Sg,"vtkRenderWindowViewNode"),extend:Sg},wg=f.a.vtkErrorMacro;var xg={context:null,numberOfTextureUnits:0,textureUnits:0};function Og(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xg,n),f.a.obj(e,t),t.textureUnits=[],f.a.get(e,t,["numberOfTextureUnits"]),f.a.setGet(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=function(){for(var e=0;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0},r=null,a="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&a&&(r=t.canvas.getContext("webgl2",n))&&(t.webgl2=!0,Dg("using webgl2")),r||(Dg("using webgl1"),r=t.canvas.getContext("webgl",n)||t.canvas.getContext("experimental-webgl",n)),navigator.getVRDisplays&&navigator.getVRDisplays().then(function(n){n.length>0&&(t.vrDisplay=n[0],t.vrDisplay.depthNear=.01,t.vrDisplay.depthFar=100,e.invokeHaveVRDisplay())}),t.canvas.addEventListener("webglcontextlost",function(e){e.preventDefault()},!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1),r},e.startVR=function(){t.oldCanvasSize=t.size.slice(),t.vrDisplay.capabilities.canPresent?t.vrDisplay.requestPresent([{source:t.canvas}]).then(function(){if(t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&t.hideCanvasInVR&&(t.el.style.display="none"),t.queryVRSize){var n=t.vrDisplay.getEyeParameters("left"),r=t.vrDisplay.getEyeParameters("right"),a=Math.floor(n.renderWidth+r.renderWidth),o=Math.floor(Math.max(n.renderHeight,r.renderHeight));e.setSize(a,o)}else e.setSize(t.vrResolution);t.renderable.getRenderers()[0].resetCamera(),t.vrFrameData=new VRFrameData,t.renderable.getInteractor().switchToVRAnimation(),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),Lg&&(t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender))}).catch(function(){console.error("failed to requestPresent")}):Vg("vrDisplay is not connected")},e.stopVR=function(){t.renderable.getInteractor().returnFromVRAnimation(),t.vrDisplay.exitPresent(),t.vrDisplay.cancelAnimationFrame(t.vrSceneFrame),e.setSize.apply(e,Ig(t.oldCanvasSize)),t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&(t.el.style.display="block");var n=t.renderable.getRenderers()[0];n.getActiveCamera().setProjectionMatrix(null),n.setViewport(0,0,1,1),e.traverseAllPasses()},e.vrRender=function(){if(t.vrDisplay.isPresenting){t.renderable.getInteractor().updateGamepads(t.vrDisplay.displayId),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),t.vrDisplay.getFrameData(t.vrFrameData);var n=t.renderable.getRenderers()[0];n.setViewport(0,0,.5,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.leftViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.leftProjectionMatrix),e.traverseAllPasses(),n.setViewport(.5,0,1,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.rightViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.rightProjectionMatrix),e.traverseAllPasses(),t.vrDisplay.submitFrame()}},e.restoreContext=function(){var t=dg.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=function(n){var r=t._textureResourceIds.get(n);if(void 0===r){var a=e.getTextureUnitManager().allocate();a<0?Vg("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,a),t.context.activeTexture(t.context.TEXTURE0+a))}else t.context.activeTexture(t.context.TEXTURE0+r)},e.deactivateTexture=function(n){var r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=function(e){var n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureInternalFormat=function(e,n,r){if(t.webgl2)switch(e){case u.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;case 4:default:return t.context.RGBA8}default:case u.FLOAT:switch(n){case 1:return t.context.R16F;case 2:return t.context.RG16F;case 3:return t.context.RGB16F;case 4:default:return t.context.RGBA16F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:default:return t.context.RGBA}},e.setBackgroundImage=function(e){t.bgImage.src=e.src},e.setUseBackgroundImage=function(e){t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.resetCamera,o=void 0!==a&&a,i=r.size,s=void 0===i?null:i,l=r.scale,c=void 0===l?1:l;if(t.deleted)return null;t.imageFormat=n;var u=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:s||1!==c?s||t.size.map(function(e){return e*c}):null},new Promise(function(n,r){var a=e.onImageReady(function(r){if(null===t._screenshot.size)t.notifyStartCaptureImage=u,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach(function(e){return(0,e.restoreParamsFn)(e.arg)}),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(r);else{var i=document.createElement("img");i.style=Ng,i.src=r,t._screenshot.placeHolder=t.el.appendChild(i),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),o&&(t._screenshot.cameras=t.renderable.getRenderers().map(function(e){var t=e.getActiveCamera(),n=t.get("focalPoint","position","parallelScale");return{resetCameraFn:e.resetCamera,restoreParamsFn:t.set,arg:JSON.parse(JSON.stringify(n))}}),t._screenshot.cameras.forEach(function(e){return(0,e.resetCameraFn)()})),e.traverseAllPasses()}})})},e.getGLInformations=function(){for(var n=e.get3DContext(),r=n.getExtension("OES_texture_float"),a=n.getExtension("OES_texture_half_float"),o=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&Bg(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[a&&Bg(n,n.RGBA,a.HALF_FLOAT_OES)?"RGBA":"",a&&Bg(n,n.RGB,a.HALF_FLOAT_OES)?"RGB":"",a&&Bg(n,n.LUMINANCE,a.HALF_FLOAT_OES)?"LUMINANCE":"",a&&Bg(n,n.ALPHA,a.HALF_FLOAT_OES)?"ALPHA":"",a&&Bg(n,n.LUMINANCE_ALPHA,a.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&Bg(n,n.RGB,n.FLOAT)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",o&&n.getParameter(o.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",o&&n.getParameter(o.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};l.length;){var u=Ag(l.pop(),3),d=u[0],f=u[1],p=u[2];f&&(c[f]={label:d,value:p})}return c},e.traverseAllPasses=function(){if(t.renderPasses)for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat,r=document.createElement("canvas"),a=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,a.drawImage(t.canvas,0,0);var o=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach(function(e){e.getViewProps().forEach(function(e){if(e.getContainer)for(var t=e.getContainer().getElementsByTagName("canvas"),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Pg.extend(e,t,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",kg++,Fg.forEach(function(e){return e(kg)}),t.selector||(t.selector=Ep.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t.myFactory=sl.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",Wg),t.shaderCache=Tg.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=gg.newInstance(),f.a.event(e,t,"imageReady"),f.a.event(e,t,"haveVRDisplay"),f.a.get(e,t,["shaderCache","textureUnitManager","webgl2","vrDisplay","useBackgroundImage"]),f.a.setGet(e,t,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","queryVRSize","hideCanvasInVR","useOffScreen","activeFramebuffer"]),f.a.setGetArray(e,t,["size","vrResolution"],2),_g(e,t)}var Wg=f.a.newInstance(jg,"vtkOpenGLRenderWindow");ag("WebGL",Wg);var zg={newInstance:Wg,extend:jg,pushMonitorGLContextCount:function(e){Fg.push(e)},popMonitorGLContextCount:function(e){return Fg.pop()}};function Hg(e){return function(e){if(Array.isArray(e))return Kg(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kg(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qg,n),f.a.obj(e,t),f.a.get(e,t,["distance"]),f.a.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),f.a.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),f.a.setGetArray(e,t,["clippingRange","windowCenter"],2),f.a.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),function(e,t){t.classHierarchy.push("vtkCamera");var n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),c=o.identity(new Float64Array(16)),u=new Float64Array(3),d=new Float64Array(3),f=new Float64Array(3),p=o.identity(new Float64Array(16)),g=o.identity(new Float64Array(16)),m=new Float64Array(3),v=new Float64Array(3);function h(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=function(){var n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=function(n,r,a){n===t.position[0]&&r===t.position[1]&&a===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=a,e.computeDistance(),e.modified())},e.setFocalPoint=function(n,r,a){n===t.focalPoint[0]&&r===t.focalPoint[1]&&a===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=a,e.computeDistance(),e.modified())},e.setDistance=function(n){if(t.distance!==n){t.distance=n,t.distance<1e-20&&(t.distance=1e-20,Xg("Distance is set to minimum."));var r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()}},e.computeDistance=function(){var e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,Xg("Distance is set to minimum.");var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,h()},e.dolly=function(n){if(!(n<=0)){var r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])}},e.roll=function(n){var r=t.position,a=t.focalPoint,i=t.viewUp,l=new Float64Array([i[0],i[1],i[2],0]);o.identity(p);var c=new Float64Array([a[0]-r[0],a[1]-r[1],a[2]-r[2]]);o.rotate(p,p,x(n),c),s.transformMat4(l,l,p),t.viewUp[0]=l[0],t.viewUp[1]=l[1],t.viewUp[2]=l[2],e.modified()},e.azimuth=function(n){var r=t.focalPoint;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.yaw=function(n){var r=t.position;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint(v[0],v[1],v[2])},e.elevation=function(n){var r=t.focalPoint,a=e.getViewMatrix(),s=[-a[0],-a[1],-a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.pitch=function(n){var r=t.position,a=e.getViewMatrix(),s=[a[0],a[1],a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint.apply(e,Hg(v))},e.zoom=function(n){n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=function(n,r,a){var o=[n,r,a];F(t.position,o,t.position),F(t.focalPoint,o,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=function(n){var r=[].concat(Hg(t.viewUp),[1]),a=[],o=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],s.transformMat4(a,[].concat(Hg(t.position),[1]),n),s.transformMat4(o,[].concat(Hg(t.focalPoint),[1]),n),s.transformMat4(i,r,n),i[0]-=a[0],i[1]-=a[1],i[2]-=a[2],e.setPosition.apply(e,Hg(a.slice(0,3))),e.setFocalPoint.apply(e,Hg(o.slice(0,3))),e.setViewUp.apply(e,Hg(i.slice(0,3)))},e.getThickness=function(){return t.clippingRange[1]-t.clippingRange[0]},e.setThickness=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=function(e){},e.getRoll=function(){},e.setObliqueAngles=function(e,t){},e.getOrientation=function(){},e.getOrientationWXYZ=function(){},e.getFrustumPlanes=function(e){},e.getCameraLightTransformMatrix=function(){},e.deepCopy=function(e){},e.physicalOrientationToWorldDirection=function(e){var t=l.fromValues(e[0],e[1],e[2],e[3]),n=l.create(),r=l.fromValues(0,0,1,0);return l.conjugate(n,t),l.multiply(r,t,r),l.multiply(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=function(t){e.getWorldToPhysicalMatrix(t),o.invert(t,t)},e.getWorldToPhysicalMatrix=function(e){o.identity(e);var n=[3];z(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],o.transpose(e,e),i.set(u,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),o.scale(e,e,u),o.translate(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=function(s){o.invert(c,s),i.transformMat4(u,n,c),e.computeDistance();var l=t.distance;e.setPosition(u[0],u[1],u[2]),i.transformMat4(d,r,c),i.subtract(d,d,u),i.normalize(d,d),e.setDirectionOfProjection(d[0],d[1],d[2]),i.transformMat4(f,a,c),i.subtract(f,f,u),i.normalize(f,f),e.setViewUp(f[0],f[1],f[2]),e.setDistance(l)},e.computeViewParametersFromPhysicalMatrix=function(t){e.getWorldToPhysicalMatrix(c),o.multiply(c,t,c),e.computeViewParametersFromViewMatrix(c)},e.setViewMatrix=function(n){t.viewMatrix=n,t.viewMatrix&&(o.copy(c,t.viewMatrix),e.computeViewParametersFromViewMatrix(c),o.transpose(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=function(){if(t.viewMatrix)return t.viewMatrix;o.lookAt(c,t.position,t.focalPoint,t.viewUp),o.transpose(c,c);var e=new Float64Array(16);return o.copy(e,c),e},e.setProjectionMatrix=function(e){t.projectionMatrix=e},e.getProjectionMatrix=function(e,n,r){var a=new Float64Array(16);if(o.identity(a),t.projectionMatrix){var s=1/t.physicalScale;return i.set(u,s,s,s),o.copy(a,t.projectionMatrix),o.scale(a,a,u),o.transpose(a,a),a}o.identity(c);var l=t.clippingRange[1]-t.clippingRange[0],d=[t.clippingRange[0]+(n+1)*l/2,t.clippingRange[0]+(r+1)*l/2];if(t.parallelProjection){var f=t.parallelScale*e,p=t.parallelScale,g=(t.windowCenter[0]-1)*f,m=(t.windowCenter[0]+1)*f,v=(t.windowCenter[1]-1)*p,h=(t.windowCenter[1]+1)*p;o.ortho(c,g,m,v,h,d[0],d[1]),o.transpose(c,c)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");var y,b,T=Math.tan(x(t.viewAngle)/2);!0===t.useHorizontalViewAngle?(y=t.clippingRange[0]*T,b=t.clippingRange[0]*T/e):(y=t.clippingRange[0]*T*e,b=t.clippingRange[0]*T);var C=(t.windowCenter[0]-1)*y,S=(t.windowCenter[0]+1)*y,P=(t.windowCenter[1]-1)*b,w=(t.windowCenter[1]+1)*b,O=d[0],M=d[1];c[0]=2*O/(S-C),c[5]=2*O/(w-P),c[2]=(C+S)/(S-C),c[6]=(P+w)/(w-P),c[10]=-(O+M)/(M-O),c[14]=-1,c[11]=-2*O*M/(M-O),c[15]=0}return o.copy(a,c),a},e.getCompositeProjectionMatrix=function(t,n,r){var a=e.getViewMatrix(),i=e.getProjectionMatrix(t,n,r);return o.multiply(i,a,i),i},e.setDirectionOfProjection=function(e,n,r){if(t.directionOfProjection[0]!==e||t.directionOfProjection[1]!==n||t.directionOfProjection[2]!==r){t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance,h()}},e.setDeviceAngles=function(n,r,a,s){var l=[3];z(t.physicalViewNorth,t.physicalViewUp,l);var c=o.identity(new Float64Array(16));o.rotate(c,c,x(n),t.physicalViewUp),o.rotate(c,c,x(r),l),o.rotate(c,c,x(a),t.physicalViewNorth),o.rotate(c,c,x(-s),t.physicalViewUp);var u=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),d=new Float64Array(t.physicalViewNorth);i.transformMat4(u,u,c),i.transformMat4(d,d,c),e.setDirectionOfProjection(u[0],u[1],u[2]),e.setViewUp(d[0],d[1],d[2]),e.modified()},e.setOrientationWXYZ=function(t,n,r,a){var s=o.identity(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==a)){var c=x(t),u=l.create();l.setAxisAngle(u,[n,r,a],c),o.fromQuat(s,u)}var d=new Float64Array(3);i.transformMat4(d,[0,0,-1],s);var f=new Float64Array(3);i.transformMat4(f,[0,1,0],s),e.setDirectionOfProjection.apply(e,Hg(d)),e.setViewUp.apply(e,Hg(f)),e.modified()},e.computeClippingRange=function(e){var n,r;n=t.viewPlaneNormal,r=t.position;for(var a=-n[0],o=-n[1],i=-n[2],s=-(a*r[0]+o*r[1]+i*r[2]),l=[a*e[0]+o*e[2]+i*e[4]+s,1e-18],c=0;c<2;c++)for(var u=0;u<2;u++)for(var d=0;d<2;d++){var f=a*e[d]+o*e[2+u]+i*e[4+c]+s;l[0]=fl[1]?f:l[1]}return l}}(e,t)}var Zg={newInstance:f.a.newInstance(Yg,"vtkCamera"),extend:Yg};var Qg={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function $g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qg,n),f.a.obj(e,t),f.a.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","transformMatrix","lightType","shadowAttenuation"]),f.a.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),function(e,t){t.classHierarchy.push("vtkLight"),e.getTransformedPosition=function(){return t.transformMatrix?[]:[].concat(t.position)},e.getTransformedFocalPoint=function(){return t.transformMatrix?[]:[].concat(t.focalPoint)},e.getDirection=function(){return t.directionMTime1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);var r=e.getNestedProps();if(r&&r.length)for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nm,n),f.a.obj(e,t),f.a.event(e,t,"event"),f.a.setGetArray(e,t,["viewport"],4),f.a.setGetArray(e,t,["background","background2"],3),tm(e,t)}var am={newInstance:f.a.newInstance(rm,"vtkViewport"),extend:rm},om=f.k,im=f.l,sm=f.m;function lm(e){return function(){return im("vtkRenderer::".concat(e," - NOT IMPLEMENTED"))}}var cm={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,createdLight:null,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:Ne(),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,pass:0};function um(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cm,n),am.extend(e,t,n),f.b(e,t,["renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),f.i(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","useShadows","pass"]),f.c(e,t,["actors","volumes","lights"]),f.j(e,t,["background"],4,1),function(e,t){for(t.classHierarchy.push("vtkRenderer"),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1);var n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},a={type:"ResetCameraEvent",renderer:e};e.updateCamera=function(){return t.activeCamera||(om("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0},e.updateLightsGeometryToFollowCamera=function(){var n=e.getActiveCameraAndResetIfCreated();t.lights.forEach(function(e){e.lightTypeIsSceneLight()||e.lightTypeIsCameraLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):im("light has unknown light type",e.get()))})},e.updateLightGeometry=function(){return!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera()},e.allocateTime=lm("allocateTime"),e.updateGeometry=lm("updateGeometry"),e.getVTKWindow=function(){return t.renderWindow},e.setLayer=function(n){om(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=function(n){return t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0)},e.makeCamera=function(){var t=Zg.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=function(){return t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera},e.getActiveCameraAndResetIfCreated=function(){return t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera},e.getActors=function(){return t.actors=[],t.props.forEach(function(e){t.actors=t.actors.concat(e.getActors())}),t.actors},e.addActor=e.addViewProp,e.removeActor=function(n){t.actors=t.actors.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllActors=function(){e.getActors().forEach(function(t){e.removeViewProp(t)}),t.actors=[],e.modified()},e.getVolumes=function(){return t.volumes=[],t.props.forEach(function(e){t.volumes=t.volumes.concat(e.getVolumes())}),t.volumes},e.addVolume=e.addViewProp,e.removeVolume=function(n){t.volumes=t.volumes.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllVolumes=function(){e.getVolumes().forEach(function(t){e.removeViewProp(t)}),t.volumes=[],e.modified()},e.addLight=function(n){t.lights=[].concat(t.lights,n),e.modified()},e.removeLight=function(n){t.lights=t.lights.filter(function(e){return e!==n}),e.modified()},e.removeAllLights=function(){t.lights=[],e.modified()},e.setLightCollection=function(n){t.lights=n,e.modified()},e.makeLight=Jg.newInstance,e.createLight=function(){t.automaticLightCreation&&(t.createdLight&&(e.removeLight(t.createdLight),t.createdLight.delete(),t.createdLight=null),t.createdLight=e.makeLight(),e.addLight(t.createdLight),t.createdLight.setLightTypeToHeadLight(),t.createdLight.setPosition(e.getActiveCamera().getPosition()),t.createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=function(t,n,r,a){var o=e.normalizedDisplayToProjection(t,n,r);return o=e.projectionToView(o[0],o[1],o[2],a),e.viewToWorld(o[0],o[1],o[2])},e.worldToNormalizedDisplay=function(t,n,r,a){var o=e.worldToView(t,n,r);return o=e.viewToProjection(o[0],o[1],o[2],a),e.projectionToNormalizedDisplay(o[0],o[1],o[2])},e.viewToWorld=function(e,n,r){if(null===t.activeCamera)return im("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.invert(a,a),o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.projectionToView=function(e,n,r,a){if(null===t.activeCamera)return im("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.invert(s,s),o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.worldToView=function(e,n,r){if(null===t.activeCamera)return im("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.viewToProjection=function(e,n,r,a){if(null===t.activeCamera)return im("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.computeVisiblePropBounds=function(){t.allBounds[0]=Jt.INIT_BOUNDS[0],t.allBounds[1]=Jt.INIT_BOUNDS[1],t.allBounds[2]=Jt.INIT_BOUNDS[2],t.allBounds[3]=Jt.INIT_BOUNDS[3],t.allBounds[4]=Jt.INIT_BOUNDS[4],t.allBounds[5]=Jt.INIT_BOUNDS[5];var r=!0;e.invokeEvent(n);for(var a=0;at.allBounds[1]&&(t.allBounds[1]=i[1]),i[2]t.allBounds[3]&&(t.allBounds[3]=i[3]),i[4]t.allBounds[5]&&(t.allBounds[5]=i[5]))}}return r&&(we(t.allBounds),om("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds(),r=[0,0,0];if(!xe(n))return om("Cannot reset camera!"),!1;var o=null;if(!e.getActiveCamera())return im("Trying to reset non-existent camera"),!1;o=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),r[0]=(n[0]+n[1])/2,r[1]=(n[2]+n[3])/2,r[2]=(n[4]+n[5])/2;var i=n[1]-n[0],s=n[3]-n[2],l=n[5]-n[4],c=(i*=i)+(s*=s)+(l*=l);c=0===c?1:c,c=.5*Math.sqrt(c);var u=x(t.activeCamera.getViewAngle()),d=c,f=c/Math.sin(.5*u),p=t.activeCamera.getViewUp();return Math.abs(W(p,o))>.999&&(sm("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-p[2],p[0],p[1])),t.activeCamera.setFocalPoint(r[0],r[1],r[2]),t.activeCamera.setPosition(r[0]+f*o[0],r[1]+f*o[1],r[2]+f*o[2]),e.resetCameraClippingRange(n),t.activeCamera.setParallelScale(d),t.activeCamera.setPhysicalScale(c),t.activeCamera.setPhysicalTranslation(-r[0],-r[1],-r[2]),e.invokeEvent(a),!0},e.resetCameraClippingRange=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds();if(!xe(n))return om("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return im("Trying to reset clipping range of non-existent camera"),!1;var a=t.activeCamera.computeClippingRange(n),o=0;if(t.activeCamera.getParallelProjection())o=.1*t.activeCamera.getParallelScale();else{var i=x(t.activeCamera.getViewAngle());o=.2*Math.tan(i/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]e&&(e=n);var r=t.createdLight?t.createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=function(){return!!t.preserveColorBuffer},e.isActiveCameraCreated=function(){return!!t.activeCamera}}(e,t)}var dm={newInstance:f.d(um,"vtkRenderer"),extend:um},fm={Unknown:0,LeftController:1,RightController:2},pm={Unknown:0,Trigger:1,TrackPad:2,Grip:3,ApplicationMenu:4},gm={Device:fm,Input:pm};function mm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vm(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mm,n),f.a.obj(e,t),f.a.event(e,t,"RenderEvent"),xm.forEach(function(n){return f.a.event(e,t,n)}),f.a.get(e,t,["initialized","container","interactorStyle","lastFrameTime","view"]),f.a.setGet(e,t,["lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker"]),function(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");var n=new Set,r=0;function a(n,r){t.currentRenderer=e.findPokedRenderer(n,r)}function o(e){var n=t.container.getBoundingClientRect(),r=t.view.getCanvas(),o=r.width/n.width,i=r.height/n.height,s={x:o*(e.clientX-n.left),y:i*(n.height-e.clientY+n.top),z:0};return a(s.x,s.y),s}function i(e){for(var t={},n=0;n1&&void 0!==arguments[1]&&arguments[1],o=document,i=n?"addEventListener":"removeEventListener",s=n?"removeEventListener":"addEventListener";!a&&!n&&r>0&&--r,r&&!a||(r=0,t.container&&t.container[s]("mousemove",e.handleMouseMove),o[i]("mouseup",e.handleMouseUp),o[i]("mousemove",e.handleMouseMove),o[i]("touchend",e.handleTouchEnd,!1),o[i]("touchcancel",e.handleTouchEnd,!1),o[i]("touchmove",e.handleTouchMove,!1)),!a&&n&&++r}function u(){t.view&&t.enabled&&t.enableRender&&(t.inRender=!0,t.view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.start=function(){(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=function(e){Cm("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=function(n){t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=function(){t.initialized=!0,e.enable(),e.render()},e.enable=function(){return e.setEnabled(!0)},e.disable=function(){return e.setEnabled(!1)},e.startEventLoop=function(){return Tm("empty event loop")},e.getCurrentRenderer=function(){return t.currentRenderer?t.currentRenderer:(a(0,0),t.currentRenderer)},e.bindEvents=function(n){t.container=n,n.addEventListener("contextmenu",Om),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("mouseenter",e.handleMouseEnter),n.addEventListener("mouseleave",e.handleMouseLeave),n.addEventListener("mousemove",e.handleMouseMove),n.addEventListener("mousedown",e.handleMouseDown),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.addEventListener("touchstart",e.handleTouchStart,!1)},e.unbindEvents=function(){c(!1,!0),t.container.removeEventListener("contextmenu",Om),t.container.removeEventListener("wheel",e.handleWheel),t.container.removeEventListener("DOMMouseScroll",e.handleWheel),t.container.removeEventListener("mouseenter",e.handleMouseEnter),t.container.removeEventListener("mouseleave",e.handleMouseLeave),t.container.removeEventListener("mousemove",e.handleMouseMove),t.container.removeEventListener("mousedown",e.handleMouseDown),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),t.container.removeEventListener("touchstart",e.handleTouchStart),t.container=null},e.handleKeyPress=function(t){var n=l(t);e.keyPressEvent(n)},e.handleKeyDown=function(t){var n=l(t);e.keyDownEvent(n)},e.handleKeyUp=function(t){var n=l(t);e.keyUpEvent(n)},e.handleMouseDown=function(t){if(!(t.button>2)){c(!0),t.stopPropagation(),t.preventDefault();var n=vm(vm({},s(t)),{},{position:o(t)});switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Cm("Unknown mouse button pressed: ".concat(t.button))}}},e.requestPointerLock=function(){e.getView().getCanvas().requestPointerLock()},e.exitPointerLock=function(){return document.exitPointerLock()},e.isPointerLocked=function(){return!!document.pointerLockElement},e.handlePointerLockChange=function(){e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=function(r){void 0!==r?n.has(r)?Tm("requester is already registered for animating"):(n.add(r),1===n.size&&(t.lastFrameTime=.1,t.lastFrameStart=Date.now(),t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Cm("undefined requester, can not start animating")},e.isAnimating=function(){return t.vrAnimation||null!==t.animationRequest},e.cancelAnimation=function(r){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.has(r))n.delete(r),t.animationRequest&&0===n.size&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!a){var o=r&&r.getClassName?r.getClassName():r;Tm("".concat(o," did not request an animation"))}},e.switchToVRAnimation=function(){t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.vrAnimation=!0},e.returnFromVRAnimation=function(){t.vrAnimation=!1,0!==n.size&&(t.FrameTime=-1,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateGamepads=function(n){for(var r=navigator.getGamepads(),a=0;a1){var r=i(n.touches);if(2===n.touches.length){var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(a)}e.recognizeGesture("TouchStart",r)}else{var s={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(s)}},e.handleTouchMove=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures&&n.touches.length>1){var r=i(n.touches);e.recognizeGesture("TouchMove",r)}else{var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.mouseMoveEvent(a)}},e.handleTouchEnd=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures)if(0===n.touches.length)if(1===n.changedTouches.length){var r={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(r),c(!1)}else{var a=i(n.changedTouches);e.recognizeGesture("TouchEnd",a),c(!1)}else if(1===n.touches.length){var s=i(n.changedTouches);e.recognizeGesture("TouchEnd",s);var l={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(l)}else{var u=i(n.touches);e.recognizeGesture("TouchMove",u)}else{var d={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(d),c(!1)}},e.setView=function(n){t.view!==n&&(t.view=n,t.view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=function(){return t.view.getRenderable().getRenderersByReference()[0]},e.findPokedRenderer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t.view)return null;var r=t.view.getRenderable().getRenderers();r.sort(function(e,t){return e.getLayer()-t.getLayer()});for(var a=null,o=null,i=null,s=r.length;s--;){var l=r[s];if(t.view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===a&&l.getInteractive()&&(a=l),null===o&&t.view.isInViewport(e,n,l)&&(o=l)}return null===i&&(i=a),null===i&&(i=o),null==i&&(i=r[0]),i},e.render=function(){null!==t.animationRequest||t.inRender||u()},xm.forEach(function(n){var r=n.charAt(0).toLowerCase()+n.slice(1);e["".concat(r,"Event")]=function(r){if(t.enabled)if(e.getCurrentRenderer()){var a=vm({type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer()},r);e["invoke".concat(n)](a)}else Pm("\n Can not forward events without a current renderer on the interactor.\n ")}}),e.recognizeGesture=function(n,r){if(!(Object.keys(r).length>2)){if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach(function(e){t.startingEventPositions[e]=r[e]}),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});var a=0,o=[],i=[];Object.keys(r).forEach(function(e){o[a]=r[e],i[a]=t.startingEventPositions[e],a++});var s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((o[0].x-o[1].x)*(o[0].x-o[1].x)+(o[0].y-o[1].y)*(o[0].y-o[1].y)),c=O(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=O(Math.atan2(o[1].y-o[0].y,o[1].x-o[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)p&&g>m&&g>v){t.currentGesture="Pinch";var h={scale:1,touches:r};e.startPinchEvent(h)}else if(m>p&&m>v){t.currentGesture="Rotate";var y={rotation:0,touches:r};e.startRotateEvent(y)}else if(v>p){t.currentGesture="Pan";var b={translation:[0,0],touches:r};e.startPanEvent(b)}}else{if("Rotate"===t.currentGesture){var T={rotation:d,touches:r};e.rotateEvent(T)}if("Pinch"===t.currentGesture){var C={scale:l/s,touches:r};e.pinchEvent(C)}if("Pan"===t.currentGesture){var S={translation:f,touches:r};e.panEvent(S)}}}},e.handleVisibilityChange=function(){t.lastFrameStart=Date.now()};var d=e.delete;e.delete=function(){for(;n.size;)e.cancelAnimation(n.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),d()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}(e,t)}var Im=vm({newInstance:f.a.newInstance(Am,"vtkRenderWindowInteractor"),extend:Am,handledEvents:xm},gm);function Rm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Em(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bm,n),f.a.obj(e,t),f.a.event(e,t,"InteractionEvent"),f.a.event(e,t,"StartInteractionEvent"),f.a.event(e,t,"EndInteractionEvent"),f.a.get(e,t,["interactor","enabled"]),f.a.setGet(e,t,["priority","processEvents"]),function(e,t){t.classHierarchy.push("vtkInteractorObserver");var n=Em({},e);function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function a(){Im.handledEvents.forEach(function(n){e["handle".concat(n)]&&t.subscribedEvents.push(t.interactor["on".concat(n)](function(r){return t.processEvents?e["handle".concat(n)](r):Lm},t.priority))})}e.setInteractor=function(n){n!==t.interactor&&(r(),t.interactor=n,n&&t.enabled&&a(),e.modified())},e.setEnabled=function(n){n!==t.enabled&&(r(),n&&(t.interactor?a():Vm("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=function(e,n,r,a){return e?t.interactor.getView().displayToWorld(n,r,a,e):null},e.computeWorldToDisplay=function(e,n,r,a){return e?t.interactor.getView().worldToDisplay(n,r,a,e):null},e.setPriority=function(e){n.setPriority(e)&&t.interactor&&(r(),a())}}(e,t)}var Fm=Em({newInstance:f.a.newInstance(km,"vtkInteractorObserver"),extend:km},Nm),Gm={States:{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}};function _m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Um(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jm=Gm.States,Wm={Rotate:jm.IS_ROTATE,Pan:jm.IS_PAN,Spin:jm.IS_SPIN,Dolly:jm.IS_DOLLY,CameraPose:jm.IS_CAMERA_POSE,WindowLevel:jm.IS_WINDOW_LEVEL,Slice:jm.IS_SLICE};var zm={state:jm.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Hm(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zm,n),Fm.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wm).forEach(function(n){f.a.event(e,t,"Start".concat(n,"Event")),e["start".concat(n)]=function(){t.state===jm.IS_NONE&&(t.state=Wm[n],t.interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e["invokeStart".concat(n,"Event")]({type:"Start".concat(n,"Event")}))},f.a.event(e,t,"End".concat(n,"Event")),e["end".concat(n)]=function(){t.state===Wm[n]&&(t.state=jm.IS_NONE,t.interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e["invokeEnd".concat(n,"Event")]({type:"End".concat(n,"Event")}),t.interactor.render())}}),e.handleKeyPress=function(e){var n=t.interactor;switch(e.key){case"r":case"R":e.pokedRenderer.resetCamera(),n.render();break;case"w":case"W":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()}),n.render();break;case"s":case"S":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()}),n.render();break;case"v":case"V":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()}),n.render()}}}(e,t)}var Km=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Km.extend(e,t,n),f.a.setGet(e,t,["motionFactor"]),function(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=function(n){var r=n.position,a=n.pokedRenderer;switch(t.state){case Xm.IS_ROTATE:e.handleMouseRotate(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_PAN:e.handleMousePan(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_DOLLY:e.handleMouseDolly(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_SPIN:e.handleMouseSpin(a,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=function(n){n&&n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad?e.startCameraPose():n&&!n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad&&t.state===Xm.IS_CAMERA_POSE&&e.endCameraPose()},e.handleMove3D=function(n){switch(t.state){case Xm.IS_CAMERA_POSE:e.updateCameraPose(n)}},e.updateCameraPose=function(e){var t=e.pokedRenderer.getActiveCamera(),n=t.getPhysicalTranslation(),r=.05*e.gamepad.axes[1]/t.getPhysicalScale(),a=t.physicalOrientationToWorldDirection(e.orientation);t.setPhysicalTranslation(n[0]+a[0]*r,n[1]+a[1]*r,n[2]+a[2]*r)},e.handleLeftButtonPress=function(n){var r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=function(){switch(t.state){case Xm.IS_DOLLY:e.endDolly();break;case Xm.IS_PAN:e.endPan();break;case Xm.IS_SPIN:e.endSpin();break;case Xm.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=function(t){e.startDolly(),e.handleMouseWheel(t)},e.handleEndMouseWheel=function(){e.endDolly()},e.handleStartPinch=function(n){t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=function(){e.endDolly()},e.handleStartRotate=function(n){t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=function(){e.endRotate()},e.handleStartPan=function(n){t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=function(){e.endPan()},e.handlePinch=function(n){e.dollyByFactor(n.pokedRenderer,n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=function(n){var r=n.pokedRenderer.getActiveCamera(),a=r.getFocalPoint(),o=(a=e.computeWorldToDisplay(n.pokedRenderer,a[0],a[1],a[2]))[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(n.pokedRenderer,a[0]+i[0]-s[0],a[1]+i[1]-s[1],o),c=e.computeDisplayToWorld(n.pokedRenderer,a[0],a[1],o),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],a=r.getFocalPoint();var d=r.getPosition();r.setFocalPoint(u[0]+a[0],u[1]+a[1],u[2]+a[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t.interactor.getLightFollowCamera()&&n.pokedRenderer.updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=function(e){var n=e.pokedRenderer.getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=function(e,n){var r=t.interactor,a=n.x-t.previousPosition.x,o=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e),s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);var c=a*l*t.motionFactor,u=o*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=function(e,n){var r=t.interactor,a=e.getActiveCamera(),o=r.getView().getViewportCenter(e),i=O(Math.atan2(t.previousPosition.y-o[1],t.previousPosition.x-o[0])),s=O(Math.atan2(n.y-o[1],n.x-o[0]))-i;Number.isNaN(s)||(a.roll(s),a.orthogonalizeViewUp())},e.handleMousePan=function(n,r){var a=n.getActiveCamera(),o=a.getFocalPoint(),i=(o=e.computeWorldToDisplay(n,o[0],o[1],o[2]))[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],o=a.getFocalPoint();var u=a.getPosition();a.setFocalPoint(c[0]+o[0],c[1]+o[1],c[2]+o[2]),a.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t.interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=function(n,r){var a=r.y-t.previousPosition.y,o=t.interactor.getView().getViewportCenter(n),i=t.motionFactor*a/o[1];e.dollyByFactor(n,Math.pow(1.1,i))},e.handleMouseWheel=function(t){var n=1-t.spinY/10;e.dollyByFactor(t.pokedRenderer,n)},e.dollyByFactor=function(e,n){if(!Number.isNaN(n)){var r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t.interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}}(e,t)}var Zm={newInstance:f.a.newInstance(Ym,"vtkInteractorStyleTrackballCamera"),extend:Ym},Qm=f.a.vtkErrorMacro,$m=[1,-1,1,-1,1,-1];var Jm={empty:!0,numberOfComponents:3,dataType:u.FLOAT,bounds:[1,-1,1,-1,1,-1]};function ev(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Qe.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=f.a.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(e){for(var n=e*t.numberOfComponents,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Qe.extend(e,t,function(e){return rv({empty:!0,numberOfComponents:1,dataType:u.UNSIGNED_INT},e)}(n)),function(e,t){t.classHierarchy.push("vtkCellArray"),e.getNumberOfCells=function(e){return void 0===t.numberOfCells||e?(t.cellSizes=ov(t.values),t.numberOfCells=t.cellSizes.length,t.numberOfCells):t.numberOfCells},e.getCellSizes=function(e){return void 0===t.cellSizes||e?(t.cellSizes=ov(t.values),t.cellSizes):t.cellSizes};var n=e.setData;e.setData=function(e){n(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=function(e){var n=e,r=t.values[n++];return t.values.subarray(n,n+r)}}(e,t)}var lv=rv({newInstance:f.a.newInstance(sv,"vtkCellArray"),extend:sv},iv);var cv={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cv,n),f.a.obj(e,t),t.points||(t.points=tv.newInstance()),f.a.get(e,t,["points","pointsIds"]),function(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;var r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=f.a.newTypedArray(e.getDataType(),3*t.pointsIds.length));var a=e.getData();t.pointsIds.forEach(function(e,t){var n=3*e,o=3*t;r[o]=a[n],r[++o]=a[++n],r[++o]=a[++n]}),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(var o=e.getNumberOfPoints()-1;o>=0;--o)t.pointsIds[o]=o}},e.getBounds=function(){var e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(var r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else we(t.bounds);return t.bounds},e.getLength2=function(){e.getBounds();for(var n=0,r=0,a=0;a<3;a++)n+=(r=t.bounds[2*a+1]-t.bounds[2*a])*r;return n},e.getParametricDistance=function(e){for(var t,n=0,r=0;r<3;r++)(t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0)>n&&(n=t);return n},e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.deepCopy=function(e){e.initialize(t.points,t.pointsIds)},e.getCellDimension=function(){},e.intersectWithLine=function(e,t,n,r,a,o,i){},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var dv={newInstance:f.a.newInstance(uv,"vtkCell"),extend:uv};function fv(e){return function(e){if(Array.isArray(e))return pv(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pv(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=function(n){var r=n.getPoints().getNumberOfPoints(),a=n.getNumberOfCells(),o=new Uint32Array(r);if(n.isA("vtkPolyData")){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map(function(){return{ncells:0,cells:null}}),t.extend=n,t.maxId=-1},e.initialize=function(){t.array=null},e.getLink=function(e){return t.array[e]},e.getNcells=function(e){return t.array[e].ncells},e.getCells=function(e){return t.array[e].cells},e.insertNextPoint=function(e){t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=function(e,n){t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=function(e){t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=function(e,n){t.array[n].cells=t.array[n].cells.filter(function(t){return t!==e}),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=function(e,n){t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=function(e,n){t.array[e].cells.length=n},e.squeeze=function(){!function(e,t){var n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=function(){t.maxId=-1},e.deepCopy=function(e){t.array=fv(e.array),t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=function(e){++t.array[e].ncells},e.allocateLinks=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sv,n),f.a.obj(e,t),f.a.get(e,t,["size","maxId","extend"]),f.a.getArray(e,t,["typeArray","locationArray"]),function(e,t){t.classHierarchy.push("vtkCellTypes"),e.allocate=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=function(e,n,r){t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=function(n,r){return e.insertCell(++t.maxId,n,r),t.maxId},e.setCellTypes=function(e,n,r){t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=function(e){return t.locationArray[e]},e.deleteCell=function(e){t.typeArray[e]=hv.VTK_EMPTY_CELL},e.getNumberOfTypes=function(){return t.maxId+1},e.isType=function(t){for(var n=e.getNumberOfTypes(),r=0;r3&&void 0!==arguments[3]?arguments[3]:null,o={t:Number.MIN_VALUE,distance:0},i=[];i[0]=n[0]-t[0],i[1]=n[1]-t[1],i[2]=n[2]-t[2];var s=i[0]*(e[0]-t[0])+i[1]*(e[1]-t[1])+i[2]*(e[2]-t[2]),l=W(i,i),c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?r=n:(r=i,i[0]=t[0]+o.t*i[0],i[1]=t[1]+o.t*i[1],i[2]=t[2]+o.t*i[2]),a&&(a[0]=r[0],a[1]=r[1],a[2]=r[2]),o.distance=q(r,e),o}function Ev(e,t,n,r,a,o){var i=[],s=[],l=[];a[0]=0,o[0]=0,i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],s[0]=r[0]-n[0],s[1]=r[1]-n[1],s[2]=r[2]-n[2],l[0]=n[0]-e[0],l[1]=n[1]-e[1],l[2]=n[2]-e[2];var c=[];c[0]=[W(i,i),-W(i,s)],c[1]=[c[0][1],W(s,s)];var u=[];if(u[0]=W(i,l),u[1]=-W(s,l),0===pe(c,u,2)){for(var d,f=Number.MAX_VALUE,p=[e,t,n,r],g=[n,n,e,e],m=[r,r,t,t],v=[o[0],o[0],a[0],a[0]],h=[a[0],a[0],o[0],o[0]],y=0;y<4;y++)(d=Rv(p[y],g[y],m[y])).distance=0&&a[0]<=1&&o[0]>=0&&o[0]<=1?Iv.YES_INTERSECTION:Iv.NO_INTERSECTION}var Dv={distanceToLine:Rv,intersection:Ev};var Vv={};function Lv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=function(){return 1},e.intersectWithLine=function(e,n,r,a,o){var i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;var s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);var u=[],d=[],f=Ev(e,n,l,c,u,d);if(i.t=u[0],i.betweenPoints=function(e){return e>=0&&e<=1}(i.t),o[0]=d[0],f===Iv.YES_INTERSECTION){for(var p=0;p<3;p++)a[p]=l[p]+o[0]*(c[p]-l[p]),s[p]=e[p]+i.t*(n[p]-e[p]);if(q(a,s)<=r*r)return i.intersect=1,i}else{var g;if(i.t<0)return(g=Rv(e,l,c,a)).distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return(g=Rv(n,l,c,a)).distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(o[0]<0)return o[0]=0,g=Rv(l,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i;if(o[0]>1)return o[0]=1,g=Rv(c,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var Nv=Mv(Mv({newInstance:f.a.newInstance(Lv,"vtkLine"),extend:Lv},Dv),xv);var Bv={};function kv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bv,n),Cn.extend(e,t,n),f.a.setGet(e,t,["points"]),function(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Object(en.a)(t.points):t.points=tv.newInstance(),e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.getBounds=function(){return t.points.getBounds()},e.computeBounds=function(){e.getBounds()};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=tv.newInstance(),t.points.shallowCopy(e.getPoints())}}(e,t)}var Fv={newInstance:f.a.newInstance(kv,"vtkPointSet"),extend:kv};function Gv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uv(e,t,n,r){var a=n[0]-t[0],o=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=o*c-i*l,r[1]=i*s-a*c,r[2]=a*l-o*s}function jv(e,t,n,r){Uv(e,t,n,r);var a=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==a&&(r[0]/=a,r[1]/=a,r[2]/=a)}var Wv={computeNormalDirection:Uv,computeNormal:jv};var zv={};function Hv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkTriangle"),e.getCellDimension=function(){return 2},e.intersectWithLine=function(n,r,a,o,i){var s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;var l=a*a,c=[],u=[],d=[];t.points.getPoint(0,c),t.points.getPoint(1,u),t.points.getPoint(2,d);var f=[];if(jv(c,u,d,f),0!==f[0]||0!==f[1]||0!==f[2]){var p=ft.intersectWithLine(n,r,c,f);if(s.betweenPoints=p.betweenPoints,s.t=p.t,o[0]=p.x[0],o[1]=p.x[1],o[2]=p.x[2],!p.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;var g=e.evaluatePosition(o,[],i,[]);if(g.evaluation>=0)return g.dist2<=l?(s.intersect=1,s):(s.intersect=g.evaluation,s)}var m=q(c,u),v=q(u,d),h=q(d,c);t.line||(t.line=Nv.newInstance()),m>v&&m>h?(t.line.getPoints().setPoint(0,c),t.line.getPoints().setPoint(1,u)):v>h&&v>m?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,c));var y=t.line.intersectWithLine(n,r,a,o,i);if(s.betweenPoints=y.betweenPoints,s.t=y.t,y.intersect){for(var b=[],T=[],C=[],S=0;S<3;S++)b[S]=c[S]-d[S],T[S]=u[S]-d[S],C[S]=o[S]-d[S];return i[0]=W(C,b)/h,i[1]=W(C,T)/v,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=function(e,n,r,a){var o,i,s,l,c,u,d,f={subId:0,dist2:0,evaluation:-1},p=[],g=[],m=[],v=[],h=[],y=[],b=[],T=0,C=[],S=[],P=[],w=[],x=[];f.subId=0,r[2]=0,t.points.getPoint(1,p),t.points.getPoint(2,g),t.points.getPoint(0,m),Uv(p,g,m,v),ft.generalizedProjectPoint(e,p,v,x);var O=0;for(o=0;o<3;o++)(s=v[o]<0?-v[o]:v[o])>O&&(O=s,T=o);for(i=0,o=0;o<3;o++)o!==T&&(C[i++]=o);for(o=0;o<2;o++)h[o]=x[C[o]]-m[C[o]],y[o]=p[C[o]]-m[C[o]],b[o]=g[C[o]]-m[C[o]];if(0===(l=Q(y,b)))return r[0]=0,r[1]=0,f.evaluation=-1,f;if(r[0]=Q(h,b)/l,r[1]=Q(y,h)/l,a[0]=1-(r[0]+r[1]),a[1]=r[0],a[2]=r[1],a[0]>=0&&a[0]<=1&&a[1]>=0&&a[1]<=1&&a[2]>=0&&a[2]<=1)n&&(f.dist2=q(x,e),n[0]=x[0],n[1]=x[1],n[2]=x[2]),f.evaluation=1;else{var M;if(n)if(a[1]<0&&a[2]<0)for(c=q(e,m),u=Nv.distanceToLine(e,p,m,M,P),d=Nv.distanceToLine(e,m,g,M,w),c1?r[a]-1:0)>n&&(n=t);return n}}(e,t)}var Kv,Xv=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$v,n),Fv.extend(e,t,n),f.a.get(e,t,["cells","links"]),f.a.setGet(e,t,["verts","lines","polys","strips"]),function(e,t){t.classHierarchy.push("vtkPolyData"),qv.forEach(function(n){e["getNumberOf".concat(function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e){return e.toUpperCase()}).replace(/\s+/g,"")}(n))]=function(){return t[n].getNumberOfCells()},t[n]?t[n]=Object(en.a)(t[n]):t[n]=lv.newInstance()}),e.getNumberOfCells=function(){return qv.reduce(function(e,n){return e+t[n].getNumberOfCells()},0)};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),qv.forEach(function(n){t[n]=lv.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})},e.buildCells=function(){var n=e.getNumberOfVerts(),r=e.getNumberOfLines(),a=e.getNumberOfPolys(),o=e.getNumberOfStrips(),i=n+r+a+o,s=new Uint8Array(i),l=s,c=new Uint32Array(i),u=c;if(n){var d=0;t.verts.getCellSizes().forEach(function(e,t){u[t]=d,l[t]=e>1?hv.VTK_POLY_VERTEX:hv.VTK_VERTEX,d+=e+1}),u=u.subarray(n),l=l.subarray(n)}if(r){var f=0;t.lines.getCellSizes().forEach(function(e,t){u[t]=f,l[t]=e>2?hv.VTK_POLY_LINE:hv.VTK_LINE,1===e&&Zv("Building VTK_LINE ",t," with only one point, but VTK_LINE needs at least two points. Check the input."),f+=e+1}),u=u.subarray(r),l=l.subarray(r)}if(a){var p=0;t.polys.getCellSizes().forEach(function(e,t){switch(u[t]=p,e){case 3:l[t]=hv.VTK_TRIANGLE;break;case 4:l[t]=hv.VTK_QUAD;break;default:l[t]=hv.VTK_POLYGON}e<3&&Zv("Building VTK_TRIANGLE ",t," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=e+1}),u+=u.subarray(a),l+=l.subarray(a)}if(o){var g=0;l.fill(hv.VTK_TRIANGLE_STRIP,0,o),t.strips.getCellSizes().forEach(function(e,t){u[t]=g,g+=e+1})}t.cells=wv.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=vv.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellPoints=function(e){var n=t.cells.getCellType(e),r=null;switch(n){case hv.VTK_VERTEX:case hv.VTK_POLY_VERTEX:r=t.verts;break;case hv.VTK_LINE:case hv.VTK_POLY_LINE:r=t.lines;break;case hv.VTK_TRIANGLE:case hv.VTK_QUAD:case hv.VTK_POLYGON:r=t.polys;break;case hv.VTK_TRIANGLE_STRIP:r=t.strips;break;default:return r=null,{type:0,cellPointIds:null}}var a=t.cells.getCellLocation(e);return{cellType:n,cellPointIds:r.getCell(a)}},e.getPointCells=function(e){return t.links.getCells(e)},e.getCellEdgeNeighbors=function(e,n,r){var a=t.links.getLink(n),o=t.links.getLink(r);return a.cells.filter(function(t){return t!==e&&-1!==o.cells.indexOf(t)})},e.getCell=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=e.getCellPoints(t),a=n||Qv[r.cellType].newInstance();return a.initialize(e.getPoints(),r.cellPointIds),a}}(e,t)}var eh={newInstance:f.a.newInstance(Jv,"vtkPolyData"),extend:Jv};function th(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nh(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rh=f.a.vtkDebugMacro;function ah(e,t){t.classHierarchy.push("vtkActor");var n=function(e){for(var t=1;t=1;return n=(n=n&&(!t.texture||!t.texture.isTranslucent()))&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque())},e.makeProperty=ju.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){rh("Recomputing bounds..."),t.mapperBounds=n.concat();var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?r:e}if(null!==t.backfaceProperty){var a=t.backfaceProperty.getMTime();e=a>e?a:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()}}var oh={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ih(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oh,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),ah(e,t)}var sh={newInstance:f.a.newInstance(ih,"vtkActor"),extend:ih};function lh(e){return function(e){if(Array.isArray(e))return ch(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ch(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ch(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ch(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uh,n),f.a.obj(e,t),f.a.get(e,t,["renderWindow","renderer","openGLRenderWindow","interactor","container"]),f.a.event(e,t,"resize"),function(e,t){var n=e.invokeResize;delete e.invokeResize,t.renderWindow=lg.newInstance(),t.renderer=dm.newInstance(),t.renderWindow.addRenderer(t.renderer),t.openGLRenderWindow=zg.newInstance(),t.renderWindow.addView(t.openGLRenderWindow),t.interactor=Im.newInstance(),t.interactor.setInteractorStyle(Zm.newInstance()),t.interactor.setView(t.openGLRenderWindow),t.interactor.initialize(),e.setBackground=t.renderer.setBackground,e.setBackground.apply(e,lh(t.background)),e.resize=function(){if(t.container){var e=t.container.getBoundingClientRect(),r=window.devicePixelRatio||1;t.openGLRenderWindow.setSize(Math.floor(e.width*r),Math.floor(e.height*r)),n(),t.renderWindow.render()}},e.setContainer=function(e){t.container&&t.interactor.unbindEvents(t.container),t.container=e,t.openGLRenderWindow.setContainer(t.container),t.container&&t.interactor.bindEvents(t.container)},e.delete=f.a.chain(e.setContainer,t.openGLRenderWindow.delete,e.delete),t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}(e,t)}var fh={newInstance:f.a.newInstance(dh),extend:dh},ph={DEFAULT:0,GEOMETRY:1,SLICE:2,VOLUME:3,YZ_PLANE:4,XZ_PLANE:5,XY_PLANE:6},gh={PICKING_BUFFER:0,FRONT_BUFFER:1},mh={ViewTypes:ph,RenderingTypes:gh,CaptureOn:{MOUSE_MOVE:0,MOUSE_RELEASE:1}},vh=.5;var hh={contextVisibility:!0,handleVisibility:!0,hasFocus:!1};function yh(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hh,n),Bi.extend(e,t,n),Fm.extend(e,t,n),f.a.setGet(e,t,["contextVisibility","handleVisibility","widgetManager"]),f.a.get(e,t,["representations","widgetState"]),f.a.event(e,t,"ActivateHandle"),function(e,t){t.classHierarchy.push("vtkAbstractWidget"),t.actorToRepresentationMap=new WeakMap,e.getBounds=t.widgetState.getBounds,e.getNestedProps=function(){return t.representations},e.activateHandle=function(n){var r=n.selectedState,a=n.representation;t.widgetState.activateOnly(r),t.activeState=r,r&&r.updateManipulator&&r.updateManipulator(),e.invokeActivateHandle({selectedState:r,representation:a}),e.updateCursor&&e.updateCursor()},e.deactivateAllHandles=function(){t.widgetState.deactivate()},e.hasActor=function(e){return t.actorToRepresentationMap.has(e)},e.grabFocus=function(){t.hasFocus=!0},e.loseFocus=function(){t.hasFocus=!1},e.hasFocus=function(){return t.hasFocus},e.placeWidget=function(e){return t.widgetState.placeWidget(e)},e.getPlaceFactor=function(){return t.widgetState.getPlaceFactor()},e.setPlaceFactor=function(e){return t.widgetState.setPlaceFactor(e)},e.getRepresentationFromActor=function(e){return t.actorToRepresentationMap.get(e)},e.updateRepresentationForRender=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Th,n),sf.extend(e,t,n),f.a.setGet(e,t,["callback","useZValues"]),function(e,t){t.classHierarchy.push("vtkPixelSpaceCallbackMapper"),t.callback||(t.callback=function(){}),e.invokeCallback=function(e,n,r,a,s){if(t.callback){var l=n.getCompositeProjectionMatrix(r,-1,1);o.transpose(l,l);for(var c=e.getPoints(),u=new Float64Array(3),d=a.usize,f=a.vsize,p=d/2,g=f/2,m=[],v=0;ve.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ih,n),Bi.extend(e,t,n),f.a.algo(e,t,1,1),f.a.get(e,t,["labels","coincidentTopologyParameters"]),f.a.set(e,t,["displayScaleParams"]),f.a.setGet(e,t,["scaleInPixels"]),function(e,t){t.classHierarchy.push("vtkWidgetRepresentation");var n={mtimes:{},states:[]};function r(e,t){e&&e.setResolveCoincidentTopologyToPolygonOffset&&(e.setResolveCoincidentTopologyToPolygonOffset(),zd.forEach(function(n){if(t[n]){var r="setRelativeCoincidentTopology".concat(n,"OffsetParameters");if(e[r]){var a=t[n],o=a.factor,i=a.offset;e[r](o,i)}}}))}e.getActors=function(){return t.actors},e.getNestedProps=e.getActors,e.setLabels=function(){for(var n=arguments.length,r=new Array(n),a=0;a0&&void 0!==arguments[0]?arguments[0]:t.inputData[0];return n.mtimes.representation===e.getMTime()&&n.mtimes.input===r.getMTime()?n.states:(n.mtimes.representation=e.getMTime(),n.mtimes.input=r.getMTime(),n.states=[],t.labels.forEach(function(e){n.states=n.states.concat(r.getStatesWithLabel(e)||[])}),n.states)},e.getSelectedState=function(t,n){var r=e.getRepresentationStates();return n0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!0;switch(t.behavior){case Ph.HANDLE:o=e===gh.PICKING_BUFFER||a;break;case Ph.CONTEXT:o=e===gh.FRONT_BUFFER&&r;break;default:o=!0}for(var i=n&&o,s=0;s1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n=i;f--)d(f)}return n}function _h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Uh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Uh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Uh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qh,n),f.a.obj(e,t),f.a.setGet(e,t,["captureOn",{type:"enum",name:"viewType",enum:jh}]),f.a.get(e,t,["selections","widgets","viewId","pickingEnabled","useSvgLayer"]),Zh(e,t)}var Jh={newInstance:f.a.newInstance($h,"vtkWidgetManager"),extend:$h,Constants:mh};function ey(e){return function(e){if(Array.isArray(e))return ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]&&arguments[2];f.a.obj(e,t),f.a.get(e,t,["widgetState"]),f.a.event(e,t,"WidgetChange"),function(e,t){t.classHierarchy.push("vtkAbstractWidgetFactory");var n={};e.getWidgetForView=function(r){var a=r.viewId,o=r.renderer,i=r.viewType,s=r.initialValues;if(!n[a]){if(!o)return null;var l=Yh(o),c=l.interactor,u=l.apiSpecificRenderWindow,d=l.camera,p={},g={onWidgetChange:e.onWidgetChange};Object.assign(p,t,{viewType:i,renderer:o,camera:d,apiSpecificRenderWindow:u,factory:e}),f.a.safeArrays(p),bh.extend(g,p,s);var m=s;p.representations=e.getRepresentationsForViewType(i).map(function(e){var t=e.builder,n=e.labels,r=e.initialValues;return t.newInstance(ry(ry({labels:n},r),m))}),p.representations.forEach(function(e){e.setInputData(p.widgetState),e.getActors().forEach(function(t){p.actorToRepresentationMap.set(t,e)})}),t.behavior(g,p),["coincidentTopologyParameters"].concat(ey(t.methodsToLink||[])).forEach(function(e){var t,n="set".concat(f.a.capitalize(e)),r="get".concat(f.a.capitalize(e)),a=(ay(t={},e,[]),ay(t,n,[]),ay(t,r,[]),t);p.representations.forEach(function(t){t[e]&&a[e].push(t[e]),t[n]&&a[n].push(t[n]),t[r]&&a[r].push(t[r])}),Object.keys(a).forEach(function(e){var t=a[e];1===t.length?g[e]=t[0]:t.length>1&&(g[e]=f.a.chain.apply(f.a,ey(t)))})}),g.delete=f.a.chain(function(){delete n[a]},g.delete),g.setInteractor(c);var v=Object.freeze(g);return n[a]=v,v}return n[a]},e.getViewIds=function(){return Object.keys(n)},e.setVisibility=function(e){for(var t=Object.keys(n),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cy,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlaneManipulator"),e.handleEvent=function(e,n){return ly(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var dy={intersectDisplayWithPlane:ly,extend:uy,newInstance:f.a.newInstance(uy,"vtkPlaneManipulator")};function fy(e,t,n,r,a,o){var i=o.displayToWorld(e,t,0,a),s=[0,0,0];G(o.displayToWorld(e,t,1,a),i,s);var l=[0,0,0];z(r,s,l),z(l,s,l);var c=W([i[0]-n[0],i[1]-n[1],i[2]-n[2]],l),u=W(l,r),d=r.slice();return U(d,c/u),F(n,d,d),d}var py={origin:[0,0,0],normal:[0,0,1]};function gy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,py,n),f.a.obj(e,t),f.a.setGetArray(e,t,["origin","normal"],3),function(e,t){t.classHierarchy.push("vtkLineManipulator"),e.handleEvent=function(e,n){return fy(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var my={projectDisplayToLine:fy,extend:gy,newInstance:f.a.newInstance(gy,"vtkLineManipulator")},vy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function by(e){return function(e){if(Array.isArray(e))return Ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),sf.extend(e,t,n),f.a.algo(e,t,2,0),t.buildTime={},f.a.obj(t.buildTime,{mtime:0}),t.boundsTime={},f.a.obj(t.boundsTime,{mtime:0}),f.a.setGet(e,t,["orient","orientationMode","orientationArray","scaleArray","scaleFactor","scaleMode","scaling"]),f.a.get(e,t,["colorArray","matrixArray","normalArray","buildTime"]),function(e,t){t.classHierarchy.push("vtkGlyph3DMapper"),e.getOrientationModeAsString=function(){return f.a.enumToString(Cy,t.orientationMode)},e.setOrientationModeToDirection=function(){return e.setOrientationMode(Cy.DIRECTION)},e.setOrientationModeToRotation=function(){return e.setOrientationMode(Cy.ROTATION)},e.setOrientationModeToMatrix=function(){return e.setOrientationMode(Cy.MATRIX)},e.getOrientationArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=function(){return f.a.enumToString(Sy,t.scaleMode)},e.setScaleModeToScaleByMagnitude=function(){return e.setScaleMode(Sy.SCALE_BY_MAGNITUDE)},e.setScaleModeToScaleByComponents=function(){return e.setScaleMode(Sy.SCALE_BY_COMPONENTS)},e.setScaleModeToScaleByConstant=function(){return e.setScaleMode(Sy.SCALE_BY_CONSTANT)},e.getScaleArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.getBounds=function(){var n=e.getInputData(0),r=e.getInputData(1);return n&&r?(e.buildArrays(),t.bounds):Ne()},e.buildArrays=function(){var n=e.getInputData(0),r=e.getInputData(1);if(t.buildTime.getMTime()t.bounds[1]&&(t.bounds[1]=p[0]),p[1]>t.bounds[3]&&(t.bounds[3]=p[1]),p[2]>t.bounds[5]&&(t.bounds[5]=p[2]);var E=new Float32Array(T,36*S,9);a.fromMat4(E,P),a.invert(E,E),a.transpose(E,E)}var D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;var V=e.getLookupTable();V&&D&&(V.build(),t.colorArray=V.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}},e.getPrimitiveCount=function(){var t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}}}(e,t)}var Oy=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},r=Ay(Ay({},Ry),n);Rh.extend(e,t,r),f.a.setGet(e,t,["activeScaleFactor","activeColor","useActiveColor"]),function(e,t){t.classHierarchy.push("vtkHandleRepresentation")}(0,t)}};var Dy={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float32Array"};function Vy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dy,n),f.a.obj(e,t),f.a.setGet(e,t,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),f.a.setGetArray(e,t,["center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkSphereSource"),e.requestData=function(e,n){if(!t.deleted){var r=n[0],a=r?r.getPoints().getDataType():"Float32Array";r=eh.newInstance();var o=0,i=t.thetaResolution,s=t.startThetat.startTheta?t.endTheta:t.startTheta;l*=Math.PI/180;var c=t.startPhit.startPhi?t.endPhi:t.startPhi;u*=Math.PI/180,Math.abs(s-l)<2*Math.PI&&++i;var d=(l-s)/t.thetaResolution,p=t.startPhi<=0?1:0,g=t.phiResolution+(t.endPhi>=180?-1:0),m=t.phiResolution*i+2,v=2*t.phiResolution*t.thetaResolution,h=0,y=f.a.newTypedArray(a,3*m),b=new Float32Array(3*m),T=0,C=new Uint32Array(5*v);t.startPhi<=0&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]+t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=1,h++,o++),t.endPhi>=180&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]-t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=-1,h++,o++);for(var S=t.phiResolution-o,P=(u-c)/(t.phiResolution-1),w=0;w=180)for(var D=S-1+o,V=0;V2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ny,n),Ey.extend(e,t,n),f.a.get(e,t,["glyph","mapper","actor"]),function(e,t){function n(n){if(t.displayCallback){for(var r=[],a=e.getRepresentationStates(),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},r=Gy(Gy({},Uy),n);Rh.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkContextRepresentation")}(0,t)}};function Wy(e){return function(e){if(Array.isArray(e))return zy(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return zy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zy(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),jy.extend(e,t,n),f.a.setGetArray(e,t,["edgeColor"],3),f.a.get(e,t,["mapper","actor"]),function(e,t){var n;t.classHierarchy.push("vtkCroppingOutlineRepresentation"),t.internalPolyData=eh.newInstance({mtime:0}),t.points=new Float32Array(24),t.internalPolyData.getPoints().setData(t.points,3),t.internalPolyData.getLines().setData(Uint16Array.from(Ky)),t.mapper=sf.newInstance({scalarVisibility:!1}),t.actor=sh.newInstance(),(n=t.actor.getProperty()).setEdgeColor.apply(n,Wy(t.edgeColor)),t.mapper.setInputConnection(e.getOutputPort()),t.actor.setMapper(t.mapper),e.addActor(t.actor),e.requestData=function(n,r){var a=e.getRepresentationStates(n[0]);if(8===a.length){for(var o=0,i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ib,n),f.a.obj(e,t),f.a.setGet(e,t,["active"]),function(e,t){t.classHierarchy.push("vtkWidgetState");var n=[];t.labels={},t.nestedStates=[],e.bindState=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[ab];if(t.nestedStates.push(r),n.push(r.onModified(e.modified)),Array.isArray(a)&&a.length)for(var o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ub,n),f.a.setGetArray(e,t,["bounds"],6),f.a.get(e,t,["placeFactor"]),f.a.event(e,t,"BoundsChange"),t.bounds=t.bounds.slice(),function(e,t){var n=[],r=lb(Jt.INIT_BOUNDS);e.containsPoint=function(e,t,n){return Array.isArray(e)?Jt.containsPoint(r,e[0],e[1],e[2]):Jt.containsPoint(r,e,t,n)},e.placeWidget=function(a){t.bounds=[];for(var o=[(a[0]+a[1])/2,(a[2]+a[3])/2,(a[4]+a[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];n[i]=a[i],t.bounds[i]=(a[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()},e.setPlaceFactor=function(a){if(t.placeFactor!==a){t.placeFactor=a,t.bounds=[];for(var o=[(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];t.bounds[i]=(n[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()}}}(e,t)}},fb={color:.5};var pb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fb,n),f.a.setGet(e,t,["color"])}};function gb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return mb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),f.a.setGetArray(e,t,["corner"],3),function(e,t){e.translate=function(t,n,r){var a=gb(e.getCornerByReference(),3),o=a[0],i=a[1],s=a[2];e.setCorner(o+t,i+n,s+r)}}(e)}};function yb(e){return function(e){if(Array.isArray(e))return bb(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bb(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]&&arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.matrix=o.identity(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=t?r.toRadian:Cb}return function(e,t,n){t&&Tb(e.prototype,t),n&&Tb(e,n)}(e,[{key:"rotateFromDirections",value:function(e,t){var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(16);i.set(n,e[0],e[1],e[2]),i.set(r,t[0],t[1],t[2]),i.normalize(n,n),i.normalize(r,r);var s=i.dot(n,r);return s>=1?this:(i.cross(this.tmp,n,r),i.length(this.tmp)<1e-6&&(i.cross(this.tmp,[1,0,0],e),i.length(this.tmp)<1e-6&&i.cross(this.tmp,[0,1,0],e)),o.fromRotation(a,Math.acos(s),this.tmp),o.multiply(this.matrix,this.matrix,a),this)}},{key:"rotate",value:function(e,t){return i.set.apply(i,[this.tmp].concat(yb(t))),i.normalize(this.tmp,this.tmp),o.rotate(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}},{key:"rotateX",value:function(e){return o.rotateX(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateY",value:function(e){return o.rotateY(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateZ",value:function(e){return o.rotateZ(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"translate",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.translate(this.matrix,this.matrix,this.tmp),this}},{key:"scale",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.scale(this.matrix,this.matrix,this.tmp),this}},{key:"multiply",value:function(e){return o.multiply(this.matrix,this.matrix,e),this}},{key:"identity",value:function(){return o.identity(this.matrix),this}},{key:"apply",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if(ae(Sb,this.matrix))return this;for(var r=-1===n?e.length:t+3*n,a=t;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),f.a.setGetArray(e,t,["direction"],3),function(e,t){var n="degree"===t.angleUnit?wb.buildFromDegree():wb.buildFromRadian();e.rotateFromDirections=function(r,a){n.identity().rotateFromDirections(r,a).apply(t.direction),e.modified()},e.rotate=function(e,r){n.identity().rotate(e,r).apply(t.direction)},e.rotateX=function(e){n.identity().rotateX(e).apply(t.direction)},e.rotateY=function(e){n.identity().rotateY(e).apply(t.direction)},e.rotateZ=function(e){n.identity().rotateZ(e).apply(t.direction)}}(e,t)}};var Mb={manipulator:null};var Ab={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mb,n),f.a.setGet(e,t,["manipulator"]),function(e,t){e.updateManipulator=function(){if(t.manipulator){var e=t.origin,n=t.normal,r=t.direction,a=t.manipulator,o=a.setOrigin,i=a.setCenter,s=a.setNormal,l=a.setDirection;e&&o?o(e):e&&i&&i(e),r&&l?l(r):r&&!n&&s?s(r):n&&l&&l(n)}}}(e,t)}},Ib={name:""};var Rb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ib,n),f.a.setGet(e,t,["name"])}};function Eb(e,t){return 3===e.length&&3===t.length&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Db(e,t){var n={o:[],p1:[],p2:[]};e.normalize=function(){K(t.up),K(t.right),K(t.direction),e.modified()},e.updateFromOriginRightUp=function(r,a,o){(function(e,t,n,r){return Eb(e,r.o)&&Eb(t,r.p1)&&Eb(n,r.p2)})(r,a,o,n)||(n.o=r.slice(),n.p1=a.slice(),n.p2=o.slice(),t.up=[o[0]-r[0],o[1]-r[1],o[2]-r[2]],t.right=[a[0]-r[0],a[1]-r[1],a[2]-r[2]],z(t.up,t.right,t.direction),z(t.direction,t.up,t.right),e.normalize(),e.modified())}}var Vb={up:[0,1,0],right:[1,0,0],direction:[0,0,1]};var Lb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vb,n),f.a.setGetArray(e,t,["up","right","direction"],3),Db(e,t)}};function Nb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Bb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kb,n),f.a.setGetArray(e,t,["origin"],3),function(e,t){e.translate=function(t,n,r){var a=Nb(e.getOriginByReference(),3),o=a[0],i=a[1],s=a[2];e.setOrigin(o+t,i+n,s+r)}}(e)}},Gb={scale1:.5};var _b={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),f.a.setGet(e,t,["scale1"])}},Ub={scale3:[1,1,1]};var jb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ub,n),f.a.setGetArray(e,t,["scale3"],3)}},Wb={text:"DefaultText"};var zb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wb,n),f.a.setGet(e,t,["text"])}},Hb={visible:!0};var Kb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hb,n),f.a.setGet(e,t,["visible"]),e.isVisible=e.getVisible}},Xb={shape:""};var qb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xb,n),f.a.setGet(e,t,["shape"])}};function Yb(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};arguments.length>4&&void 0!==arguments[4]&&arguments[4]||sb.extend(n,r,t);for(var a=0;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pT,n),sy.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkImageCroppingWidget");var n=null;function r(e,n){t.widgetState.getStatesWithLabel(e).forEach(function(e){e.setVisible(n)})}e.setFaceHandlesEnabled=function(e){return r("faces",e)},e.setEdgeHandlesEnabled=function(e){return r("edges",e)},e.setCornerHandlesEnabled=function(e){return r("corners",e)},e.copyImageDataDescription=function(n){var r,a;(r=t.widgetState).setIndexToWorldT.apply(r,uT(n.getIndexToWorld())),(a=t.widgetState).setWorldToIndexT.apply(a,uT(n.getWorldToIndex()));var o=n.getDimensions();t.widgetState.getCroppingPlanes().setPlanes([0,o[0],0,o[1],0,o[2]]),e.modified()},e.updateHandles=function(){for(var e=t.widgetState.getCroppingPlanes().getPlanes(),n=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],r=[e[0],n[0],e[1]],a=[e[2],n[1],e[3]],o=[e[4],n[2],e[5]],i=t.widgetState.getIndexToWorldT(),s=function(e){return $y[e]},l=0;l<3;l++)for(var c=0;c<3;c++)for(var u=0;u<3;u++)if(1!==l||1!==c||1!==u){var d=[l,c,u].map(s).join(""),f=Jy([r[l],a[c],o[u]],i),p=cT(t.widgetState.getStatesWithLabel(d),1)[0];p.setOrigin.apply(p,uT(f))}},e.delete=f.a.chain(e.delete,function(){n&&n.unsubscribe()}),t.behavior=rb,t.widgetState=lT(),e.getRepresentationsForViewType=function(e){switch(e){case ph.DEFAULT:case ph.GEOMETRY:case ph.SLICE:case ph.VOLUME:default:return[{builder:ky,labels:["handles"]},{builder:Yy,labels:["corners"]}]}},n=t.widgetState.getCroppingPlanes().onModified(e.updateHandles);var a=dy.newInstance(),o=my.newInstance();t.widgetState.getStatesWithLabel("corners").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("edges").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("faces").forEach(function(e){return e.setManipulator(o)})}(e,t)}var mT={newInstance:f.a.newInstance(gT,"vtkImageCroppingWidget"),extend:gT};function vT(e){return function(e){if(Array.isArray(e))return hT(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bT,n),f.a.obj(e,t),f.a.algo(e,t,1,1),f.a.setGetArray(e,t,["croppingPlanes"],6),function(e,t){t.classHierarchy.push("vtkImageCropFilter"),e.reset=function(){var t=e.getInputData();t&&e.setCroppingPlanes.apply(e,vT(t.getExtent()))},e.requestData=function(e,n){var r=e[0];if(r){var a=r.getPointData().getScalars();if(a){var o=r.getExtent(),i=6===t.croppingPlanes.length?o.map(function(e,n){return n%2==0?Math.max(e,Math.round(t.croppingPlanes[n])):Math.min(e,Math.round(t.croppingPlanes[n]))}):o.slice();if(i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&i[4]===o[4]&&i[5]===o[5]){var s=Di.newInstance();return s.shallowCopy(r),void(n[0]=s)}for(var l=0;l<3;++l)if(i[2*l]>i[2*l+1]){var c=[i[2*l+1],i[2*l]];i[2*l]=c[0],i[2*l+1]=c[1]}for(var u=0;u<6;u+=2)i[u]=Math.max(i[u],o[u]),i[u+1]=Math.min(i[u+1],o[u+1]);for(var d=a.getNumberOfComponents(),f=(i[1]-i[0]+1)*(i[3]-i[2]+1)*(i[5]-i[4]+1)*d,p=a.getData(),g=r.getDimensions(),m=d*g[0],v=d*g[0]*g[1],h=(i[0]-o[0])*d,y=(i[1]-i[0]+1)*d,b=new p.constructor(f),T=0,C=i[4];C<=i[5];++C)for(var S=i[2];S<=i[3];++S){var P=h+(S-o[2])*m+(C-o[4])*v,w=P+y,x=p.subarray(P,w);b.set(x,T),T+=x.length}var O=Di.newInstance({extent:i,origin:r.getOrigin(),direction:r.getDirection(),spacing:r.getSpacing()}),M=Qe.newInstance({name:a.getName(),numberOfComponents:d,values:b});O.getPointData().setScalars(M),n[0]=O}else yT("No scalars from input")}else yT("Invalid or missing input")},e.isResetAvailable=function(){if(0===t.croppingPlanes.length)return!1;var n=e.getInputData();return!!n&&void 0!==n.getExtent().find(function(e,n){return Math.abs(t.croppingPlanes[n]-e)>Number.EPSILON})}}(e,t)}f.a.newInstance(TT,"vtkImageCropFilter");var CT=n(13),ST=Object.create(null);CT.filter(function(e){return e.RGBPoints}).filter(function(e){return"CIELAB"!==e.ColorSpace}).forEach(function(e){ST[e.Name]=e});var PT=Object.keys(ST);PT.sort();var wT={addPreset:function(e){e.RGBPoints&&"CIELAB"!==e.ColorSpace&&(ST[e.Name]||(PT.push(e.Name),PT.sort()),ST[e.Name]=e)},removePresetByName:function(e){var t=PT.indexOf(e);t>-1&&PT.splice(t,1),delete ST[e]},getPresetByName:function(e){return ST[e]},rgbPresetNames:PT},xT=n(14),OT=n.n(xT),MT=n(15),AT=n.n(MT);function IT(){return AT()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";var n=function(){function e(e,t){for(var r=0;r1?t-1:0),o=1;o1?r-1:0),a=1;a3&&void 0!==arguments[3]?arguments[3]:[];r([l,e,t,n],o)},m=function(e,t,n){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");r([c,e,t,n])};return self.addEventListener("message",function(e){var t=e.data;Array.isArray(t)?function(e,t,r){var n=function(t){t&&t instanceof b?d(e,p,t.payload,t.transferable):d(e,p,t)},o=function(t){d(e,s,{message:t.message,stack:t.stack})};try{var i=h(e,t,r);v(i)?i.then(n).catch(o):n(i)}catch(e){o(e)}}.apply(void 0,a(t)):t&&t.eventName&&i.emitLocally.apply(i,[t.eventName].concat(a(t.args)))}),i},e.exports.TransferableResponse=b},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);o()(function(e,t){var r=e.array,n=e.min,i=e.max,a=e.component||0,u=e.numberOfComponents||1,f=e.numberOfBins,l=i-n,c=new Float32Array(f);c.fill(0);for(var s=r.length,p=a;p1?t-1:0),n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:256,n=[];n.lengtho+s||do+l?f===l?o:o+f/(f-l)*(d-o-l):-f===l?o:o-f/(f+l)*(d-o-l))-o)/f,g=Math.exp(-4*p*p),m=1-p*p,v=i*(c<1?c*m+(1-c)*g:(2-c)*m+1*(c-1));v>n[u]&&(n[u]=v)}}return n}function jT(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{lineWidth:1,strokeStyle:"#000"},a=t[3],o=t[2]/(n.length-1),i=!!r.fillStyle,s=a+t[1];e.lineWidth=r.lineWidth,e.strokeStyle=r.strokeStyle,e.beginPath(),e.moveTo(t[0],t[1]+t[3]);for(var l=0;l3&&void 0!==arguments[3]?arguments[3]:[0,1];return[r[0]+(e-n[0])/n[2]*(r[1]-r[0]),(t-n[1])/n[3]]}function zT(e,t){var n=t.map(function(t){return Math.abs(t.position-e)}),r=Math.min.apply(Math,LT(n));return n.indexOf(r)}function HT(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(n){var r=n.offsetX,a=n.offsetY;t&&n.preventDefault(),e(r,a)}}function KT(){GT.filter(function(e){return e.ready}).forEach(function(e){e.callbacks.forEach(function(t){t.touches===e.touches&&t.clicks===e.count&&t.action.apply(t,LT(e.singleTouche))}),e.ts=0,e.count=0,e.touches=0,e.ready=!1})}function XT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return function(a){var o=a.target.getBoundingClientRect(),i=Array.prototype.map.call(a.touches,function(e){return[e.pageX-o.left,e.pageY-o.top]}).reduce(function(e,t){return[e[0]+t[0],e[1]+t[1]]},[0,0]).map(function(e){return e/a.touches.length});"touchstart"===a.type?(clearTimeout(GT[e].timeout),GT[e].ts=a.timeStamp,GT[e].singleTouche=i,GT[e].touches=a.touches.length):"touchmove"===a.type?(GT[e].ts=0,GT[e].count=0,GT[e].ready=!1):"touchend"===a.type&&(a.timeStamp-GT[e].ts1&&void 0!==arguments[1]?arguments[1]:{},a=r.numberOfBinToConsiders,o=void 0===a?1:a,i=r.numberOfBinsToSkip,s=void 0===i?1:i,l=r.numberOfComponents,c=void 0===l?1:l,u=r.component,d=void 0===u?0:u;t.histogram=null,t.histogramArray=n,t.dataRange=D(n,d,c);var f=RT(t.dataRange,2),p=f[0],g=f[1],m=Math.floor(n.length/4)||1;m+=m%c;for(var v=0,h=[],y=[];vr;)a.shift();for(var l=a.reduce(function(e,t){return e+t},0)/r,c=0,u=t.histogram.length;c1){for(var s=t.style.iconSize+t.style.padding,l=s,c=0;r>l;)c+=1,l+=s;switch(c){case 0:var u=e.addGaussian(0,1,.1,0,0),d=t.gaussians[u],p=DT({},d),g=_T.adjustPosition;t.activeGaussian=u,t.selectedGaussian=u,f.a.setImmediate(function(){e.onDown(n,r),t.dragAction={originalXY:[0,0],action:g,gaussian:d,originalGaussian:p}});break;case 1:-1!==t.selectedGaussian&&e.removeGaussian(t.selectedGaussian);break;default:t.selectedGaussian=-1,t.dragAction=null}}else if(o<0||o>1||i<0||i>1)t.selectedGaussian=-1,t.dragAction=null;else{var m=zT(o,t.gaussians);m!==t.selectedGaussian&&(t.selectedGaussian=m,e.modified())}return!0},e.onHover=function(n,r){var a=20/t.canvas.height,o=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),i=o[0],s=o[1],l=RT(WT(n,r,t.graphArea),1)[0],c=i<0?t.selectedGaussian:zT(i,t.gaussians);t.canvas.style.cursor="default";var u=t.gaussians[c];if(t.enableRangeZoom&&l>=0&&rt.rangeZoom[1]-d?t.canvas.style.cursor=FT.adjustZoom:t.canvas.style.cursor=FT.adjustPosition,t.dragAction={rangeZoom:t.rangeZoom,action:_T.adjustZoom}}else if(u&&l>=0){var f=1-s,p=null;p=f>u.height+a?"adjustPosition":f>u.height-a?Math.abs(i-u.position).5*u.height+a?"adjustPosition":f>.5*u.height-a?Math.abs(i-u.position)a?"adjustPosition":"adjustWidth",t.canvas.style.cursor=FT[p];var g=_T[p],m=DT({},u);t.dragAction={originalXY:[i,s],action:g,gaussian:u,originalGaussian:m}}return c!==t.activeGaussian&&(t.activeGaussian=c,e.modified()),!0},e.onDown=function(n,r){t.mouseIsDown||e.invokeAnimation(!0),t.mouseIsDown=!0;var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);t.gaussianSide=0;var i=t.gaussians[o];return i&&(t.gaussianSide=i.position-a),o!==t.selectedGaussian&&a>0&&(t.selectedGaussian=o,e.modified()),!0},e.onDrag=function(n,r){if(t.dragAction){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];(0,t.dragAction.action)(o,i,DT({gaussianSide:t.gaussianSide,model:t,publicAPI:e},t.dragAction))&&(t.opacities=UT(t.gaussians,t.piecewiseSize),e.invokeOpacityChange(e,!0)),e.modified()}return!0},e.onUp=function(n,r){return t.mouseIsDown&&e.invokeAnimation(!1),t.mouseIsDown=!1,!0},e.onLeave=function(n,r){return e.onUp(n,r),t.canvas.style.cursor="default",t.activeGaussian=-1,e.modified(),!0},e.onAddGaussian=function(n,r){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];return o>=0&&e.addGaussian(o,1-i,.1,0,0),!0},e.onRemoveGaussian=function(n,r){var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);return a>=0&&-1!==o&&e.removeGaussian(o),!0},e.bindMouseListeners=function(){if(!t.listeners){var n=function(){return!!t.mouseIsDown},r=function(){for(var e=GT.length,t=arguments.length,n=new Array(t),r=0;r1){var l=Math.round(t.style.iconSize/2-t.style.strokeWidth),c=Math.round(l+o+t.style.strokeWidth);e.beginPath(),e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor,e.arc(c-o/2,c,l,0,2*Math.PI,!1),e.fillStyle=t.style.buttonFillColor,e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c),e.stroke(),e.moveTo(c-o/2,c-l+t.style.strokeWidth+2),e.lineTo(c-o/2,c+l-t.style.strokeWidth-2),e.stroke(),-1===t.selectedGaussian?(e.fillStyle=t.style.buttonDisableFillColor,e.lineWidth=t.style.buttonDisableStrokeWidth,e.strokeStyle=t.style.buttonDisableStrokeColor):(e.fillStyle=t.style.buttonFillColor,e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor),e.beginPath(),e.arc(c-o/2,c+o/2+t.style.iconSize,l,0,2*Math.PI,!1),e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c+o/2+t.style.iconSize),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c+o/2+t.style.iconSize),e.stroke()}if(t.histogram&&jT(e,i,YT(t.histogram,t.rangeZoom),{lineWidth:1,strokeStyle:t.style.histogramColor,fillStyle:t.style.histogramColor}),jT(e,i,YT(t.opacities,t.enableRangeZoom&&t.rangeZoom),{lineWidth:t.style.strokeWidth,strokeStyle:t.style.strokeColor}),t.colorTransferFunction&&t.colorTransferFunction.getSize()){var u=t.dataRange||t.colorTransferFunction.getMappingRange();t.colorCanvas&&t.colorCanvasMTime===t.colorTransferFunction.getMTime()||(t.colorCanvasMTime=t.colorTransferFunction.getMTime(),t.colorCanvas=function(e,t,n,r){var a=r||document.createElement("canvas");a.setAttribute("width",t),a.setAttribute("height",256);for(var o=a.getContext("2d"),i=e.getUint8Table(n[0],n[1],t,4),s=o.getImageData(0,0,t,256),l=0;l<256;l++)s.data.set(i,4*l*t);for(var c=256*t*4,u=4*t,d=3;d0&&(a=Math.min(a,i)),t.opacities[i]>0&&(o=Math.max(o,i));return[n[0]+a*r,n[0]+o*r]};var n=e.setEnableRangeZoom;e.setEnableRangeZoom=function(e){var r=n(e);return r&&(t.colorCanvasMTime=0,t.rangeZoom=[0,1]),r};var r=e.setRangeZoom;e.setRangeZoom=function(){var e=r.apply(void 0,arguments);return e&&(t.colorCanvasMTime=0),e},e.onModified(function(){return e.render()}),e.setSize.apply(e,LT(t.size))}var $T={histogram:[],numberOfBins:256,histogramArray:null,dataRange:[0,1],gaussians:[],opacities:[],size:[600,300],piecewiseSize:256,colorCanvasMTime:0,gaussianMinimumHeight:.05,style:{backgroundColor:"rgba(255, 255, 255, 1)",histogramColor:"rgba(200, 200, 200, 0.5)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(0, 0, 150)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",handleColor:"rgb(0, 150, 0)",strokeWidth:2,activeStrokeWidth:3,buttonStrokeWidth:1.5,handleWidth:3,iconSize:20,padding:10,zoomControlHeight:10,zoomControlColor:"#999"},activeGaussian:-1,selectedGaussian:-1,enableRangeZoom:!0,rangeZoom:[0,1]};function JT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$T,n),f.a.obj(e,t),f.a.setGet(e,t,["piecewiseSize","numberOfBins","colorTransferFunction","backgroundImage","enableRangeZoom","gaussianMinimumHeight"]),f.a.setGetArray(e,t,["rangeZoom"],2),f.a.get(e,t,["size","canvas","gaussians"]),f.a.event(e,t,"opacityChange"),f.a.event(e,t,"animation"),f.a.event(e,t,"zoomChange"),QT(e,t)}var eC=DT({newInstance:f.a.newInstance(JT,"vtkPiecewiseGaussianWidget"),extend:JT},ZT);var tC={center:[0,0,0],rotationFactor:1,displayCenter:[0,0]};var nC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tC,n),f.a.setGet(e,t,["rotationFactor"]),f.a.setGetArray(e,t,["displayCenter"],2),f.a.setGetArray(e,t,["center"],3),function(e,t){t.classHierarchy.push("vtkCompositeCameraManipulator"),e.computeDisplayCenter=function(e,n){var r=e.computeWorldToDisplay(n,t.center[0],t.center[1],t.center[2]);t.displayCenter[0]=r[0],t.displayCenter[1]=r[1]}}(e,t)}};var rC={button:1,shift:!1,control:!1,alt:!1,dragEnabled:!0,scrollEnabled:!1};var aC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rC,n),f.a.setGet(e,t,["button","shift","control","alt"]),f.a.set(e,t,["dragEnabled","scrollEnabled"]),function(e,t){t.classHierarchy.push("vtkCompositeMouseManipulator"),e.startInteraction=function(){},e.endInteraction=function(){},e.onButtonDown=function(e,t,n){},e.onButtonUp=function(e){},e.onMouseMove=function(e,t,n){},e.onStartScroll=function(e,t,n){},e.onScroll=function(e,t,n){},e.onEndScroll=function(e){},e.isDragEnabled=function(){return t.dragEnabled},e.isScrollEnabled=function(){return t.scrollEnabled}}(e,t)}};var oC={};function iC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballRotateManipulator");var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(3),s=new Float64Array(16),l=new Float64Array(3),c=new Float64Array(3),u=new Float64Array(3);e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,d,f){if(f){var p=d.getActiveCamera(),g=p.getPosition(),m=p.getFocalPoint();o.identity(s);var v=t.center,h=t.rotationFactor;o.translate(s,s,v);var y=t.previousPosition.x-f.x,b=t.previousPosition.y-f.y,T=e.getView().getSize(),C=p.getViewUp();o.rotate(s,s,x(360*y/T[0]*h),C),z(p.getDirectionOfProjection(),C,l),o.rotate(s,s,x(-360*b/T[1]*h),l),c[0]=-v[0],c[1]=-v[1],c[2]=-v[2],o.translate(s,s,c),i.transformMat4(n,g,s),i.transformMat4(r,m,s),u[0]=C[0]+g[0],u[1]=C[1]+g[1],u[2]=C[2]+g[2],i.transformMat4(a,u,s),p.setPosition(n[0],n[1],n[2]),p.setFocalPoint(r[0],r[1],r[2]),p.setViewUp(a[0]-n[0],a[1]-n[1],a[2]-n[2]),p.orthogonalizeViewUp(),d.resetCameraClippingRange(),e.getLightFollowCamera()&&d.updateLightsGeometryToFollowCamera(),t.previousPosition=f}}}(e,t)}var sC={newInstance:f.a.newInstance(iC,"vtkMouseCameraTrackballRotateManipulator"),extend:iC};var lC={};function cC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lC,n),f.a.obj(e,t),nC.extend(e,t,n),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballPanManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,n,r){if(r){var a=r,o=t.previousPosition;t.previousPosition=r;var i=n.getActiveCamera(),s=i.getPosition(),l=i.getFocalPoint();if(i.getParallelProjection()){i.orthogonalizeViewUp();var c=i.getViewUp(),u=[0,0,0];z(i.getViewPlaneNormal(),c,u);var d=e.getView().getSize()[1],f=(a.x-o.x)/d,p=(o.y-a.y)/d,g=i.getParallelScale();p*=2*g;var m=u[0]*(f*=2*g)+c[0]*p;s[0]+=m,l[0]+=m,m=u[1]*f+c[1]*p,s[1]+=m,l[1]+=m,m=u[2]*f+c[2]*p,s[2]+=m,l[2]+=m,i.setPosition(s[0],s[1],s[2]),i.setFocalPoint(l[0],l[1],l[2])}else{var v=t.center,h=e.getInteractorStyle(),y=h.computeWorldToDisplay(n,v[0],v[1],v[2])[2],b=h.computeDisplayToWorld(n,a.x,a.y,y),T=h.computeDisplayToWorld(n,o.x,o.y,y),C=[s[0]+(T[0]-b[0]),s[1]+(T[1]-b[1]),s[2]+(T[2]-b[2])],S=[l[0]+(T[0]-b[0]),l[1]+(T[1]-b[1]),l[2]+(T[2]-b[2])];i.setPosition(C[0],C[1],C[2]),i.setFocalPoint(S[0],S[1],S[2])}n.resetCameraClippingRange(),e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()}}}(e,t)}var uC={newInstance:f.a.newInstance(cC,"vtkMouseCameraTrackballPanManipulator"),extend:cC};var dC={zoomScale:0,flipDirection:!1};function fC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),f.a.setGet(e,t,["flipDirection"]),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballZoomManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView().getSize(),o=n.getActiveCamera(),i=t.flipDirection?-1:1;if(o.getParallelProjection())t.zoomScale=1.5/a[1]*i;else{var s=o.getClippingRange();t.zoomScale=s[1]/a[1]*1.5*i}},e.onMouseMove=function(e,n,r){if(r){var a=t.previousPosition.y-r.y,o=n.getActiveCamera();if(o.getParallelProjection()){var i=a*t.zoomScale;o.setParallelScale((1-i)*o.getParallelScale())}else{var s=o.getPosition(),l=o.getFocalPoint(),c=o.getDirectionOfProjection(),u=a*t.zoomScale,d=u*c[0];s[0]+=d,l[0]+=d,d=u*c[1],s[1]+=d,l[1]+=d,d=u*c[2],s[2]+=d,l[2]+=d,o.getFreezeFocalPoint()||o.setFocalPoint(l[0],l[1],l[2]),o.setPosition(s[0],s[1],s[2]),n.resetCameraClippingRange()}e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera(),t.previousPosition=r}},e.onScroll=function(e,t,n){if(n){var r=t.getActiveCamera(),a=1-n/10;r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/a):(r.dolly(a),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}}(e,t)}var pC={newInstance:f.a.newInstance(fC,"vtkMouseCameraTrackballZoomManipulator"),extend:fC};var gC={horizontalListener:null,verticalListener:null,scrollListener:null};function mC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gC,n),f.a.obj(e,t),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseRangeManipulator");var n=new Map;function r(e,t){return t*((e.max-e.min)/(e.step+1))}function a(e,t){var r=e.getValue(),a=t*e.scale+n.get(e),o=r+a,i=o-e.min,s=Math.round(i/e.step);o=e.min+e.step*s,o=Math.max(o,e.min),(o=Math.min(o,e.max))!==r?(e.setValue(o),n.set(e,0)):o===e.min&&a<0||o===e.max&&a>0?n.set(e,0):n.set(e,a)}e.setHorizontalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.horizontalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.horizontalListener,0),e.modified()},e.setVerticalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.verticalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.verticalListener,0),e.modified()},e.setScrollListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.scrollListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.scrollListener,0),e.modified()},e.removeHorizontalListener=function(){t.verticalListener&&(n.delete(t.verticalListener),delete t.verticalListener,e.modified())},e.removeVerticalListener=function(){t.horizontalListener&&(n.delete(t.horizontalListener),delete t.horizontalListener,e.modified())},e.removeScrollListener=function(){t.scrollListener&&(n.delete(t.scrollListener),delete t.scrollListener,e.modified())},e.removeAllListeners=function(){e.removeHorizontalListener(),e.removeVerticalListener(),e.removeScrollListener()},e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView(),o=a.getContainerSize()[0]/a.getSize()[0],i=a.getViewportSize(n);t.containerSize=i.map(function(e){return e*o})},e.onMouseMove=function(e,n,o){if((t.verticalListener||t.horizontalListener)&&o){if(t.horizontalListener){var i=(o.x-t.previousPosition.x)/t.containerSize[0],s=r(t.horizontalListener,i);a(t.horizontalListener,s)}if(t.verticalListener){var l=(o.y-t.previousPosition.y)/t.containerSize[1],c=r(t.verticalListener,l);a(t.verticalListener,c)}t.previousPosition=o}},e.onScroll=function(e,n,r){t.scrollListener&&r&&a(t.scrollListener,r*t.scrollListener.step)},e.onStartScroll=e.onScroll}(e,t)}var vC={newInstance:f.a.newInstance(mC,"vtkMouseRangeManipulator"),extend:mC};function hC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bC=f.a.vtkDebugMacro,TC=Km.States,CC={type:"StartInteractionEvent"},SC={type:"InteractionEvent"},PC={type:"EndInteractionEvent"};function wC(e,t,n,r,a,o){var i=e.getActiveCamera(),s=i.getFocalPoint(),l=(s=t.getInteractorStyle().computeWorldToDisplay(e,s[0],s[1],s[2]))[2],c=t.getInteractorStyle().computeDisplayToWorld(e,n,r,l),u=t.getInteractorStyle().computeDisplayToWorld(e,a,o,l),d=[u[0]-c[0],u[1]-c[1],u[2]-c[2]];s=i.getFocalPoint();var f=i.getPosition();i.setFocalPoint(d[0]+s[0],d[1]+s[1],d[2]+s[2]),i.setPosition(d[0]+f[0],d[1]+f[1],d[2]+f[2])}var xC={dollyToPosition:function(e,t,n,r){var a=n.getActiveCamera();if(a.getParallelProjection()){var o=r.getView().getSize(),i=o[0]/2,s=o[1]/2,l=t.x,c=t.y;wC(n,r,i,s,l,c),a.setParallelScale(a.getParallelScale()/e),wC(n,r,l,c,i,s)}else{var u=a.getFocalPoint(),d=a.getViewPlaneNormal();u=r.getInteractorStyle().computeWorldToDisplay(n,u[0],u[1],u[2]);var f=r.getInteractorStyle().computeDisplayToWorld(n,t.x,t.y,u[2]);a.setFocalPoint(f[0],f[1],f[2]),a.dolly(e),n.resetCameraClippingRange();var p=a.getPosition();u=a.getFocalPoint();var g=[0,0,0],m=d[0]*(u[0]-p[0])+d[1]*(u[1]-p[1])+d[2]*(u[2]-p[2]);m/=Math.pow(d[0],2)+Math.pow(d[1],2)+Math.pow(d[2],2),g[0]=p[0]+d[0]*m,g[1]=p[1]+d[1]*m,g[2]=p[2]+d[2]*m,a.setFocalPoint(g[0],g[1],g[2]),n.resetCameraClippingRange()}},translateCamera:wC,dollyByFactor:function(e,t,n){if(!Number.isNaN(n)){var r=t.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}};var OC={cachedMousePosition:null,currentManipulator:null,currentWheelManipulator:null,centerOfRotation:[0,0,0],rotationFactor:1};function MC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,OC,n),Km.extend(e,t,n),f.a.setGet(e,t,["rotationFactor"]),f.a.get(e,t,["mouseManipulators","keyboardManipulators","vrManipulators","gestureManipulators"]),f.a.setGetArray(e,t,["centerOfRotation"],3),function(e,t){t.classHierarchy.push("vtkInteractorStyleManipulator"),t.mouseManipulators=[],t.keyboardManipulators=[],t.vrManipulators=[],t.gestureManipulators=[],t.currentManipulator=null,t.currentWheelManipulator=null,t.centerOfRotation=[0,0,0],t.rotationFactor=1,e.removeAllManipulators=function(){e.removeAllMouseManipulators(),e.removeAllKeyboardManipulators(),e.removeAllVRManipulators(),e.removeAllGestureManipulators()},e.removeAllMouseManipulators=function(){t.mouseManipulators=[]},e.removeAllKeyboardManipulators=function(){t.keyboardManipulators=[]},e.removeAllVRManipulators=function(){t.vrManipulators=[]},e.removeAllGestureManipulators=function(){t.gestureManipulators=[]};var n=function(t,n){var r=n.indexOf(t);return-1!==r&&(n.splice(r,1),e.modified(),!0)};e.removeMouseManipulator=function(e){return n(e,t.mouseManipulators)},e.removeKeyboardManipulator=function(e){return n(e,t.keyboardManipulators)},e.removeVRManipulator=function(e){return n(e,t.vrManipulators)},e.removeGestureManipulator=function(e){return n(e,t.gestureManipulators)};var r=function(t,n){return-1===n.indexOf(t)&&(n.push(t),e.modified(),!0)};e.addMouseManipulator=function(e){return r(e,t.mouseManipulators)},e.addKeyboardManipulator=function(e){return r(e,t.keyboardManipulators)},e.addVRManipulator=function(e){return r(e,t.vrManipulators)},e.addGestureManipulator=function(e){return r(e,t.gestureManipulators)},e.getNumberOfMouseManipulators=function(){return t.mouseManipulators.length},e.getNumberOfKeyboardManipulators=function(){return t.keyboardManipulators.length},e.getNumberOfVRManipulators=function(){return t.vrManipulators.length},e.getNumberOfGestureManipulators=function(){return t.gestureManipulators.length},e.resetCurrentManipulator=function(){t.currentManipulator=null,t.currentWheelManipulator=null},e.handleLeftButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(1,n)},e.handleMiddleButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(2,n)},e.handleRightButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(3,n)},e.handleButton3D=function(n){n&&(t.currentManipulator=e.findVRManipulator(n.device,n.input,n.pressed),t.currentManipulator?(t.currentManipulator.onButton3D(e,n.pokedRenderer,t.state,n.device,n.input,n.pressed),n.pressed?e.startCameraPose():e.endCameraPose()):bC("No manipulator found"))},e.handleMove3D=function(n){t.currentManipulator&&t.state===TC.IS_CAMERA_POSE&&t.currentManipulator.onMove3D(e,n.pokedRenderer,t.state,n)},e.onButtonDown=function(n,r){t.currentManipulator||(t.currentManipulator=e.findMouseManipulator(n,r.shiftKey,r.controlKey,r.altKey),t.currentManipulator?(t.currentManipulator.setCenter&&t.currentManipulator.setCenter(t.centerOfRotation),t.currentManipulator.setRotationFactor&&t.currentManipulator.setRotationFactor(t.rotationFactor),t.currentManipulator.startInteraction(),t.currentManipulator.onButtonDown(t.interactor,r.pokedRenderer,r.position),t.interactor.requestAnimation(e.onButtonDown),e.invokeStartInteractionEvent(CC)):bC("No manipulator found"))},e.findMouseManipulator=function(e,n,r,a){for(var o=null,i=t.mouseManipulators.length;i--;){var s=t.mouseManipulators[i];s&&s.getButton()===e&&s.getShift()===n&&s.getControl()===r&&s.getAlt()===a&&s.isDragEnabled()&&(o=s)}return o},e.findVRManipulator=function(e,n){for(var r=null,a=t.vrManipulators.length;a--;){var o=t.vrManipulators[a];o&&o.getDevice()===e&&o.getInput()===n&&(r=o)}return r},e.handleLeftButtonRelease=function(){e.onButtonUp(1)},e.handleMiddleButtonRelease=function(){e.onButtonUp(2)},e.handleRightButtonRelease=function(){e.onButtonUp(3)},e.onButtonUp=function(n){t.currentManipulator&&t.currentManipulator.getButton&&t.currentManipulator.getButton()===n&&(t.currentManipulator.onButtonUp(t.interactor),t.currentManipulator.endInteraction(),t.currentManipulator=null,t.interactor.cancelAnimation(e.onButtonDown),e.invokeEndInteractionEvent(PC))},e.handleStartMouseWheel=function(n){if(!t.currentWheelManipulator){for(var r=null,a=t.mouseManipulators.length;a--;){var o=t.mouseManipulators[a];o&&o.isScrollEnabled()&&o.getShift()===n.shiftKey&&o.getControl()===n.controlKey&&o.getAlt()===n.altKey&&(r=o)}r?(t.currentWheelManipulator=r,t.currentWheelManipulator.onStartScroll(t.interactor,n.pokedRenderer,n.spinY),t.currentWheelManipulator.startInteraction(),t.interactor.requestAnimation(e.handleStartMouseWheel),e.invokeStartInteractionEvent(CC)):bC("No manipulator found")}},e.handleEndMouseWheel=function(){t.currentWheelManipulator&&t.currentWheelManipulator.onEndScroll&&(t.currentWheelManipulator.onEndScroll(t.interactor),t.currentWheelManipulator.endInteraction(),t.currentWheelManipulator=null,t.interactor.cancelAnimation(e.handleStartMouseWheel),e.invokeEndInteractionEvent(PC))},e.handleMouseWheel=function(n){t.currentWheelManipulator&&t.currentWheelManipulator.onScroll&&(t.currentWheelManipulator.onScroll(t.interactor,n.pokedRenderer,n.spinY,t.cachedMousePosition),e.invokeInteractionEvent(SC))},e.handleMouseMove=function(n){t.cachedMousePosition=n.position,t.currentManipulator&&t.currentManipulator.onMouseMove&&(t.currentManipulator.onMouseMove(t.interactor,n.pokedRenderer,n.position),e.invokeInteractionEvent(SC))},e.handleKeyPress=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyPress}).forEach(function(r){r.onKeyPress(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyDown=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyDown}).forEach(function(r){r.onKeyDown(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyUp=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyUp}).forEach(function(r){r.onKeyUp(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleStartPinch=function(n){e.startDolly();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPinchEnabled()&&(a.onStartPinch(t.interactor,n.scale),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPinch),e.invokeStartInteractionEvent(CC)},e.handleEndPinch=function(){e.endDolly();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPinchEnabled()&&(r.onEndPinch(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPinch),e.invokeEndInteractionEvent(PC)},e.handleStartRotate=function(n){e.startRotate();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isRotateEnabled()&&(a.onStartRotate(t.interactor,n.rotation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartRotate),e.invokeStartInteractionEvent(CC)},e.handleEndRotate=function(){e.endRotate();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isRotateEnabled()&&(r.onEndRotate(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartRotate),e.invokeEndInteractionEvent(PC)},e.handleStartPan=function(n){e.startPan();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPanEnabled()&&(a.onStartPan(t.interactor,n.translation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPan),e.invokeStartInteractionEvent(CC)},e.handleEndPan=function(){e.endPan();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPanEnabled()&&(r.onEndPan(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPan),e.invokeEndInteractionEvent(PC)},e.handlePinch=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPinchEnabled()&&(o.onPinch(t.interactor,n.pokedRenderer,n.scale),a++)}a&&e.invokeInteractionEvent(SC)},e.handlePan=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPanEnabled()&&(o.onPan(t.interactor,n.pokedRenderer,n.translation),a++)}a&&e.invokeInteractionEvent(SC)},e.handleRotate=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isRotateEnabled()&&(o.onRotate(t.interactor,n.pokedRenderer,n.rotation),a++)}a&&e.invokeInteractionEvent(SC)}}(e,t)}var AC=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,IC,n),f.a.obj(e,t),f.a.get(e,t,["renderer"]),f.a.getArray(e,t,["selectionPoint","pickPosition"]),f.a.setGet(e,t,["pickFromList","pickList"]),function(e,t){t.classHierarchy.push("vtkAbstractPicker"),e.initialize=function(){t.renderer=null,t.selectionPoint[0]=0,t.selectionPoint[1]=0,t.selectionPoint[2]=0,t.pickPosition[0]=0,t.pickPosition[1]=0,t.pickPosition[2]=0},e.initializePickList=function(){t.pickList=[]},e.addPickList=function(e){t.pickList.push(e)},e.deletePickList=function(e){var n=t.pickList.indexOf(e);-1!==n&&t.pickList.splice(n,1)}}(e,t)}var EC={newInstance:f.a.newInstance(RC,"vtkAbstractPicker"),extend:RC};function DC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var LC=f.a.vtkErrorMacro,NC=f.a.vtkWarningMacro;function BC(e,t){t.classHierarchy.push("vtkPicker");var n=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kC,n),EC.extend(e,t,n),f.a.setGet(e,t,["tolerance"]),f.a.setGetArray(e,t,["mapperPosition"],3),f.a.get(e,t,["mapper","dataSet","actors","pickedPositions"]),f.a.event(e,t,"pickChange"),BC(e,t)}var GC={newInstance:f.a.newInstance(FC,"vtkPicker"),extend:FC},_C=f.a.vtkErrorMacro;var UC={pointId:-1,pointIJK:[],useCells:!1};function jC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,UC,n),GC.extend(e,t,n),f.a.getArray(e,t,["pointIJK"]),f.a.get(e,t,["pointId"]),f.a.setGet(e,t,["useCells"]),function(e,t){t.classHierarchy.push("vtkPointPicker"),e.intersectWithLine=function(n,r,a,o){var i=Number.MAX_VALUE;if(o.isA("vtkImageMapper")){var s=o.intersectWithLineForPointPicking(n,r);s&&(i=s.t,t.pointIJK=s.ijk)}else o.isA("vtkMapper")&&(i=e.intersectActorWithLine(n,r,a,o));return i},e.intersectActorWithLine=function(e,n,r,a){var o=a.getInputData(),i=0,s=o.getPoints().getNumberOfPoints();if(s<=i)return 2;for(var l=[],c=0;c<3;c++)l[c]=n[c]-e[c];var u,d=W(l,l);if(0===d)return _C("Cannot process points"),2;var f=-1,p=Number.MAX_VALUE,g=Number.MAX_VALUE,m=[],v=[],h=[],y=o.getPoints();if(t.useCells)for(var b=o.getPolys().getData(),T=b[0],C=o.getPolys().getNumberOfCells(),S=0;S=0&&u<=1&&u<=p+t.tolerance){for(var M=0,A=0;A<3;A++){m[A]=e[A]+u*l[A];var I=Math.abs(h[A]-m[A]);I>M&&(M=I)}M<=r&&M=0&&u<=1&&u<=p+t.tolerance){for(var R=0,E=0;E<3;E++){m[E]=e[E]+u*l[E];var D=Math.abs(h[E]-m[E]);D>R&&(R=D)}R<=r&&Re.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qC,n),t.normal=[0,0,1],t.center=[0,0,0],f.a.obj(e,t),f.a.setGet(e,t,["xResolution","yResolution"]),f.a.setGetArray(e,t,["origin"],3),f.a.getArray(e,t,["point1","point2","normal","center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkPlaneSource"),e.requestData=function(n,r){if(!t.deleted){var a=r[0],o=a?a.getPoints().getDataType():"Float32Array",i=eh.newInstance(),s=new Float32Array(3),l=new Float32Array(3);if(G(t.point1,t.origin,s),G(t.point2,t.origin,l),e.updatePlane(s,l)){var c=t.xResolution,u=t.yResolution,d=(c+1)*(u+1),p=c*u,g=f.a.newTypedArray(o,3*d);i.getPoints().setData(g,3);var m=new Uint32Array(5*p);i.getPolys().setData(m,1);var v=new Float32Array(3*d),h=Qe.newInstance({numberOfComponents:3,values:v,name:"Normals"});i.getPointData().setNormals(h);var y=new Float32Array(2*d),b=Qe.newInstance({numberOfComponents:2,values:y,name:"TextureCoordinates"});i.getPointData().setTCoords(b);for(var T=new Float32Array(2),C=0,S=0;S2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nS,n),f.a.obj(e,t),f.a.set(e,t,["property"]),f.a.get(e,t,["value"]),f.a.setGet(e,t,["coordinateSystem","referenceCoordinate","renderer"]),f.a.getArray(e,t,["value"],3),function(e,t){t.classHierarchy.push("vtkCoordinate"),e.setValue=function(){if(t.deleted)return tS("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1?1e3*e:1e3;this.actor.getMapper().setMaximumSamplesPerRay(t),this.renderWindow.render()}get resolution(){return Math.round(1/this._raysDistance)}get presetsList(){return wT.rgbPresetNames}set widgetElement(e){this.PGwidgetElement=e;let t=e.offsetHeight?e.offsetHeight-5:100,n=e.offsetWidth?e.offsetWidth-5:300;this.PGwidget.setSize(n,t),this.PGwidget.setContainer(this.PGwidgetElement),this.PGwidget.render()}set rescaleLUT(e){let t;this._rescaleLUT=e,t=this._rescaleLUT&&this.PGwidget?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),this.ctfun.setMappingRange(...t),this.ctfun.updateRange()}set rangeLUT([e,t]){this._rangeLUT=[e,t],this.actor.getProperty().getRGBTransferFunction(0).setMappingRange(e,t)}set cropWidget(e){this._cropWidget||this.setupCropWidget(),this._cropWidget.setVisibility(e),this._widgetManager.renderWidgets(),this.renderWindow.render()}set lut(e){const t=vs.newInstance();let n;t.applyColorMap(wT.getPresetByName(e)),n=this._rescaleLUT&&this._PGwidgetLoaded?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),t.setMappingRange(...n),t.updateRange(),this.actor.getProperty().setRGBTransferFunction(0,t);const r=Ts.newInstance();this.actor.getProperty().setScalarOpacity(0,r),this.ctfun=t,this.ofun=r,this.updateWidget()}set blurOnInteraction(e){this._blurOnInteraction=e;let t=this.renderWindow.getInteractor(),n=this.actor.getMapper();e?(t.onLeftButtonPress(()=>{n.setSampleDistance(5*this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()})):(t.onLeftButtonPress(()=>{n.setSampleDistance(this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()}))}initVR(){const e=fh.newInstance();e.setContainer(this.element),e.setBackground([0,0,0]),e.onResize(()=>{let t=[e.getContainer().getBoundingClientRect().width,e.getContainer().getBoundingClientRect().height];e.getRenderWindow().getViews()[0].setSize(t),this.VERBOSE&&console.log("resize",t)}),window.addEventListener("resize",t=>{e.resize()}),e.resize(),this.renderer=e.getRenderer(),this.renderWindow=e.getRenderWindow(),this._genericRenderWindow=e,this.setupPGwidget()}setImage(e){this.renderer.removeAllVolumes();let t=Ys(e);this.actor=t,this.lut="Grayscale",this.resolution=2,this.renderer.addVolume(t),this.setCamera(t.getCenter()),this.PGwidget&&(this.updateWidget(),this.setWidgetCallbacks()),this.setActorProperties(),this.setupInteractor(),this.blurOnInteraction=!0,this._genericRenderWindow.resize(),this.renderer.resetCamera(),this.renderWindow.render()}setCamera(e){this.renderer.resetCamera(),this.renderer.getActiveCamera().zoom(1.5),this.renderer.getActiveCamera().elevation(70),this.renderer.getActiveCamera().setViewUp(0,0,1),this.renderer.getActiveCamera().setFocalPoint(e[0],e[1],e[2]),this.renderer.getActiveCamera().setPosition(e[0],e[1]-2e3,e[2]),this.renderer.getActiveCamera().setThickness(1e4),this.renderer.getActiveCamera().setParallelProjection(!0)}getLutList(){return wT.rgbPresetNames}setActorProperties(){this.actor.getProperty().setScalarOpacityUnitDistance(0,30),this.actor.getProperty().setInterpolationTypeToLinear(),this.actor.getProperty().setUseGradientOpacity(0,!0),this.actor.getProperty().setGradientOpacityMinimumValue(0,2),this.actor.getProperty().setGradientOpacityMinimumOpacity(0,0),this.actor.getProperty().setGradientOpacityMaximumValue(0,20),this.actor.getProperty().setGradientOpacityMaximumOpacity(0,2),this.actor.getProperty().setShade(!0),this.actor.getProperty().setAmbient(.3),this.actor.getProperty().setDiffuse(.7),this.actor.getProperty().setSpecular(.3),this.actor.getProperty().setSpecularPower(.8)}setupCropWidget(){const e=Jh.newInstance();e.setRenderer(this.renderer);const t=mT.newInstance(),n=(e.addWidget(t),t.getWidgetState().getCroppingPlanes());n.onModified(()=>{const e=function(e,t){const n=l.create();o.getRotation(n,e.getIndexToWorld());const r=e=>{const t=[0,0,0];return i.transformQuat(t,e,n),t},[a,s,c,u,d,f]=t,p=e.indexToWorld([a,c,d]),g=e.indexToWorld([s,u,f]);return[ft.newInstance({normal:r([1,0,0]),origin:p}),ft.newInstance({normal:r([-1,0,0]),origin:g}),ft.newInstance({normal:r([0,1,0]),origin:p}),ft.newInstance({normal:r([0,-1,0]),origin:g}),ft.newInstance({normal:r([0,0,1]),origin:p}),ft.newInstance({normal:r([0,0,-1]),origin:g})]}(a,n.getPlanes());r.removeAllClippingPlanes(),e.forEach(e=>{r.addClippingPlane(e)}),r.modified()});let r=this.actor.getMapper(),a=r.getInputData();t.copyImageDataDescription(a),t.set({faceHandlesEnabled:!0,edgeHandlesEnabled:!0,cornerHandlesEnabled:!0}),e.enablePicking(),this._widgetManager=e,this._cropWidget=t,this.renderWindow.render()}setupPGwidget(){let e=this.PGwidgetElement?this.PGwidgetElement.offsetWidth-5:300,t=this.PGwidgetElement?this.PGwidgetElement.offsetHeight-5:100;const n=eC.newInstance({numberOfBins:256,size:[e,t]});n.updateStyle({backgroundColor:"rgba(255, 255, 255, 0.6)",histogramColor:"rgba(50, 50, 50, 0.8)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(255, 255, 255)",handleColor:"rgb(50, 150, 50)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",strokeWidth:1,activeStrokeWidth:1.5,buttonStrokeWidth:1,handleWidth:1,iconSize:0,padding:1}),n.setContainer(this.PGwidgetElement),window.addEventListener("resize",e=>{n.setSize(this.PGwidgetElement.offsetWidth-5,this.PGwidgetElement.offsetHeight-5),n.render()}),this.PGwidget=n}updateWidget(){const e=this.actor.getMapper().getInputData().getPointData().getScalars();this.PGwidget.setDataArray(e.getData());let t=this.PGwidget.getGaussians();if(t.length>0){let e=t[0];e.position=this.wl,e.width=this.ww,this.PGwidget.setGaussians([e])}else{const e=1,t=0,n=1.8;this.PGwidget.addGaussian(this.wl,e,this.ww,t,n)}this.PGwidget.applyOpacity(this.ofun),this.PGwidget.setColorTransferFunction(this.ctfun),this.ctfun.onModified(()=>{this.PGwidget.render(),this.renderWindow.render()}),this._PGwidgetLoaded=!0}setWidgetCallbacks(){this.PGwidget.bindMouseListeners(),this.PGwidget.onAnimation(e=>{e?this.renderWindow.getInteractor().requestAnimation(this.PGwidget):this.renderWindow.getInteractor().cancelAnimation(this.PGwidget)}),this.PGwidget.onOpacityChange(e=>{if(this.PGwidget=e,this.gaussians=e.getGaussians().slice(),this.PGwidget.applyOpacity(this.ofun),this.renderWindow.getInteractor().isAnimating()||this.renderWindow.render(),this._rescaleLUT&&this.PGwidget){const e=this.PGwidget.getOpacityRange();this.ctfun.setMappingRange(...e),this.ctfun.updateRange()}})}setupInteractor(){const e=sC.newInstance({button:1}),t=uC.newInstance({button:3,control:!0}),n=pC.newInstance({button:3,scrollEnabled:!0}),r=vC.newInstance({button:1,shift:!0});let a=this;r.setVerticalListener(-1,1,.001,function(){return a.wl},function(e){let t=a.wl+(e-a.wl)/25;a.wl=t;let n=a.PGwidget.getGaussians().slice();n[0].position=a.wl,a.PGwidget.setGaussians(n)}),r.setHorizontalListener(.1,2.1,.001,function(){return a.ww},function(e){let t=a.ww+(e-a.ww)/5;a.ww=t;let n=a.PGwidget.getGaussians().slice();n[0].width=a.ww,a.PGwidget.setGaussians(n)});const o=AC.newInstance();o.addMouseManipulator(r),o.addMouseManipulator(e),o.addMouseManipulator(t),o.addMouseManipulator(n),o.setCenterOfRotation(this.actor.getCenter()),this.renderWindow.getInteractor().setInteractorStyle(o),this.renderWindow.getInteractor().onMouseWheel(()=>this.resetMeasurementState()),this.renderWindow.getInteractor().onRightButtonPress(()=>this.resetMeasurementState())}resetMeasurementState(e){this._measurementState?(this._measurementState.p1=new Array(2),this._measurementState.p2=new Array(2),this._measurementState.p3=new Array(2),this._measurementState.p1_world=new Array(2),this._measurementState.p2_world=new Array(2),this._measurementState.p3_world=new Array(2),this._measurementState.label=null):e&&(e.p1=new Array(2),e.p2=new Array(2),e.p3=new Array(2),e.p1_world=new Array(2),e.p2_world=new Array(2),e.p3_world=new Array(2),e.label=null)}setTool(e,t,n){switch(this._leftButtonCb&&this._leftButtonCb.unsubscribe(),e){case"Length":case"Angle":this._initPicker(n,e);break;case"Rotation":this.resetMeasurementState(n),this.setupInteractor();break;default:console.warn("No tool found for",e)}}_initPicker(e,t){this.blurOnInteraction=!1;let n=this.renderWindow.getInteractor().getInteractorStyle().getMouseManipulators().filter(e=>"vtkMouseCameraTrackballRotateManipulator"==e.getClassName()).pop();this.renderWindow.getInteractor().getInteractorStyle().removeMouseManipulator(n);const r=WC.newInstance();if(r.setPickFromList(1),r.initializePickList(),!this._pickingPlane){const e=ZC.newInstance({xResolution:1e3,yResolution:1e3});let t=this.renderer.getActiveCamera();e.setPoint1(0,0,1e3),e.setPoint2(1e3,0,0),e.setCenter(this.actor.getCenter()),e.setNormal(t.getDirectionOfProjection());const n=sf.newInstance();n.setInputConnection(e.getOutputPort());const r=sh.newInstance();r.setMapper(n),r.getProperty().setOpacity(.01),this.renderer.addActor(r),this._pickingPlane=e,this._planeActor=r}r.addPickList(this._planeActor),this._leftButtonCb=this.renderWindow.getInteractor().onLeftButtonPress(n=>{if(this.renderer!==n.pokedRenderer)return;const a=n.position,o=[a.x,a.y,0];if(r.pick(o,this.renderer),0===r.getActors().length){const e=r.getPickPosition();this.VERBOSE&&console.log(`No point picked, default: ${e}`)}else{const n=r.getPickedPositions()[0];this.VERBOSE&&console.log(`Picked: ${n}`);const a=aS.newInstance();a.setCoordinateSystemToWorld(),a.setValue(...n);const o=a.getComputedDisplayValue(this.renderer);!function(e,t,n,r){oS[r](e,t,n)}(e,o,n,t),this.VERBOSE&&console.log(e),this._measurementState=e}this.renderWindow.render()})}resetView(){let e=this.actor.getCenter();console.log(e),this.setCamera(e),this.renderWindow.render()}resize(){this._genericRenderWindow.resize()}destroy(){this.element=null,this._genericRenderWindow.delete(),this._genericRenderWindow=null,this.actor&&(this.actor.getMapper().delete(),this.actor.delete(),this.actor=null),this._planeActor&&(this._planeActor.getMapper().delete(),this._planeActor.delete(),this._planeActor=null),this.PGwidgetElement&&(this.PGwidgetElement=null,this.PGwidget.getCanvas().remove(),this.PGwidget.delete(),this.PGwidget=null,this.gaussians=null),this._cropWidget&&(this._cropWidget.delete(),this._cropWidget=null)}}function uS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRSlice"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulator=uC.newInstance({button:1,shift:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n={sliceNormal:[0,0,0],sliceRange:[0,0],slicePosition:[0,0,0]};function r(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}let a=null,o=null;const i=e.setInteractor;e.setInteractor=(n=>{if(i(n),a&&(a.unsubscribe(),a=null),o&&(o.unsubscribe(),o=null),n){const i=n.getCurrentRenderer().getActiveCamera();a=i.onModified(()=>{r(),e.modified()}),o=n.onAnimation(()=>{const{slabThickness:e}=t,n=i.getDistance(),r=n-e/2,a=n+e/2;i.setClippingRange(r,a)})}}),e.handleMouseMove=f.a.chain(e.handleMouseMove,()=>{const e=t.interactor.getCurrentRenderer(),{slabThickness:n}=t,r=e.getActiveCamera(),a=r.getDistance(),o=a-n/2,i=a+n/2;r.setClippingRange(o,i)});const s=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(s(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.getSlice=(()=>{const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=e.getSliceNormal(),a=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]),o=n.getFocalPoint();return a.apply(o),o[0]}),e.setSlice=(n=>{const r=t.interactor.getCurrentRenderer().getActiveCamera();if(t.volumeMapper){const a=e.getSliceRange(),o=t.volumeMapper.getBounds(),i=function(e,t,n){return en?n:e}(n,...a),s=[(o[0]+o[1])/2,(o[2]+o[3])/2,(o[4]+o[5])/2],l=r.getDistance(),c=r.getDirectionOfProjection();Fe.normalize(c);const u=(a[1]+a[0])/2,d=[s[0]-c[0]*u,s[1]-c[1]*u,s[2]-c[2]*u],f=[d[0]+c[0]*i,d[1]+c[1]*i,d[2]+c[2]*i],p=[f[0]-c[0]*l,f[1]-c[1]*l,f[2]-c[2]*l];r.setPosition(...p),r.setFocalPoint(...f);const g=e.getOnScroll();g&&g(f)}}),e.getSliceRange=(()=>{if(t.volumeMapper){const r=e.getSliceNormal();if(r[0]===n.sliceNormal[0]&&r[1]===n.sliceNormal[1]&&r[2]===n.sliceNormal[2])return n.sliceRange;const a=function(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}(t.volumeMapper.getBounds()),o=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);a.forEach(e=>o.apply(e));let i=1/0,s=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>s&&(s=t),t{if(t.volumeMapper&&t.interactor){return t.interactor.getCurrentRenderer().getActiveCamera().getDirectionOfProjection()}return[0,0,0]}),e.setSliceNormal=((n,r=[0,1,0])=>{const a=t.interactor.getCurrentRenderer().getActiveCamera();t.sliceNormal=[...n],t.viewUp=[...r];const o=[...n],i=[...r];if(t.volumeMapper){Fe.normalize(o);let n=t.volumeMapper;!t.volumeMapper.getInputData&&t.volumeMapper.getMapper&&(n=t.volumeMapper.getMapper());let r=function(e){if(9!==e.length)throw Error("Array not length 9");return[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]]]}(n.getInputData().getDirection());Fe.transpose3x3(r,r),Fe.multiply3x3_vect3(r,o,o);let s=a.getFocalPoint(),l=a.getDistance(),c=a.getViewAngle();if(Number.isNaN(l)||void 0===l){const e=t.volumeMapper.getBounds(),n=Math.sqrt(Fe.distance2BetweenPoints([e[0],e[2],e[4]],[e[1],e[3],e[5]]));s=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],c=90,l=n/(2*Math.tan(c/360*Math.PI))}const u=[s[0]-o[0]*l,s[1]-o[1]*l,s[2]-o[2]*l];Fe.multiply3x3_vect3(r,i,i);const{slabThickness:d}=t;a.setPosition(...u),a.setDistance(l),a.setDirectionOfProjection(...o),a.setViewUp(...i),a.setViewAngle(c),a.setClippingRange(l-d/2,l+d/2),e.setCenterOfRotation(s)}}),e.setSlabThickness=(e=>{t.slabThickness=e;const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=n.getDistance();n.setClippingRange(r-e/2,r+e/2)}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulator),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),r()}const dS={slabThickness:.1};function fS(e,t,n={}){Object.assign(t,dS,n),AC.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onScroll"]),f.a.get(e,t,["slabThickness","viewUp"]),uS(e,t)}const pS=f.a.newInstance(fS,"vtkInteractorStyleMPRSlice");var gS=Object.assign({newInstance:pS,extend:fS});const{States:mS}=Gm;function vS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRWindowLevel"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n=e.handleMouseMove;e.handleMouseMove=(r=>{const a=[r.position.x,r.position.y];t.state===mS.IS_WINDOW_LEVEL&&(e.windowLevelFromMouse(a),e.invokeInteractionEvent({type:"InteractionEvent"})),n&&n(r)});const r=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(r(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.windowLevelFromMouse=(([n,r])=>{const a=t.volumeMapper.getMapper().getInputData().getPointData().getScalars().getRange(),o=(a[1]-a[0])/1024*t.levelScale,i=(n-t.wlStartPos[0])*o,s=(r-t.wlStartPos[1])*o*.5;let{windowWidth:l,windowCenter:c}=e.getWindowLevel();l=Math.max(1,Math.round(l+i)),c=Math.round(c+s),e.setWindowLevel(l,c),t.wlStartPos=[n,r];const u=e.getOnLevelsChanged();u&&u({windowCenter:c,windowWidth:l})}),e.getWindowLevel=(()=>{return function(e,t){const n=Math.abs(e-t);return{windowWidth:n,windowCenter:e+n/2}}(...t.volumeMapper.getProperty().getRGBTransferFunction(0).getMappingRange().slice())}),e.setWindowLevel=((e,n)=>{const r=function(e,t){return{lower:t-e/2,upper:t+e/2}}(e,n);t.volumeMapper.getProperty().getRGBTransferFunction(0).setMappingRange(r.lower,r.upper)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(n=>{t.wlStartPos=[n.position.x,n.position.y],n.shiftKey||n.controlKey?a&&a(n):e.startWindowLevel()}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case mS.IS_WINDOW_LEVEL:e.endWindowLevel();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const hS={wlStartPos:[0,0],levelScale:1};function yS(e,t,n={}){Object.assign(t,hS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onLevelsChanged","levelScale"]),vS(e,t)}const bS=f.a.newInstance(yS,"vtkInteractorStyleMPRWindowLevel");var TS=Object.assign({newInstance:bS,extend:yS});const{States:CS}=Gm;function SS(e,t){function n(t){const n=[t.position.x,t.position.y],r=t.pokedRenderer,a=e.getOnClickCallback(),o=aS.newInstance();o.setCoordinateSystemToDisplay(),o.setValue(n[0],n[1],0);const i=o.getComputedWorldValue(r);i.length&&a({worldPos:i,displayPos:n}),e.invokeInteractionEvent({type:"InteractionEvent"})}t.classHierarchy.push("vtkInteractorStyleMPRCrosshairs"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const r=e.handleMouseMove;e.handleMouseMove=(e=>{t.state===CS.IS_SLICE&&n(e),r&&r(e)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(r=>{r.shiftKey||r.controlKey?a&&a(r):t.volumeMapper&&(n(r),e.startSlice())});const o=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(o(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case CS.IS_SLICE:e.endSlice();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const PS={};function wS(e,t,n={}){Object.assign(t,PS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onClickCallback"]),SS(e,t)}const xS=f.a.newInstance(wS,"vtkInteractorStyleMPRCrosshairs");var OS=Object.assign({newInstance:xS,extend:wS});const{States:MS}=Gm;function AS(e,t){function n(){e.removeAllMouseManipulators(),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),e.addMouseManipulator(t.leftManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}t.classHierarchy.push("vtkInteractorStyleMPRPanZoom"),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1}),e.setLeftButton=(e=>{"zoom"==e?t.leftManipulator=pC.newInstance({button:1}):"pan"==e?t.leftManipulator=uC.newInstance({button:1}):console.error("No tool found for",e),n()}),t.leftButtonTool||(t.leftButtonTool="pan"),e.setLeftButton(t.leftButtonTool),n();const r=e.setInteractor;e.setInteractor=(n=>{if(r(n),null===n)return;let a="pan"==t.leftButtonTool?e.getOnPanChanged():e.getOnZoomChanged();n.onAnimation(a)})}const IS={wlStartPos:[0,0],levelScale:1};function RS(e,t,n={}){Object.assign(t,IS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onPanChanged","onZoomChanged","levelScale"]),AS(e,t)}const ES=f.a.newInstance(RS,"vtkInteractorStyleMPRPanZoom");var DS=Object.assign({newInstance:ES,extend:RS});const VS=[[0,0,1],[-1,0,0],[0,1,0]],LS=[[0,-1,0],[0,0,1],[0,0,1]];class NS{constructor(e,t,n){this.VERBOSE=!1,this._key=e,this._element=n,this._volume=null,this._renderer=null,this._parallel=!0,this.slicePlaneNormal=VS[t],this.sliceViewUp=LS[t],this.slicePlaneXRotation=0,this.slicePlaneYRotation=0,this.viewRotation=0,this._sliceThickness=.1,this._blendMode="MIP",this.window={width:0,center:0},this._cachedSlicePlane=[...this.slicePlaneNormal],this._cachedSliceViewUp=[...this.sliceViewUp],this._genericRenderWindow=fh.newInstance({background:[0,0,0]}),this._genericRenderWindow.setContainer(n),this._renderWindow=this._genericRenderWindow.getRenderWindow(),this._renderer=this._genericRenderWindow.getRenderer(),this._parallel&&this._renderer.getActiveCamera().setParallelProjection(!0),this._genericRenderWindow.getOpenGLRenderWindow().buildPass(!0),this.onResize()}set blendMode(e){this._blendMode=e,this.updateBlendMode(this._sliceThickness,this._blendMode)}set sliceThickness(e){this._sliceThickness=e;const t=this._renderWindow.getInteractor().getInteractorStyle();t.setSlabThickness&&t.setSlabThickness(this._sliceThickness),this.updateBlendMode(this._sliceThickness,this._blendMode)}set wwwl([e,t]){this.window.center=t,this.window.width=e,this._genericRenderWindow.getRenderWindow().render()}get camera(){return this._genericRenderWindow.getRenderer().getActiveCamera()}initView(e,t,n,r){this._volume=e;const a=gS.newInstance();a.setOnScroll(n),this._renderWindow.getInteractor().setInteractorStyle(a),this.VERBOSE&&console.log(this._volumes);const o=this._volume.getMapper();a.setVolumeMapper(o);const i=a.getSliceRange();a.setSlice((i[0]+i[1])/2),this.updateVolumesForRendering(),this.VERBOSE&&console.log("view data",this._key,t.views[this.key]),this.updateSlicePlane(t.views[this._key]),this.fill2DView(this._genericRenderWindow,this._key),r()}updateVolumesForRendering(){this._renderer.removeAllVolumes(),this._volume&&(this._volume.isA("vtkVolume")?this._renderer.addVolume(this._volume):console.warn("Data to is not vtkVolume data")),this._renderWindow.render()}updateSlicePlane(e){let t=this._cachedSlicePlane,n=this._cachedSliceViewUp;this.VERBOSE&&console.log(e);let r=[];i.cross(r,e.sliceViewUp,e.slicePlaneNormal),i.normalize(r,r);let a=e.sliceViewUp;const s=o.create();o.rotate(s,s,Xs(e.slicePlaneYRotation),a),o.rotate(s,s,Xs(e.slicePlaneXRotation),r),this.VERBOSE&&console.log(t,e.slicePlaneNormal,s),i.transformMat4(t,e.slicePlaneNormal,s);const c=l.create();l.setAxisAngle(c,t,Xs(-e.viewRotation)),l.normalize(c,c);const u=l.create();l.setAxisAngle(u,r,Xs(e.slicePlaneXRotation)),l.normalize(u,u);const d=l.create();l.add(d,u,c),i.transformQuat(n,e.sliceViewUp,c);const f=this._genericRenderWindow.getRenderWindow(),p=f.getInteractor().getInteractorStyle();p&&p.setSliceNormal&&p.setSliceNormal(t,n),f.render()}fill2DView(){const e=this._renderer.computeVisiblePropBounds(),t=[(e[1]-e[0])/2,(e[3]-e[2])/2,(e[5]-e[4])/2],n=this._genericRenderWindow.getContainer().clientWidth/this._genericRenderWindow.getContainer().clientHeight;let r,a;"left"===this._key?(r=t[1],a=t[2]):"front"===this._key?(r=t[0],a=t[2]):"top"===this._key&&(r=t[0],a=t[1]),n>=r/a?this._renderer.getActiveCamera().setParallelScale(a+1):this._renderer.getActiveCamera().setParallelScale(r/n+1),this.onResize()}onResize(){this._genericRenderWindow.resize()}updateBlendMode(e,t){if(e>=1)switch(t){case"MIP":this._volume.getMapper().setBlendModeToMaximumIntensity();break;case"MINIP":this._volume.getMapper().setBlendModeToMinimumIntensity();break;case"AVG":this._volume.getMapper().setBlendModeToAverageIntensity();break;case"none":default:this._volume.getMapper().setBlendModeToComposite()}else this._volume.getMapper().setBlendModeToComposite();this._renderWindow.render()}setInteractor(e){const t=this._genericRenderWindow.getRenderWindow(),n=t.getInteractor().getInteractorStyle();t.getInteractor().setInteractorStyle(e),e.setInteractor(t.getInteractor()),t.getInteractor().setInteractorStyle(e),e.setSliceNormal&&n.getSliceNormal()&&e.setSliceNormal(n.getSliceNormal(),n.getViewUp()),e.setSlabThickness&&n.getSlabThickness()&&e.setSlabThickness(n.getSlabThickness()),e.setVolumeMapper(this._volume)}destroy(){this.VERBOSE&&console.log("DESTROY",this._key),this.VERBOSE=null,this._key=null,this._element=null,this._volume.getMapper()&&this._volume.getMapper().delete(),this._volume.delete(),this._volume=null,this._renderer.delete(),this._renderer=null,this._parallel=null,this.slicePlaneNormal=null,this.sliceViewUp=null,this.slicePlaneXRotation=null,this.slicePlaneYRotation=null,this.viewRotation=null,this._sliceThickness=null,this._blendMode=null,this.window=null,this._cachedSlicePlane=null,this._cachedSliceViewUp=null,this._genericRenderWindow.delete()}}class BS{constructor(e){this.VERBOSE=!1,this.syncWindowLevels=!0,this._activeTool=null,this.elements=e,this.volume=null,this.sliceIntersection=[0,0,0],this.mprViews={},this.initMPR()}set wwwl([e,t]){const n=t-e/2,r=t+e/2;this.volume.getProperty().getRGBTransferFunction(0).setMappingRange(n,r),Object.keys(this.elements).forEach((n,r)=>{this.mprViews[n].wwwl=[e,t]})}initMPR(){Object.keys(this.elements).forEach((e,t)=>{try{this.mprViews[e]=new NS(e,t,this.elements[e].element)}catch(t){console.error("Error creating MPRView",e),console.error(t)}}),this.VERBOSE&&console.log("initialized")}getInitialState(){let e=Object.keys(this.mprViews).reduce((e,t)=>{let{slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,_sliceThickness:s,_blendMode:l,window:c}=e[t];return e[t]={slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,sliceThickness:s,blendMode:l,window:c},e},Object.assign({},this.mprViews));return{interactorCenters:Object.keys(this.elements).reduce((e,t)=>({...e,[t]:[0,0]}),{}),sliceIntersection:[...this.sliceIntersection],views:e}}setImage(e,t){let n=Ys(t);this.volume=n,this.sliceIntersection=function(e){const t=e.getBounds();return[(t[0]+t[1])/2,(t[2]+t[3])/2,(t[4]+t[5])/2]}(n.getMapper()),e.sliceIntersection=[...this.sliceIntersection],Object.keys(this.elements).forEach(t=>{this.mprViews[t].initView(n,e,()=>{this.onScrolled.call(this,e)},()=>{this.onScrolled.call(this,e)})}),this._activeTool&&this.setTool(this._activeTool,e)}setTool(e,t){switch(e){case"level":this.setLevelTool(t);break;case"crosshair":this.setCrosshairTool(t);break;case"zoom":this.setZoomTool(t);break;case"pan":this.setPanTool(t)}}setPanTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"pan"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnPanChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="pan"}setZoomTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"zoom"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnZoomChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="zoom"}setLevelTool(e){Object.entries(e.views).forEach(([t])=>{const n=TS.newInstance();n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnLevelsChanged(n=>{this.updateLevels({...n,srcKey:t},e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="level"}setCrosshairTool(e){let t=this;Object.entries(e.views).forEach(([n])=>{const r=OS.newInstance();r.setOnScroll(()=>{t.onScrolled(e)}),r.setOnClickCallback(({worldPos:r})=>{t.onCrosshairPointSelected({worldPos:r,srcKey:n},e)}),this.mprViews[n].setInteractor(r)}),this._activeTool="crosshair"}onCrosshairPointSelected({srcKey:e,worldPos:t},n){Object.keys(this.elements).forEach(r=>{if(r!==e){const e=this.mprViews[r]._genericRenderWindow.getRenderWindow(),n=e.getInteractor().getInteractorStyle(),a=n.getSliceNormal(),o=wb.buildFromDegree().identity().rotateFromDirections(a,[1,0,0]),i=t.slice();o.apply(i);const s=i[0];n.setSlice(s),e.render()}this.updateInteractorCenters(n)}),this.sliceIntersection=[...t],n.sliceIntersection=[...t]}updateLevels({windowCenter:e,windowWidth:t,srcKey:n},r){r.views[n].window.center=e,r.views[n].window.width=t,this.syncWindowLevels&&Object.keys(this.elements).filter(e=>e!==n).forEach(n=>{this.mprViews[n].wwwl=[t,e]})}onScrolled(e){let t=[];Object.keys(this.elements).forEach(e=>{const n=this.mprViews[e].camera;t.push({position:n.getFocalPoint(),normal:n.getDirectionOfProjection()})});const n=qs(...t);return Number.isNaN(n)||n.some(e=>Number.isNaN(e))||(this.sliceIntersection=[...n],e.sliceIntersection=[...n],this.VERBOSE&&console.log("updating slice intersection",n)),this.updateInteractorCenters(e),n}onRotate(e,t,n,r){switch(e){case"top":"x"===t?r.views.front.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneYRotation=n);break;case"left":"x"===t?r.views.top.slicePlaneXRotation=n:"y"===t&&(r.views.front.slicePlaneXRotation=n);break;case"front":"x"===t?r.views.top.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneXRotation=n)}Object.keys(this.elements).filter(t=>t!==e).forEach(e=>{this.mprViews[e].updateSlicePlane(r.views[e])}),this.VERBOSE&&console.log("afterOnRotate",r)}onThickness(e,t,n,r){const a=n>1;let o;switch(e){case"top":"x"===t?o="front":"y"===t&&(o="left");break;case"left":"x"===t?o="top":"y"===t&&(o="front");break;case"front":"x"===t?o="top":"y"===t&&(o="left")}a&&"none"===this.mprViews[o].blendMode&&(this.mprViews[o].blendMode="MIP",r.mprViews[o].blendMode="MIP"),this.mprViews[o].sliceThickness=n,r.views[o].sliceThickness=n}updateInteractorCenters(e){Object.keys(this.elements).forEach(t=>{const n=this.mprViews[t]._genericRenderWindow.getRenderer(),r=aS.newInstance();r.setCoordinateSystemToWorld(),r.setValue(...this.sliceIntersection);const a=r.getComputedDisplayValue(n);this.VERBOSE&&console.log("interactor center",t,a),e.interactorCenters[t]=a})}resize(e,t){t?this.mprViews[t].onResize():Object.values(this.mprViews).forEach(e=>{e.onResize()}),this.updateInteractorCenters(e)}destroy(){Object.keys(this.elements).forEach(e=>{this.mprViews[e].destroy()})}}n.d(t,"MPRManager",function(){return BS}),n.d(t,"VRView",function(){return cS}),n.d(t,"loadDemoSerieWithLarvitar",function(){return Ks}),n.d(t,"buildVtkVolume",function(){return zs}),console.groupCollapsed("%c** dtk **","background: #0aa658; color: #000000; line-height: 1.6"),console.log(`Version ${c.a}`),console.log("Detected graphic card:"),console.log(function(){const e=document.createElement("canvas").getContext("webgl");if(!e)return{error:"no webgl"};const t=e.getExtension("WEBGL_debug_renderer_info");return t?{vendor:e.getParameter(t.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:{error:"no WEBGL_debug_renderer_info"}}()),console.groupEnd("dtk")}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.diglettk=t():e.diglettk=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=30)}([function(e,t,n){"use strict";(function(e){n.d(t,"k",function(){return b}),n.d(t,"l",function(){return T}),n.d(t,"m",function(){return C}),n.d(t,"e",function(){return w}),n.d(t,"f",function(){return x}),n.d(t,"g",function(){return R}),n.d(t,"b",function(){return E}),n.d(t,"h",function(){return L}),n.d(t,"i",function(){return N}),n.d(t,"c",function(){return B}),n.d(t,"j",function(){return F}),n.d(t,"d",function(){return _});var r=n(1);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){"@babel/helpers - typeof";return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};M(t);var n=[];function r(e){n[e]=null}return Number.isInteger(t.mtime)||(t.mtime=++g),t.classHierarchy=["vtkObject"],e.isDeleted=function(){return!!t.deleted},e.modified=function(r){t.deleted?T("instance deleted - cannot call any method"):r&&r0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1;return Object.keys(n).forEach(function(i){var s=a?null:e["set".concat(O(i))];s&&Array.isArray(n[i])&&s.length>1?o=s.apply(void 0,c(n[i]))||o:s?o=s(n[i])||o:(-1!==["mtime"].indexOf(i)||r||C("Warning: Set value to model directly ".concat(i,", ").concat(n[i])),t[i]=n[i],o=!0)}),o},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error("Cannot ShallowCopy ".concat(n.getClassName()," into ").concat(e.getClassName()));var a=n.get(),o=Object.keys(t).sort();Object.keys(a).sort().forEach(function(e){var n=o.indexOf(e);-1===n?r&&b("add ".concat(e," in shallowCopy")):o.splice(n,1),t[e]=a[e]}),o.length&&r&&b("Untouched keys: ".concat(o.join(", "))),e.modified()},e}function E(e,t,n){n.forEach(function(n){"object"===o(n)?e["get".concat(O(n.name))]=function(){return t[n.name]}:e["get".concat(O(n))]=function(){return t[n]}})}P.Float32Array=Float32Array,P.Float64Array=Float64Array,P.Uint8Array=Uint8Array,P.Int8Array=Int8Array,P.Uint16Array=Uint16Array,P.Int16Array=Int16Array,P.Uint32Array=Uint32Array,P.Int32Array=Int32Array,P.Uint8ClampedArray=Uint8ClampedArray;var D={enum:function(e,t,n){return function(r){if("string"==typeof r){if(void 0!==n.enum[r])return t[n.name]!==n.enum[r]&&(t[n.name]=n.enum[r],e.modified(),!0);throw T("Set Enum with invalid argument ".concat(n,", ").concat(r)),new RangeError("Set Enum with invalid string argument")}if("number"==typeof r){if(t[n.name]!==r){if(-1!==Object.keys(n.enum).map(function(e){return n.enum[e]}).indexOf(r))return t[n.name]=r,e.modified(),!0;throw T("Set Enum outside numeric range ".concat(n,", ").concat(r)),new RangeError("Set Enum outside numeric range")}return!1}throw T("Set Enum with invalid argument (String/Number) ".concat(n,", ").concat(r)),new TypeError("Set Enum with invalid argument (String/Number)")}}};function V(e){if("object"===o(e)){var t=D[e.type];if(t)return function(n,r){return t(n,r,e)};throw T("No setter for field ".concat(e)),new TypeError("No setter for field")}return function(t,n){return function(r){return n.deleted?(T("instance deleted - cannot call any method"),!1):n[e]!==r&&(n[e]=r,t.modified(),!0)}}}function L(e,t,n){n.forEach(function(n){"object"===o(n)?e["set".concat(O(n.name))]=V(n)(e,t):e["set".concat(O(n))]=V(n)(e,t)})}function N(e,t,n){E(e,t,n),L(e,t,n)}function B(e,t,n){n.forEach(function(n){e["get".concat(O(n))]=function(){return[].concat(t[n])},e["get".concat(O(n),"ByReference")]=function(){return t[n]}})}function k(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach(function(n){e["set".concat(O(n))]=function(){if(t.deleted)return T("instance deleted - cannot call any method"),!1;for(var o=arguments.length,i=new Array(o),s=0;s4&&void 0!==arguments[4]?arguments[4]:void 0;B(e,t,n),k(e,t,n,r,a)}var G=Symbol("Event abort");function _(e,t){var n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={};return e(n,{},t),Object.freeze(n)};return t&&r.a.register(t,n),n}function U(e){return e&&e.isA&&e.isA("vtkObject")}function j(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=function(e,n){t.keystore[e]=n},e.getKey=function(e){return t.keystore[e]},e.getAllKeys=function(){return Object.keys(t.keystore)},e.deleteKey=function(e){return delete t.keystore[e]},e.clearKeystore=function(){return e.getAllKeys().forEach(function(e){return delete t.keystore[e]})}}var W=1,z="__root__";var H=10,K=40,X=800;t.a={algo:function(e,t,n,a){function o(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?T("instance deleted - cannot call any method"):r>=t.numberOfInputs?T("algorithm ".concat(e.getClassName()," only has ").concat(t.numberOfInputs," input ports. To add more input ports, use addInputData()")):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function i(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)T("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){var a="algorithm ".concat(e.getClassName()," only has ");return a+="".concat(t.numberOfInputs),void T(a+=" input ports. To add more input ports, use addInputConnection()")}t.inputData[r]=null,t.inputConnection[r]=n}}function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(T("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(r.a):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(r.a):t.inputConnection=[],t.output?t.output=t.output.map(r.a):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(r.a):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=function(){for(var n=e.getMTime(),r=a,o=1/0;r--;){if(!t.output[r])return!0;var i=t.output[r].getMTime();if(io)return!0;return!1},t.numberOfInputs){for(var l=t.numberOfInputs;l--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=i,e.addInputData=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,o(e,t.numberOfInputs-1))},e.addInputConnection=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,i(e,t.numberOfInputs-1))},e.getInputData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}a&&(e.getOutputData=s,e.getOutputPort=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function(){return s(t)};return n.filter=e,n}),e.update=function(){var n=[];if(t.numberOfInputs)for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:"Scalars";t.inputArrayToProcess.length1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error("Invalid callback for event ".concat(n)),null;if(t.deleted)return T("instance deleted - cannot call any method"),null;var o=i++;return r.push([o,e,a]),r.sort(function(e,t){return t[2]-e[2]}),function(e){return Object.freeze({unsubscribe:function(){s(e)}})}(o)},e.delete=function(){o(),r.forEach(function(e){return s(a(e,1)[0])})}},EVENT_ABORT:G,formatBytesToProperUnit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,r=["TB","GB","MB","KB"],a=Number(e),o="B";a>n;)a/=n,o=r.pop();return"".concat(a.toFixed(t)," ").concat(o)},formatNumbersWithThousandSeparator:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[],r=e;r>1e3;)n.push("000".concat(r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)},get:E,getArray:B,getCurrentGlobalMTime:function(){return g},getStateArrayMapFunc:A,isVtkObject:U,keystore:j,newInstance:_,newTypedArray:w,newTypedArrayFrom:x,normalizeWheel:function(e){var t=0,n=0,r=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*H,a=n*H,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(1===e.deltaMode?(r*=K,a*=K):(r*=X,a*=X)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:a}},obj:R,proxy:function(e,t){j(e,t);var n=e.delete;t.proxyId="".concat(W++),t.ui=JSON.parse(JSON.stringify(t.ui||[])),E(e,t,["proxyId","proxyGroup","proxyName"]),N(e,t,["proxyManager"]);var r={},a={};function o(e,t){a[t]||(a[t]=[]);for(var n=a[t],i=0;i0&&void 0!==arguments[0]?arguments[0]:z,r=[],o=t.proxyId,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:z;return a[e]}(n)||[],l=0;l1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];var r=null,a=[],o=0,i=!1;function s(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;var c=[],u=null;for(o=a.length;o--;){var d=a[o];d.instance===n?u=d:c.push(d)}if(!u)return null;var f=u.instance["get".concat(O(u.propertyName))]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=n.onModified(s),u=a[0];return a.push({instance:n,propertyName:r,subscription:i}),o&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set(l({},r,t.propertyLinkMap[e].value)):u&&s(u.instance,!0)),{unsubscribe:function(){return c(n,r)}}},unbind:c,unsubscribe:function(){for(;a.length;)a.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=u,u},e.listPropertyNames=function(){return i().map(function(e){return e.name})},e.getPropertyByName=function(e){return i().find(function(t){return t.name===e})},e.getPropertyDomainByName=function(e){return(r[e]||{}).domain},e.getProxySection=function(){return{id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}},e.delete=function(){for(var r=Object.keys(t.propertyLinkMap),a=r.length;a--;)t.propertyLinkMap[r[a]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},I(function(){if(t.links)for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.this=e;for(var a=Object.keys(r),o=a.length,i=function(){var i=a[o];t[i]=r[i];var s=n[i];e["set".concat(O(i))]=function(n){n!==t[i]&&(t[i]=n,function(e){for(var n=Object.keys(e),r=n.length;r--;){var a=n[r];t[a].set(e[a])}}(s[n]),e.modified())}};o--;)i();a.length&&E(e,t,a)},safeArrays:M,set:L,setArray:k,setGet:N,setGetArray:F,setImmediate:I,setLoggerFunction:function(e,t){y[e]&&(y[e]=t||h)},throttle:function(e,t){var n=!1,r=null;function a(){n=!1,null!==r&&(o.apply(void 0,c(r)),r=null)}function o(){for(var o=arguments.length,i=new Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(U(t)){if(a.indexOf(t)>=0)return r;a.push(t);var o=n(t);void 0!==o&&r.push(o);var i=t.get();Object.keys(i).forEach(function(t){var o=i[t];Array.isArray(o)?o.forEach(function(t){e(t,n,r,a)}):e(o,n,r,a)})}return r},TYPED_ARRAYS:P,uncapitalize:function(e){return e.charAt(0).toLowerCase()+e.slice(1)},VOID:m,vtkDebugMacro:b,vtkErrorMacro:T,vtkInfoMacro:function(){y.info.apply(y,arguments)},vtkLogMacro:function(){y.log.apply(y,arguments)},vtkOnceErrorMacro:function(e){S[e]||(y.error(e),S[e]=!0)},vtkWarningMacro:C}}).call(this,n(7))},function(e,t,n){"use strict";(function(e){function r(e){"@babel/helpers - typeof";return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return s});var i={vtkObject:function(){return null}};function s(t){if(null===t||void 0===t)return t;if(t.isA)return t;if(!t.vtkClass)return e.console&&e.console.error&&e.console.error("Invalid VTK object"),null;var n=i[t.vtkClass];if(!n)return e.console&&e.console.error&&e.console.error("No vtk class found for Object of type ".concat(t.vtkClass)),null;var l=function(e){for(var t=1;t 0\nuniform float vSpecularPower;\nuniform float vAmbient;\nuniform float vDiffuse;\nuniform float vSpecular;\n//VTK::Light::Dec\n#endif\n\n// possibly define vtkGradientOpacityOn\n//VTK::GradientOpacityOn\n#ifdef vtkGradientOpacityOn\nuniform float goscale0;\nuniform float goshift0;\nuniform float gomin0;\nuniform float gomax0;\n#if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\nuniform float goscale1;\nuniform float goshift1;\nuniform float gomin1;\nuniform float gomax1;\n#if vtkNumComponents >= 3\nuniform float goscale2;\nuniform float goshift2;\nuniform float gomin2;\nuniform float gomax2;\n#endif\n#if vtkNumComponents >= 4\nuniform float goscale3;\nuniform float goshift3;\nuniform float gomin3;\nuniform float gomax3;\n#endif\n#endif\n#endif\n\n// if you want to see the raw tiled\n// data in webgl1 uncomment the following line\n// #define debugtile\n\n// camera values\nuniform float camThick;\nuniform float camNear;\nuniform float camFar;\nuniform int cameraParallel;\n\n// values describing the volume geometry\nuniform vec3 vOriginVC;\nuniform vec3 vSpacing;\nuniform ivec3 volumeDimensions; // 3d texture dimensions\nuniform vec3 vPlaneNormal0;\nuniform float vPlaneDistance0;\nuniform vec3 vPlaneNormal1;\nuniform float vPlaneDistance1;\nuniform vec3 vPlaneNormal2;\nuniform float vPlaneDistance2;\nuniform vec3 vPlaneNormal3;\nuniform float vPlaneDistance3;\nuniform vec3 vPlaneNormal4;\nuniform float vPlaneDistance4;\nuniform vec3 vPlaneNormal5;\nuniform float vPlaneDistance5;\n\n//VTK::ClipPlane::Dec\n\n// opacity and color textures\nuniform sampler2D otexture;\nuniform float oshift0;\nuniform float oscale0;\nuniform sampler2D ctexture;\nuniform float cshift0;\nuniform float cscale0;\n\n// jitter texture\nuniform sampler2D jtexture;\n\n// some 3D texture values\nuniform float sampleDistance;\nuniform vec3 vVCToIJK;\n\n// the heights defined below are the locations\n// for the up to four components of the tfuns\n// the tfuns have a height of 2XnumComps pixels so the\n// values are computed to hit the middle of the two rows\n// for that component\n#ifdef vtkIndependentComponentsOn\n#if vtkNumComponents == 2\nuniform float mix0;\nuniform float mix1;\n#define height0 0.25\n#define height1 0.75\n#endif\n#if vtkNumComponents == 3\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\n#define height0 0.17\n#define height1 0.5\n#define height2 0.83\n#endif\n#if vtkNumComponents == 4\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\nuniform float mix3;\n#define height0 0.125\n#define height1 0.375\n#define height2 0.625\n#define height3 0.875\n#endif\n#endif\n\n#if vtkNumComponents >= 2\nuniform float oshift1;\nuniform float oscale1;\nuniform float cshift1;\nuniform float cscale1;\n#endif\n#if vtkNumComponents >= 3\nuniform float oshift2;\nuniform float oscale2;\nuniform float cshift2;\nuniform float cscale2;\n#endif\n#if vtkNumComponents >= 4\nuniform float oshift3;\nuniform float oscale3;\nuniform float cshift3;\nuniform float cscale3;\n#endif\n\n// declaration for intermixed geometry\n//VTK::ZBuffer::Dec\n\n// Lighting values\n//VTK::Light::Dec\n\n//=======================================================================\n// Webgl2 specific version of functions\n#if __VERSION__ == 300\n\nuniform highp sampler3D texture1;\n\nvec4 getTextureValue(vec3 pos)\n{\n vec4 tmp = texture(texture1, pos);\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.a = tmp.g;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n return tmp;\n}\n\n//=======================================================================\n// WebGL1 specific version of functions\n#else\n\nuniform sampler2D texture1;\n\nuniform float texWidth;\nuniform float texHeight;\nuniform int xreps;\nuniform int xstride;\nuniform int ystride;\n\n// if computing triliear values from multiple z slices\n#ifdef vtkTriliearOn\nvec4 getTextureValue(vec3 ijk)\n{\n float zoff = 1.0/float(volumeDimensions.z);\n vec4 val1 = getOneTextureValue(ijk);\n vec4 val2 = getOneTextureValue(vec3(ijk.xy, ijk.z + zoff));\n\n float indexZ = float(volumeDimensions)*ijk.z;\n float zmix = indexZ - floor(indexZ);\n\n return mix(val1, val2, zmix);\n}\n\nvec4 getOneTextureValue(vec3 ijk)\n#else // nearest or fast linear\nvec4 getTextureValue(vec3 ijk)\n#endif\n{\n vec3 tdims = vec3(volumeDimensions);\n\n#ifdef debugtile\n vec2 tpos = vec2(ijk.x, ijk.y);\n vec4 tmp = texture2D(texture1, tpos);\n tmp.a = 1.0;\n\n#else\n int z = int(ijk.z * tdims.z);\n int yz = z / xreps;\n int xz = z - yz*xreps;\n\n int tileWidth = volumeDimensions.x/xstride;\n int tileHeight = volumeDimensions.y/ystride;\n\n xz *= tileWidth;\n yz *= tileHeight;\n\n float ni = float(xz) + (ijk.x*float(tileWidth));\n float nj = float(yz) + (ijk.y*float(tileHeight));\n\n vec2 tpos = vec2(ni/texWidth, nj/texHeight);\n\n vec4 tmp = texture2D(texture1, tpos);\n\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.g = tmp.a;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n#endif\n\n return tmp;\n}\n\n// End of Webgl1 specific code\n//=======================================================================\n#endif\n\n//=======================================================================\n// compute the normal and gradient magnitude for a position\nvec4 computeNormal(vec3 pos, float scalar, vec3 tstep)\n{\n vec4 result;\n\n result.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a - scalar;\n result.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a - scalar;\n result.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a - scalar;\n\n // divide by spacing\n result.xyz /= vSpacing;\n\n result.w = length(result.xyz);\n\n // rotate to View Coords\n result.xyz =\n result.x * vPlaneNormal0 +\n result.y * vPlaneNormal2 +\n result.z * vPlaneNormal4;\n\n if (result.w > 0.0)\n {\n result.xyz /= result.w;\n }\n return result;\n}\n\n#ifdef vtkImageLabelOutlineOn\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\n vec4 pcPos = vec4(\n (fragCoord.x / vpWidth - 0.5) * 2.0,\n (fragCoord.y / vpHeight - 0.5) * 2.0,\n (fragCoord.z - 0.5) * 2.0,\n 1.0);\n\n vec4 worldCoord = PCWCMatrix * pcPos;\n vec4 vertex = (worldCoord/worldCoord.w);\n\n return (vWCtoIDX * vertex).xyz / vec3(volumeDimensions);\n}\n#endif\n\n//=======================================================================\n// compute the normals and gradient magnitudes for a position\n// for independent components\nmat4 computeMat4Normal(vec3 pos, vec4 tValue, vec3 tstep)\n{\n mat4 result;\n vec4 distX = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)) - tValue;\n vec4 distY = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)) - tValue;\n vec4 distZ = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)) - tValue;\n\n // divide by spacing\n distX /= vSpacing.x;\n distY /= vSpacing.y;\n distZ /= vSpacing.z;\n\n mat3 rot;\n rot[0] = vPlaneNormal0;\n rot[1] = vPlaneNormal2;\n rot[2] = vPlaneNormal4;\n\n#if !defined(vtkComponent0Proportional)\n result[0].xyz = vec3(distX.r, distY.r, distZ.r);\n result[0].a = length(result[0].xyz);\n result[0].xyz *= rot;\n if (result[0].w > 0.0)\n {\n result[0].xyz /= result[0].w;\n }\n#endif\n\n// optionally compute the 2nd component\n#if vtkNumComponents >= 2 && !defined(vtkComponent1Proportional)\n result[1].xyz = vec3(distX.g, distY.g, distZ.g);\n result[1].a = length(result[1].xyz);\n result[1].xyz *= rot;\n if (result[1].w > 0.0)\n {\n result[1].xyz /= result[1].w;\n }\n#endif\n\n// optionally compute the 3rd component\n#if vtkNumComponents >= 3 && !defined(vtkComponent2Proportional)\n result[2].xyz = vec3(distX.b, distY.b, distZ.b);\n result[2].a = length(result[2].xyz);\n result[2].xyz *= rot;\n if (result[2].w > 0.0)\n {\n result[2].xyz /= result[2].w;\n }\n#endif\n\n// optionally compute the 4th component\n#if vtkNumComponents >= 4 && !defined(vtkComponent3Proportional)\n result[3].xyz = vec3(distX.a, distY.a, distZ.a);\n result[3].a = length(result[3].xyz);\n result[3].xyz *= rot;\n if (result[3].w > 0.0)\n {\n result[3].xyz /= result[3].w;\n }\n#endif\n\n return result;\n}\n\n//=======================================================================\n// Given a normal compute the gradient opacity factors\n//\nfloat computeGradientOpacityFactor(\n vec4 normal, float goscale, float goshift, float gomin, float gomax)\n{\n#if defined(vtkGradientOpacityOn)\n return clamp(normal.a*goscale + goshift, gomin, gomax);\n#else\n return 1.0;\n#endif\n}\n\n#if vtkLightComplexity > 0\nvoid applyLighting(inout vec3 tColor, vec4 normal)\n{\n vec3 diffuse = vec3(0.0, 0.0, 0.0);\n vec3 specular = vec3(0.0, 0.0, 0.0);\n //VTK::Light::Impl\n tColor.rgb = tColor.rgb*(diffuse*vDiffuse + vAmbient) + specular*vSpecular;\n}\n#endif\n\n//=======================================================================\n// Given a texture value compute the color and opacity\n//\nvec4 getColorForValue(vec4 tValue, vec3 posIS, vec3 tstep)\n{\n#ifdef vtkImageLabelOutlineOn\n vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\n vec4 centerValue = getTextureValue(centerPosIS);\n bool pixelOnBorder = false;\n vec4 tColor = texture2D(ctexture, vec2(centerValue.r * cscale0 + cshift0, 0.5));\n\n // Get alpha of segment from opacity function.\n tColor.a = texture2D(otexture, vec2(centerValue.r * oscale0 + oshift0, 0.5)).r;\n\n // Only perform outline check on fragments rendering voxels that aren't invisible.\n // Saves a bunch of needless checks on the background.\n // TODO define epsilon when building shader?\n if (float(tColor.a) > 0.01) {\n for (int i = -outlineThickness; i <= outlineThickness; i++) {\n for (int j = -outlineThickness; j <= outlineThickness; j++) {\n if (i == 0 || j == 0) {\n continue;\n }\n\n vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\n gl_FragCoord.y + float(j),\n gl_FragCoord.z, gl_FragCoord.w);\n\n vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\n vec4 value = getTextureValue(neighborPosIS);\n\n // If any of my neighbours are not the same value as I\n // am, this means I am on the border of the segment.\n // We can break the loops\n if (any(notEqual(value, centerValue))) {\n pixelOnBorder = true;\n break;\n }\n }\n\n if (pixelOnBorder == true) {\n break;\n }\n }\n\n // If I am on the border, I am displayed at full opacity\n if (pixelOnBorder == true) {\n tColor.a = 1.0;\n }\n }\n\n#else\n // compute the normal and gradient magnitude if needed\n // We compute it as a vec4 if possible otherwise a mat4\n //\n vec4 goFactor = vec4(1.0,1.0,1.0,1.0);\n\n // compute the normal vectors as needed\n #if (vtkLightComplexity > 0) || defined(vtkGradientOpacityOn)\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n mat4 normalMat = computeMat4Normal(posIS, tValue, tstep);\n #if !defined(vtkComponent0Proportional)\n vec4 normal0 = normalMat[0];\n #endif\n #if !defined(vtkComponent1Proportional)\n vec4 normal1 = normalMat[1];\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n vec4 normal2 = normalMat[2];\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n vec4 normal3 = normalMat[3];\n #endif\n #endif\n #endif\n #else\n vec4 normal0 = computeNormal(posIS, tValue.a, tstep);\n #endif\n #endif\n\n // compute gradient opacity factors as needed\n #if defined(vtkGradientOpacityOn)\n #if !defined(vtkComponent0Proportional)\n goFactor.x =\n computeGradientOpacityFactor(normal0, goscale0, goshift0, gomin0, gomax0);\n #endif\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n #if !defined(vtkComponent1Proportional)\n goFactor.y =\n computeGradientOpacityFactor(normal1, goscale1, goshift1, gomin1, gomax1);\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n goFactor.z =\n computeGradientOpacityFactor(normal2, goscale2, goshift2, gomin2, gomax2);\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n goFactor.w =\n computeGradientOpacityFactor(normal3, goscale3, goshift3, gomin3, gomax3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n // single component is always independent\n #if vtkNumComponents == 1\n vec4 tColor = texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, 0.5));\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n vec4 tColor = mix0*texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, height0));\n #if !defined(vtkComponent0Proportional)\n tColor.a = goFactor.x*mix0*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n tColor *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix0));\n #endif\n\n vec3 tColor1 = mix1*texture2D(ctexture, vec2(tValue.g * cscale1 + cshift1, height1)).rgb;\n #if !defined(vtkComponent1Proportional)\n tColor.a += goFactor.y*mix1*texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n tColor1 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix1));\n #endif\n\n #if vtkNumComponents >= 3\n vec3 tColor2 = mix2*texture2D(ctexture, vec2(tValue.b * cscale2 + cshift2, height2)).rgb;\n #if !defined(vtkComponent2Proportional)\n tColor.a += goFactor.z*mix2*texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n tColor2 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix2));\n #endif\n\n #if vtkNumComponents >= 4\n vec3 tColor3 = mix3*texture2D(ctexture, vec2(tValue.a * cscale3 + cshift3, height3)).rgb;\n #if !defined(vtkComponent3Proportional)\n tColor.a += goFactor.w*mix3*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n tColor3 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix3));\n #endif\n #endif\n #endif\n #else // then not independent\n\n #if vtkNumComponents == 2\n float lum = tValue.r * cscale0 + cshift0;\n float alpha = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale1 + oshift1, 0.5)).r;\n vec4 tColor = vec4(lum, lum, lum, alpha);\n #endif\n #if vtkNumComponents == 3\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale0 + oshift0, 0.5)).r;\n #endif\n #if vtkNumComponents == 4\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, 0.5)).r;\n #endif\n #endif // dependent\n\n // apply lighting if requested as appropriate\n #if vtkLightComplexity > 0\n #if !defined(vtkComponent0Proportional)\n applyLighting(tColor.rgb, normal0);\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n #if !defined(vtkComponent1Proportional)\n applyLighting(tColor1, normal1);\n #endif\n #if vtkNumComponents >= 3\n #if !defined(vtkComponent2Proportional)\n applyLighting(tColor2, normal2);\n #endif\n #if vtkNumComponents >= 4\n #if !defined(vtkComponent3Proportional)\n applyLighting(tColor3, normal3);\n #endif\n #endif\n #endif\n #endif\n#endif\n\n// perform final independent blend as needed\n#if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n tColor.rgb += tColor1;\n#if vtkNumComponents >= 3\n tColor.rgb += tColor2;\n#if vtkNumComponents >= 4\n tColor.rgb += tColor3;\n#endif\n#endif\n#endif\n\n#endif\n\n\n\n\n\n\n\nreturn tColor;\n}\n\n\n\n//=======================================================================\n// Apply the specified blend mode operation along the ray's path.\n//\nvoid applyBlend(vec3 posIS, vec3 endIS, float sampleDistanceIS, vec3 tdims)\n{\n vec3 tstep = 1.0/tdims;\n\n // start slightly inside and apply some jitter\n vec3 delta = endIS - posIS;\n vec3 stepIS = normalize(delta)*sampleDistanceIS;\n float raySteps = length(delta)/sampleDistanceIS;\n\n // avoid 0.0 jitter\n float jitter = 0.01 + 0.99*texture2D(jtexture, gl_FragCoord.xy/32.0).r;\n float stepsTraveled = jitter;\n\n // local vars for the loop\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n vec4 tValue;\n vec4 tColor;\n\n // if we have less than one step then pick the middle point\n // as our value\n // if (raySteps <= 1.0)\n // {\n // posIS = (posIS + endIS)*0.5;\n // }\n\n // Perform initial step at the volume boundary\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n #if vtkBlendMode == 0 // COMPOSITE_BLEND\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps);\n gl_FragData[0] = tColor;\n return;\n }\n\n tColor.a = 1.0 - pow(1.0 - tColor.a, jitter);\n color = vec4(tColor.rgb*tColor.a, tColor.a);\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n float mix = (1.0 - color.a);\n\n // this line should not be needed but nvidia seems to not handle\n // the break correctly on windows/chrome 58 angle\n //mix = mix * sign(max(raySteps - stepsTraveled - 1.0, 0.0));\n\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n stepsTraveled++;\n posIS += stepIS;\n if (color.a > 0.99) { color.a = 1.0; break; }\n }\n\n if (color.a < 0.99 && (raySteps - stepsTraveled) > 0.0)\n {\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\n\n float mix = (1.0 - color.a);\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n }\n\n gl_FragData[0] = vec4(color.rgb/color.a, color.a);\n #endif\n #if vtkBlendMode == 1 || vtkBlendMode == 2\n // MAXIMUM_INTENSITY_BLEND || MINIMUM_INTENSITY_BLEND\n // Find maximum/minimum intensity along the ray.\n\n // Define the operation we will use (min or max)\n #if vtkBlendMode == 1\n #define OP max\n #else\n #define OP min\n #endif\n\n // If the clipping range is shorter than the sample distance\n // we can skip the sampling loop along the ray.\n if (raySteps <= 1.0)\n {\n gl_FragData[0] = getColorForValue(tValue, posIS, tstep);\n return;\n }\n\n vec4 value = tValue;\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // Update the maximum value if necessary\n value = OP(tValue, value);\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n tValue = getTextureValue(posIS);\n value = OP(tValue, value);\n\n // Now map through opacity and color\n gl_FragData[0] = getColorForValue(value, posIS, tstep);\n #endif\n #if vtkBlendMode == 3 //AVERAGE_INTENSITY_BLEND\n vec4 averageIPScalarRangeMin = vec4 (\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n 1.0);\n vec4 averageIPScalarRangeMax = vec4(\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n 1.0);\n\n vec4 sum = vec4(0.);\n\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n }\n\n if (raySteps <= 1.0) {\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n return;\n }\n\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation.\n // Notes:\n // - We are comparing all values in the texture to see if any of them\n // are outside of the scalar range. In the future we might want to allow\n // scalar ranges for each component.\n // - We are setting the alpha channel for averageIPScalarRangeMin and\n // averageIPScalarRangeMax so that we do not trigger this 'continue'\n // based on the alpha channel comparison.\n // - There might be a better way to do this. I'm not sure if there is an\n // equivalent of 'any' which only operates on RGB, though I suppose\n // we could write an 'anyRGB' function and see if that is faster.\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n if (any(lessThan(tValue, averageIPScalarRangeMin)) ||\n any(greaterThan(tValue, averageIPScalarRangeMax))) {\n continue;\n }\n\n // Sum the values across each step in the path\n sum += tValue;\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n\n stepsTraveled++;\n }\n\n sum /= vec4(stepsTraveled, stepsTraveled, stepsTraveled, 1.0);\n\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n #endif\n}\n\n//=======================================================================\n// Compute a new start and end point for a given ray based\n// on the provided bounded clipping plane (aka a rectangle)\nvoid getRayPointIntersectionBounds(\n vec3 rayPos, vec3 rayDir,\n vec3 planeDir, float planeDist,\n inout vec2 tbounds, vec3 vPlaneX, vec3 vPlaneY,\n float vSize1, float vSize2)\n{\n float result = dot(rayDir, planeDir);\n if (result == 0.0)\n {\n return;\n }\n result = -1.0 * (dot(rayPos, planeDir) + planeDist) / result;\n vec3 xposVC = rayPos + rayDir*result;\n vec3 vxpos = xposVC - vOriginVC;\n vec2 vpos = vec2(\n dot(vxpos, vPlaneX),\n dot(vxpos, vPlaneY));\n\n // on some apple nvidia systems this does not work\n // if (vpos.x < 0.0 || vpos.x > vSize1 ||\n // vpos.y < 0.0 || vpos.y > vSize2)\n // even just\n // if (vpos.x < 0.0 || vpos.y < 0.0)\n // fails\n // so instead we compute a value that represents in and out\n //and then compute the return using this value\n float xcheck = max(0.0, vpos.x * (vpos.x - vSize1)); // 0 means in bounds\n float check = sign(max(xcheck, vpos.y * (vpos.y - vSize2))); // 0 means in bounds, 1 = out\n\n tbounds = mix(\n vec2(min(tbounds.x, result), max(tbounds.y, result)), // in value\n tbounds, // out value\n check); // 0 in 1 out\n}\n\n//=======================================================================\n// given a\n// - ray direction (rayDir)\n// - starting point (vertexVCVSOutput)\n// - bounding planes of the volume\n// - optionally depth buffer values\n// - far clipping plane\n// compute the start/end distances of the ray we need to cast\nvec2 computeRayDistances(vec3 rayDir, vec3 tdims)\n{\n vec2 dists = vec2(100.0*camFar, -1.0);\n\n vec3 vSize = vSpacing*(tdims - 1.0);\n\n // all this is in View Coordinates\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal0, vPlaneDistance0, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal1, vPlaneDistance1, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal2, vPlaneDistance2, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal3, vPlaneDistance3, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal4, vPlaneDistance4, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal5, vPlaneDistance5, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n\n //VTK::ClipPlane::Impl\n\n // do not go behind front clipping plane\n dists.x = max(0.0,dists.x);\n\n // do not go PAST far clipping plane\n float farDist = -camThick/rayDir.z;\n dists.y = min(farDist,dists.y);\n\n // Do not go past the zbuffer value if set\n // This is used for intermixing opaque geometry\n //VTK::ZBuffer::Impl\n\n return dists;\n}\n\n//=======================================================================\n// Compute the index space starting position (pos) and end\n// position\n//\nvoid computeIndexSpaceValues(out vec3 pos, out vec3 endPos, out float sampleDistanceIS, vec3 rayDir, vec2 dists)\n{\n // compute starting and ending values in volume space\n pos = vertexVCVSOutput + dists.x*rayDir;\n pos = pos - vOriginVC;\n // convert to volume basis and origin\n pos = vec3(\n dot(pos, vPlaneNormal0),\n dot(pos, vPlaneNormal2),\n dot(pos, vPlaneNormal4));\n\n endPos = vertexVCVSOutput + dists.y*rayDir;\n endPos = endPos - vOriginVC;\n endPos = vec3(\n dot(endPos, vPlaneNormal0),\n dot(endPos, vPlaneNormal2),\n dot(endPos, vPlaneNormal4));\n\n float delta = length(endPos - pos);\n\n pos *= vVCToIJK;\n endPos *= vVCToIJK;\n\n float delta2 = length(endPos - pos);\n sampleDistanceIS = sampleDistance*delta2/delta;\n}\n\nvoid main()\n{\n\n vec3 rayDirVC;\n\n if (cameraParallel == 1)\n {\n // Camera is parallel, so the rayDir is just the direction of the camera.\n rayDirVC = vec3(0.0, 0.0, -1.0);\n } else {\n // camera is at 0,0,0 so rayDir for perspective is just the vc coord\n rayDirVC = normalize(vertexVCVSOutput);\n }\n\n vec3 tdims = vec3(volumeDimensions);\n\n // compute the start and end points for the ray\n vec2 rayStartEndDistancesVC = computeRayDistances(rayDirVC, tdims);\n\n // do we need to composite? aka does the ray have any length\n // If not, bail out early\n if (rayStartEndDistancesVC.y <= rayStartEndDistancesVC.x)\n {\n discard;\n }\n\n // IS = Index Space\n vec3 posIS;\n vec3 endIS;\n float sampleDistanceIS;\n computeIndexSpaceValues(posIS, endIS, sampleDistanceIS, rayDirVC, rayStartEndDistancesVC);\n\n // Perform the blending operation along the ray\n applyBlend(posIS, endIS, sampleDistanceIS, tdims);\n}\n"},function(e,t,n){var r;!function(a){"use strict";function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function i(e,t,n,r,a,i){return o(function(e,t){return e<>>32-t}(o(o(t,e),o(r,i)),a),n)}function s(e,t,n,r,a,o,s){return i(t&n|~t&r,e,t,a,o,s)}function l(e,t,n,r,a,o,s){return i(t&r|n&~r,e,t,a,o,s)}function c(e,t,n,r,a,o,s){return i(t^n^r,e,t,a,o,s)}function u(e,t,n,r,a,o,s){return i(n^(t|~r),e,t,a,o,s)}function d(e,t){var n,r,a,i,d;e[t>>5]|=128<>>9<<4)]=t;var f=1732584193,p=-271733879,g=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+"0123456789abcdef".charAt(15&t);return r}function m(e){return unescape(encodeURIComponent(e))}function v(e){return function(e){return f(d(p(e),8*e.length))}(m(e))}function h(e,t){return function(e,t){var n,r,a=p(e),o=[],i=[];for(o[15]=i[15]=void 0,a.length>16&&(a=d(a,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^a[n],i[n]=1549556828^a[n];return r=d(o.concat(p(t)),512+8*t.length),f(d(i.concat(r),640))}(m(e),m(t))}function y(e,t,n){return t?n?h(t,e):function(e,t){return g(h(e,t))}(t,e):n?v(e):function(e){return g(v(e))}(e)}void 0===(r=function(){return y}.call(t,n,t,e))||(e.exports=r)}()},function(e){e.exports=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,7.54296e-7,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,1.11641e-7,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,3.63578e-7,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,4.05298e-7,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4.264e-8,0,6.20844e-7,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,3.3216e-7,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,4.05432e-7,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,4.55569e-8]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,4.55569e-8,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}]},function(e,t,n){"use strict";var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments[3];return new Promise(function(o,i){var s=n._messageId++;n._messages.set(s,[o,i,a]),n._worker.postMessage([s,t,e],r||[])})}},{key:"postMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];return new Promise(function(a,o){var i=t._messageId++;t._messages.set(i,[a,o,r]),t._worker.postMessage([i,e],n||[])})}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)}}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&s(r,n),a.state=function(){return s(n,{})}),a}a&&a.exports?a.exports=l:n(2)&&n(4)?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new function(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor128=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorwow=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorshift7=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,o=t.i;return t.w=r=r+1640531527|0,n=a[o+34&127],e=a[o=o+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[o]=n^e,t.i=o,n+(r^r>>>16)|0},function(e,t){var n,r,a,o,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,o=-32;o>>15,r^=r<<4,r^=r>>>13,o>=0&&(i=i+1640531527|0,a=0==(n=s[127&o]^=r+i)?a+1:0);for(a>=128&&(s[127&(t&&t.length||0)]=-1),a=127,o=512;o>0;--o)r=s[a+34&127],n=s[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[a]=r^n;e.w=i,e.X=s,e.i=a}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor4096=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.tychei=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){var r;!function(a,o,i){var s,l=256,c=6,u="random",d=i.pow(l,c),f=i.pow(2,52),p=2*f,g=l-1;function m(e,t,n){var r=[],m=h(function e(t,n){var r,a=[],o=typeof t;if(n&&"object"==o)for(r in t)try{a.push(e(t[r],n-1))}catch(e){}return a.length?a:"string"==o?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,y(o)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(a.crypto||a.msCrypto).getRandomValues(e)),y(e)}catch(e){var t=a.navigator,n=t&&t.plugins;return[+new Date,a,n,a.screen,y(o)]}}():e,3),r),b=new function(e){var t,n=e.length,r=this,a=0,o=r.i=r.j=0,i=r.S=[];n||(e=[n++]);for(;a=p;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|b.g(4)},T.quick=function(){return b.g(4)/4294967296},T.double=T,h(y(b.S),o),(t.pass||n||function(e,t,n,r){return r&&(r.S&&v(r,b),e.state=function(){return v(b,{})}),n?(i[u]=e,t):e})(T,m,"global"in t?t.global:this==i,t.state)}function v(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function h(e,t){for(var n,r=e+"",a=0;a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;M(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:I(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:3,t=[];t.length1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=-1/0,o=t,i=e.length;o1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var n=0,r=0;r2&&void 0!==arguments[2]?arguments[2]:1e-6;if(e.length!==t.length)return!1;return e.every(function(e,r){return Math.abs(e-t[r])<=n})}var ae=re;function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!"".concat(e).includes("e"))return+"".concat(Math.round("".concat(e,"e+").concat(t)),"e-").concat(t);var n="".concat(e).split("e"),r="";return+n[1]+t>0&&(r="+"),+"".concat(Math.round("".concat(+n[0],"e").concat(r).concat(+n[1]+t)),"e-").concat(t)}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=oe(e[0],n),t[1]=oe(e[1],n),t[2]=oe(e[2],n),t}function se(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g,m,v,h,b,C,S=w(t),P=w(t),x=function(e,t,n,r,a){h=e[t][n],v=e[r][a],e[t][n]=h-m*(v+h*p),e[r][a]=v+m*(h-v*p)};for(l=0;l3&&Math.abs(n[l])+h===Math.abs(n[l])&&Math.abs(n[s])+h===Math.abs(n[s]))e[l][s]=0;else if(Math.abs(e[l][s])>u){for(v=n[s]-n[l],Math.abs(v)+h===Math.abs(v)?f=e[l][s]/v:(d=.5*v/e[l][s],f=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(f=-f)),b=1/Math.sqrt(1+f*f),p=(m=f*b)/(1+b),v=f*e[l][s],P[l]-=v,P[s]+=v,n[l]-=v,n[s]+=v,e[l][s]=0,o=0;o<=l-1;o++)x(e,o,l,o,s);for(o=l+1;o<=s-1;o++)x(e,l,o,o,s);for(o=s+1;o=T)return y("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=C&&(C=n[i=a]);if(i!==o)for(n[i]=n[o],n[o]=C,a=0;a>1)+(1&t);for(o=0;o=0&&c++;if(c(r=l>s?l:s)?c:r,a[i]=1,0!==r&&(a[i]/=r)}var u=Math.abs(t[0][0])*a[0],d=Math.abs(t[1][0])*a[1],f=Math.abs(t[2][0])*a[2];o[0]=0,d>=(r=u)&&(r=d,o[0]=1),f>=r&&(o[0]=2),0!==o[0]&&(P(t[o[0]],t[0]),a[o[0]]=a[0]);var p=Math.abs(t[1][1])*a[1],g=Math.abs(t[2][1])*a[2];o[1]=1,g>=(r=p)&&(o[1]=2,P(t[2],t[1])),o[2]=2;var m=0;if(te(t)<0){m=1;for(var v=0;v<3;v++)t[0][v]=-t[0][v],t[1][v]=-t[1][v],t[2][v]=-t[2][v]}var h=w(4);if(le(t,h),ne(h,t),m)for(var y=0;y<3;y++)t[0][y]=-t[0][y],t[1][y]=-t[1][y],t[2][y]=-t[2][y];1!==o[1]&&P(t[o[1]],t[1]),0!==o[0]&&P(t[o[0]],t[0])}function ue(e,t,n){var r,a,o,i,s,l,c=[w(3),w(3),w(3)],u=w(3),d=w(3);for(r=0;r<3;r++)c[r][0]=e[r][0],c[r][1]=e[r][1],c[r][2]=e[r][2],u[r]=c[r],d[r]=n[r];if(se(u,3,t,d),t[0]!==t[1]||t[0]!==t[2]){for(J(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[r][0]),i=0,a=1;a<3;a++)l<(s=Math.abs(n[r][a]))&&(l=s,i=a);return i!==r&&(s=t[i],t[i]=t[r],t[r]=s,P(n[r],n[i])),n[i][i]<0&&(n[i][0]=-n[i][0],n[i][1]=-n[i][1],n[i][2]=-n[i][2]),o=(i+2)%3,n[a=(i+1)%3][0]=0,n[a][1]=0,n[a][2]=0,n[a][a]=1,z(n[i],n[a],n[o]),K(n[o]),z(n[o],n[i],n[a]),void J(n,n)}for(l=Math.abs(n[0][0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[r][0]))&&(l=s,i=r);for(0!==i&&(s=t[i],t[i]=t[0],t[0]=s,P(n[i],n[0])),Math.abs(n[1][1])i&&(i=c);if(0===i)return y("Unable to factor linear system"),0;d[r]=1/i}for(a=0;a=i&&(i=l,u=r)}if(a!==u){for(o=0;o=0)for(o=i;o<=a-1;o++)l-=e[a][o]*n[o];else 0!==l&&(i=a);n[a]=l}for(a=r-1;a>=0;a--){for(l=n[a],o=a+1;o3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=r||w(n),i=a||w(n);if(0===de(e,o,n))return 0;for(var s=0;sl?l=i:il?l=s:s0?(l-c)/l:0)>0?(n=o===l?1/6*(i-s)/(l-c):i===l?1/3+1/6*(s-o)/(l-c):2/3+1/6*(o-i)/(l-c))<0&&(n+=1):n=0,t[0]=n,t[1]=r,t[2]=u}function he(e,t){var n,r,a,o=m(e,3),i=o[0],s=o[1],l=o[2];i>1/6&&i<=1/3?(r=1,n=(1/3-i)/(1/6),a=0):i>1/3&&i<=.5?(r=1,a=(i-1/3)/(1/6),n=0):i>.5&&i<=2/3?(a=1,r=(2/3-i)/(1/6),n=0):i>2/3&&i<=5/6?(a=1,n=(i-2/3)/(1/6),r=0):i>5/6&&i<=1?(n=1,a=(1-i)/(1/6),r=0):(n=1,r=i/(1/6),a=0),n=s*n+(1-s),r=s*r+(1-s),a=s*a+(1-s),n*=l,r*=l,a*=l,t[0]=n,t[1]=r,t[2]=a}function ye(e,t){var n=m(e,3),r=(n[0]+16)/116,a=n[1]/500+r,o=r-n[2]/200;r=Math.pow(r,3)>.008856?Math.pow(r,3):(r-16/116)/7.787,a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,o=Math.pow(o,3)>.008856?Math.pow(o,3):(o-16/116)/7.787;t[0]=.9505*a,t[1]=1*r,t[2]=1.089*o}function be(e,t){var n=m(e,3),r=n[0]/.9505,a=n[1]/1,o=n[2]/1.089;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,t[0]=116*a-16,t[1]=500*(r-a),t[2]=200*(a-o)}function Te(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2],i=3.2406*r+-1.5372*a+-.4986*o,s=-.9689*r+1.8758*a+.0415*o,l=.0557*r+-.204*a+1.057*o;i>.0031308?i=1.055*Math.pow(i,1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,l>.0031308?l=1.055*Math.pow(l,1/2.4)-.055:l*=12.92;var c=i;c1&&(i/=c,s/=c,l/=c),i<0&&(i=0),s<0&&(s=0),l<0&&(l=0),t[0]=i,t[1]=s,t[2]=l}function Ce(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2];r>.04045?r=Math.pow((r+.055)/1.055,2.4):r/=12.92,a>.04045?a=Math.pow((a+.055)/1.055,2.4):a/=12.92,o>.04045?o=Math.pow((o+.055)/1.055,2.4):o/=12.92,t[0]=.4124*r+.3576*a+.1805*o,t[1]=.2126*r+.7152*a+.0722*o,t[2]=.0193*r+.1192*a+.9505*o}function Se(e,t){var n=[0,0,0];Ce(e,n),be(n,t)}function Pe(e,t){var n=[0,0,0];ye(e,n),Te(n,t)}function we(e){e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1}function xe(e){return!(e[1]-e[0]<0)}function Oe(e,t,n){n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2])}function Me(e,t,n){return en?n:e}function Ae(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return r[0]=Me(e[0],t[0],n[0]),r[1]=Me(e[1],t[1],n[1]),r[2]=Me(e[2],t[2],n[2]),r}var Ie=S("GetScalarTypeFittingRange"),Re=S("GetAdjustedScalarRange");var Ee=function(e){return!Number.isFinite(e)},De=Number.isFinite,Ve=Number.isNaN,Le=Ve;function Ne(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Be(e){var t=Math.floor(255*e);return t>15?t.toString(16):"0".concat(t.toString(16))}function ke(e){return Math.round(255*e)}var Fe={Pi:function(){return Math.PI},radiansFromDegrees:x,degreesFromRadians:O,round:M,floor:A,ceil:I,ceilLog2:V,min:R,max:E,arrayMin:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=t,o=e.length;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0,a=t,o=e.length;a=0;--a)if(n[a]0&&void 0!==arguments[0]?arguments[0]:0;return e+((arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)-e)*Math.random()},gaussian:k,add:F,subtract:G,multiplyScalar:U,multiplyScalar2D:j,multiplyAccumulate:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r},multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:W,outer:function(e,t,n){for(var r=0;r<3;r++)for(var a=0;a<3;a++)n[r][a]=e[r]*t[a]},cross:z,norm:H,normalize:K,perpendiculars:function(e,t,n,r){var a,o,i,s=e[0]*e[0],l=e[1]*e[1],c=e[2]*e[2],u=Math.sqrt(s+l+c);s>l&&s>c?(a=0,o=1,i=2):l>c?(a=1,o=2,i=0):(a=2,o=0,i=1);var d=e[a]/u,f=e[o]/u,p=e[i]/u,g=Math.sqrt(d*d+p*p);if(0!==r){var m=Math.sin(r),v=Math.cos(r);t&&(t[a]=(p*v-d*f*m)/g,t[o]=m*g,t[i]=(-d*v-f*p*m)/g),n&&(n[a]=(-p*m-d*f*v)/g,n[o]=v*g,n[i]=(d*m-f*p*v)/g)}else t&&(t[a]=p/g,t[o]=0,t[i]=-d/g),n&&(n[a]=-d*f/g,n[o]=g,n[i]=-f*p/g)},projectVector:function(e,t,n){var r=W(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;for(var a=W(e,t)/r,o=0;o<3;o++)n[o]=t[o];return U(n,a),!0},projectVector2D:function(e,t,n){var r=X(t,t);if(0===r)return n[0]=0,n[1]=0,!1;for(var a=X(e,t)/r,o=0;o<2;o++)n[o]=t[o];return j(n,a),!0},distance2BetweenPoints:q,angleBetweenVectors:Y,gaussianAmplitude:function(e,t,n){var r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-Math.pow(r,2)/(2*t))},gaussianWeight:function(e,t,n){var r=Math.abs(e-n);return Math.exp(-Math.pow(r,2)/(2*t))},dot2D:X,outer2D:function(e,t,n){for(var r=0;r<2;r++)for(var a=0;a<2;a++)n[r][a]=e[r]*t[a]},norm2D:Z,normalize2D:function(e){var t=Z(e);return 0!==t&&(e[0]/=t,e[1]/=t),t},determinant2x2:Q,LUFactor3x3:function(e,t){for(var n,r,a,o=[0,0,0],i=0;i<3;i++)a=Math.abs(e[i][0]),(r=Math.abs(e[i][1]))>a&&(a=r),(r=Math.abs(e[i][2]))>a&&(a=r),o[i]=1/a;a=o[0]*Math.abs(e[0][0]),n=0,(r=o[1]*Math.abs(e[1][0]))>=a&&(a=r,n=1),(r=o[2]*Math.abs(e[2][0]))>=a&&(n=2),0!==n&&(P(e[n],e[0]),o[n]=o[0]),t[0]=n,e[1][0]/=e[0][0],e[2][0]/=e[0][0],e[1][1]-=e[1][0]*e[0][1],e[2][1]-=e[2][0]*e[0][1],a=o[1]*Math.abs(e[1][1]),n=1,(r=o[2]*Math.abs(e[2][1]))>=a&&(n=2,P(e[2],e[1]),o[2]=o[1]),t[1]=n,e[2][1]/=e[1][1],e[1][2]-=e[1][0]*e[0][2],e[2][2]-=e[2][0]*e[0][2]+e[2][1]*e[1][2],t[2]=2},LUSolve3x3:function(e,t,n){var r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[1][0]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[2][0]*n[0]-e[2][1]*n[1],n[2]/=e[2][2],n[1]=(n[1]-e[1][2]*n[2])/e[1][1],n[0]=(n[0]-e[0][1]*n[1]-e[0][2]*n[2])/e[0][0]},linearSolve3x3:function(e,t,n){var r=e[0][0],a=e[0][1],o=e[0][2],i=e[1][0],s=e[1][1],l=e[1][2],c=e[2][0],u=e[2][1],d=e[2][2],f=+Q(s,u,l,d),p=-Q(i,c,l,d),g=+Q(i,c,s,u),m=-Q(a,u,o,d),v=+Q(r,c,o,d),h=-Q(r,c,a,u),y=+Q(a,s,o,l),b=-Q(r,i,o,l),T=+Q(r,i,a,s),C=r*f+a*p+o*g,S=f*t[0]+m*t[1]+y*t[2],P=p*t[0]+v*t[1]+b*t[2],w=g*t[0]+h*t[1]+T*t[2];n[0]=S/C,n[1]=P/C,n[2]=w/C},multiply3x3_vect3:function(e,t,n){var r=e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],a=e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],o=e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2];n[0]=r,n[1]=a,n[2]=o},multiply3x3_mat3:$,multiplyMatrix:function(e,t,n,r,a,o,i){r!==a&&h("Number of columns of A must match number of rows of B.");for(var s=0;sE&&(r=Math.abs(e[a][o]));for(var i=0;i6&&void 0!==arguments[6])||arguments[6];if(eC&&(f=0,d[c]=0);if(f&&1===a)return y("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),me(e,t,n,o);if(f)g=1;else for(c=0;c1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:ve,hsv2rgb:he,lab2xyz:ye,xyz2lab:be,xyz2rgb:Te,rgb2xyz:Ce,rgb2lab:Se,lab2rgb:Pe,uninitializeBounds:we,areBoundsInitialized:xe,computeBoundsFromPoints:Oe,clampValue:Me,clampVector:Ae,clampAndNormalizeValue:function(e,t){var n=0;return t[0]!==t[1]&&(n=((n=et[1]?t[1]:e)-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Ie,getAdjustedScalarRange:Re,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(var n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(var r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(var r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){for(var a=w(3),o=w(3),i=w(3),s=w(3),l=w(3),c=w(3),u=0;u<3;++u)a[u]=e[u]-t[u],o[u]=t[u]-n[u],i[u]=n[u]-e[u],s[u]=-a[u],l[u]=-o[u],c[u]=-i[u];var d=H(s),f=H(l),p=H(i),g=w(3);z(a,o,g);for(var m=H(g),v=d*f*p/(2*m),h=2*m*m,y=f*f*W(a,c)/h,b=p*p*W(s,o)/h,T=d*d*W(i,l)/h,C=0;C<3;++C)r[C]=y*e[C]+b*t[C]+T*n[C];return v},inf:1/0,negInf:-1/0,isInf:Ee,isNan:Ve,isNaN:Ve,isFinite:De,createUninitializedBounds:Ne,getMajorAxisIndex:function(e){for(var t=-1,n=-1,r=0;rt&&(n=r,t=a)}return n},floatToHex2:Be,floatRGB2HexCode:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";return"".concat(t).concat(e.map(Be).join(""))},float2CssRGBA:function(e){return 3===e.length?"rgb(".concat(e.map(ke).join(", "),")"):"rgba(".concat(ke(e[0]||0),", ").concat(ke(e[1]||0),", ").concat(ke(e[2]||0),", ").concat(e[3]||0,")")}};function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _e(e){for(var t=1;ta&&(e=a),t1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=We(),a=e.length,o=0;if(t<0&&n>1){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=e||[];n.length<=t;)n.push(null);return n}function Ke(e){return Object.prototype.toString.call(e).slice(8,-1)}var Xe={computeRange:ze,createRangeHelper:We,getDataType:Ke,getMaxNorm:function(e){for(var t=e.getNumberOfComponents(),n=0,r=0;rn&&(n=a)}return n}};var qe={name:"",numberOfComponents:1,size:0,dataType:d.DefaultDataType,rangeTuple:[0,0]};function Ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,qe,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");t.values?Array.isArray(t.values)&&(t.values=f.f(t.dataType,t.values)):t.values=f.e(t.dataType,t.size),t.values&&(t.size=t.values.length,t.dataType=Ke(t.values)),f.g(e,t),f.h(e,t,["name","numberOfComponents"]),function(e,t){function n(){t.ranges=null,e.modified()}t.classHierarchy.push("vtkDataArray"),e.getElementComponentSize=function(){return t.values.BYTES_PER_ELEMENT},e.getComponent=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=function(e,r,a){a!==t.values[e*t.numberOfComponents+r]&&(t.values[e*t.numberOfComponents+r]=a,n())},e.getData=function(){return t.values},e.getRange=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=e<0?t.numberOfComponents:e,r=null;return t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents)),(r=t.ranges[n])?(t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple):(r=ze(t.values,e,t.numberOfComponents),t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple)},e.setRange=function(e,n){t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents));var r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=function(e,n){for(var r=e*t.numberOfComponents,a=0;a1&&void 0!==arguments[1]?arguments[1]:je,r=t.numberOfComponents||1;n.length!==r&&(n.length=r);var a=e*r;if(1===r)n[0]=t.values[a];else if(2===r)n[0]=t.values[a],n[1]=t.values[a+1];else if(3===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2];else if(4===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2],n[3]=t.values[a+3];else for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=function(){return t.numberOfComponents},e.getNumberOfValues=function(){return t.values.length},e.getNumberOfTuples=function(){return t.values.length/t.numberOfComponents},e.getDataType=function(){return t.dataType},e.newClone=function(){return Ze({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents})},e.getName=function(){return t.name||(e.modified(),t.name="vtkDataArray".concat(e.getMTime())),t.name},e.setData=function(e,r){t.values=e,t.size=e.length,t.dataType=Ke(e),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),n()},e.getState=function(){var n=_e(_e({},t),{},{vtkClass:e.getClassName()});n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(function(e){n[e]||delete n[e]});var r={};return Object.keys(n).sort().forEach(function(e){r[e]=n[e]}),r.mtime&&delete r.mtime,r}}(e,t)}var Ze=f.d(Ye,"vtkDataArray"),Qe=_e(_e({newInstance:Ze,extend:Ye},Xe),d);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var et=1e-6,tt="coincide",nt="disjoint";function rt(e,t,n){var r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function at(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a);r[0]=e[0]-o*n[0],r[1]=e[1]-o*n[1],r[2]=e[2]-o*n[2]}function ot(e,t,n){var r=W(e,t),a=W(t,t);return 0===a&&(a=1),n[0]=e[0]-r*t[0]/a,n[1]=e[1]-r*t[1]/a,n[2]=e[2]-r*t[2]/a,n}function it(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a),i=W(n,n);0!==i?(r[0]=e[0]-o*n[0]/i,r[1]=e[1]-o*n[1]/i,r[2]=e[2]-o*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function st(e,t,n,r){var a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],i=[];G(t,e,o),G(n,e,i);var s=W(r,i),l=W(r,o);return(l<0?-l:l)<=(s<0?-s*et:s*et)?a:(a.t=s/l,a.x[0]=e[0]+a.t*o[0],a.x[1]=e[1]+a.t*o[1],a.x[2]=e[2]+a.t*o[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1,a)}function lt(e,t,n,r){var a={intersection:!1,l0:[],l1:[],error:null},o=[];z(t,r,o);var i,s=o.map(function(e){return Math.abs(e)});if(s[0]+s[1]+s[2]s[1]&&s[0]>s[2]?"x":s[1]>s[2]?"y":"z";var c=[],u=-W(t,e),d=-W(r,n);switch(i){case"x":c[0]=0,c[1]=(d*t[2]-u*r[2])/o[0],c[2]=(u*r[1]-d*t[1])/o[0];break;case"y":c[0]=(u*r[2]-d*t[2])/o[1],c[1]=0,c[2]=(d*t[0]-u*r[0])/o[1];break;case"z":c[0]=(d*t[1]-u*r[1])/o[2],c[1]=(u*r[0]-d*t[0])/o[2],c[2]=0}return a.l0=c,F(c,o,a.l1),a.intersection=!0,a}var ct={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:rt,projectPoint:at,projectVector:ot,generalizedProjectPoint:it,intersectWithLine:st,intersectWithPlane:lt,DISJOINT:nt,COINCIDE:tt};var ut={normal:[0,0,1],origin:[0,0,0]};function dt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ut,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=function(e){return rt(e,t.origin,t.normal)},e.projectPoint=function(e,n){at(e,t.origin,t.normal,n)},e.projectVector=function(e,n){return ot(e,t.normal,n)},e.push=function(e){if(0!==e)for(var n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=function(e,n){it(e,t.origin,t.normal,n)},e.evaluateFunction=function(e,n,r){return Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2])},e.evaluateGradient=function(e){return[t.normal[0],t.normal[1],t.normal[2]]},e.intersectWithLine=function(e,n){return st(e,n,t.origin,t.normal)},e.intersectWithPlane=function(e,n){return lt(e,n,t.origin,t.normal)}}(e,t)}var ft=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n(arguments.length<=1?void 0:arguments[1])?r:arguments.length<=1?void 0:arguments[1],e[2]=a<(arguments.length<=2?void 0:arguments[2])?a:arguments.length<=2?void 0:arguments[2],e[3]=o>(arguments.length<=2?void 0:arguments[2])?o:arguments.length<=2?void 0:arguments[2],e[4]=i<(arguments.length<=3?void 0:arguments[3])?i:arguments.length<=3?void 0:arguments[3],e[5]=s>(arguments.length<=3?void 0:arguments[3])?s:arguments.length<=3?void 0:arguments[3]}function Ot(e,t,n,r,a,o,i){var s=ht(e,6),l=s[0],c=s[1],u=s[2],d=s[3],f=s[4],p=s[5];void 0===i?(e[0]=Math.min(t[0],l),e[1]=Math.max(t[1],c),e[2]=Math.min(t[2],u),e[3]=Math.max(t[3],d),e[4]=Math.min(t[4],f),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,l),e[1]=Math.max(n,c),e[2]=Math.min(r,u),e[3]=Math.max(a,d),e[4]=Math.min(o,f),e[5]=Math.max(i,p))}function Mt(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t,e[1]=t>i?t:i,e[2]=n,e[3]=n>l?n:l,e[4]=r,e[5]=r>u?r:u,o!==t||s!==n||c!==r}function At(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Et(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function Dt(e,t){return e[2*t+1]-e[2*t]}function Vt(e){return[Dt(e,0),Dt(e,1),Dt(e,2)]}function Lt(e){return e.slice(0,2)}function Nt(e){return e.slice(2,4)}function Bt(e){return e.slice(4,6)}function kt(e){var t=Vt(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function Ft(e){if(St(e)){var t=Vt(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function Gt(e){return[e[0],e[2],e[4]]}function _t(e){return[e[1],e[3],e[5]]}function Ut(e,t){return e<=0&&t>=0||e>=0&&t<=0}function jt(e,t){for(var n=0,r=0;r<2;r++)for(var a=2;a<4;a++)for(var o=4;o<6;o++)t[n]=[e[r],e[a],e[o]],n++}function Wt(e,t,n){t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5]}function zt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Et(e);return t[0]=e[1]-n[0],t[1]=e[3]-n[1],t[2]=e[5]-n[2],t}function Ht(e,t,n,r){for(var a=[].concat(Tt),o=e.getData(),i=0;ie[2*u+1]?(i[u]=0,c[u]=e[2*u+1],o=!1):i[u]=2;if(o)return r[0]=t[0],r[1]=t[1],r[2]=t[2],a[0]=0,1;for(var d=0;d<3;d++)2!==i[d]&&0!==n[d]?l[d]=(c[d]-t[d])/n[d]:l[d]=-1;for(var f=0;f<3;f++)l[s]1||l[s]<0)return 0;a[0]=l[s];for(var p=0;p<3;p++)if(s!==p){if(r[p]=t[p]+l[s]*n[p],r[p]e[2*p+1])return 0}else r[p]=c[p];return 1}function Xt(e,t,n){for(var r=[],a=0,o=1,i=1,s=4;s<=5;++s){r[2]=e[s];for(var l=2;l<=3;++l){r[1]=e[l];for(var c=0;c<=1;++c)if(r[0]=e[c],a=ft.evaluate(n,t,r),i&&(o=a>=0?1:-1,i=0),0===a||o>0&&a<0||o<0&&a>0)return 1}}return 0}function qt(e,t){if(!St(e)||!St(t))return!1;for(var n,r=[0,0,0,0,0,0],a=0;a<3;a++)if(n=!1,t[2*a]>=e[2*a]&&t[2*a]<=e[2*a+1]?(n=!0,r[2*a]=t[2*a]):e[2*a]>=t[2*a]&&e[2*a]<=t[2*a+1]&&(n=!0,r[2*a]=e[2*a]),t[2*a+1]>=e[2*a]&&t[2*a+1]<=e[2*a+1]?(n=!0,r[2*a+1]=t[2*a+1]):e[2*a+1]>=t[2*a]&&e[2*a+1]<=t[2*a+1]&&(n=!0,r[2*a+1]=e[2*a+1]),!n)return!1;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],!0}function Yt(e,t){if(!St(e)||!St(t))return!1;for(var n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Zt(e,t,n,r){return!(te[1])&&(!(ne[3])&&!(re[5]))}function Qt(e,t,n){for(var 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],o=0,i=0;i<2;i++)for(var s=2;s<4;s++)for(var l=4;l<6;l++){var c=[e[i],e[s],e[l]];a[o++]=ft.evaluate(n,t,c)}for(var u=2;u--&&!(Ut(a[r[u][0]],a[r[u][4]])&&Ut(a[r[u][1]],a[r[u][5]])&&Ut(a[r[u][2]],a[r[u][6]])&&Ut(a[r[u][3]],a[r[u][7]])););if(u<0)return!1;for(var d=Math.sign(n[u]),f=Math.abs((e[2*u+1]-e[2*u])*n[u]),p=d>0?1:0,g=0;g<4;g++)if(0!==f){var m=Math.abs(a[r[u][g]])/f;d>0&&mp&&(p=m)}var v=(1-p)*e[2*u]+p*e[2*u+1];return d>0?e[2*u]=v:e[2*u+1]=v,!0}var $t=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bounds=t,this.bounds||(this.bounds=new Float64Array(6),Pt(this.bounds,Tt))}return function(e,t,n){t&&mt(e.prototype,t),n&&mt(e,n)}(e,[{key:"getBounds",value:function(){return this.bounds}},{key:"equals",value:function(e){return Ct(this.bounds,e)}},{key:"isValid",value:function(){return St(this.bounds)}},{key:"setBounds",value:function(e){return Pt(this.bounds,e)}},{key:"reset",value:function(){return wt(this.bounds)}},{key:"addPoint",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tn,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkFieldData");var n=e.getState;t.arrays&&(t.arrays=t.arrays.map(function(e){return{data:Object(en.a)(e.data)}})),e.initialize=function(){e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=function(){t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=function(n){e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map(function(e){return e}),t.arrays=n.arrays().map(function(e){return{array:e}})},e.getNumberOfArrays=function(){return t.arrays.length},e.getNumberOfActiveArrays=function(){return t.arrays.length},e.addArray=function(e){return t.arrays=[].concat(t.arrays,{data:e}),t.arrays.length-1},e.removeAllArrays=function(){t.arrays=[]},e.removeArray=function(e){t.arrays=t.arrays.filter(function(t){return e!==t.data.getName()})},e.removeArrayByIndex=function(e){t.arrays=t.arrays.filter(function(t,n){return n!==e})},e.getArrays=function(){return t.arrays.map(function(e){return e.data})},e.getArray=function(t){return"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t)},e.getArrayByName=function(e){return t.arrays.reduce(function(t,n,r){return n.data.getName()===e?n.data:t},null)},e.getArrayWithIndex=function(e){return t.arrays.reduce(function(t,n,r){return n.data&&n.data.getName()===e?{array:n.data,index:r}:t},{array:null,index:-1})},e.getArrayByIndex=function(e){return e>=0&&e=0},e.getArrayName=function(e){var n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=function(){return t.copyFieldFlags},e.getFlag=function(e){return t.copyFieldFlags[e]},e.passData=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach(function(n){var o=e.getFlag(n.getName());if(!1!==o&&(!t.doCopyAllOff||!0===o)&&n){var i=e.getArrayByName(n.getName());if(i){if(n.getNumberOfComponents()===i.getNumberOfComponents())if(r>-1&&r-1?a:r;i.setTuple(s,n.getTuple(r))}else for(var l=0;ln.getNumberOfTuples())e.addArray(n);else{var c=n.getNumberOfComponents(),u=n.getNumberOfValues(),d=a>-1?a:r;ue?t.data.getMTime():e},t.mtime)},e.getNumberOfComponents=function(){return t.arrays.reduce(function(e,t){return e+t.data.getNumberOfComponents()},0)},e.getNumberOfTuples=function(){return t.arrays.length>0?t.arrays[0].getNumberOfTuples():0},e.getState=function(){var e=n();return e.arrays=t.arrays.map(function(e){return{data:e.data.getState()}}),e}}(e,t)}var rn={newInstance:f.a.newInstance(nn,"vtkFieldData"),extend:nn},an={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln=an.AttributeTypes,cn=an.AttributeCopyOperations,un=f.a.vtkWarningMacro;var dn={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function fn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dn,n),rn.extend(e,t,n),f.a.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),function(e,t){var n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){var t=n.find(function(t){return ln[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()});return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes"),e.checkNumberOfComponents=function(e){return!0},e.setAttribute=function(n,a){var o=r(a);if(n&&"PEDIGREEIDS"===o.toUpperCase()&&!n.isA("vtkDataArray"))return un("Cannot set attribute ".concat(o,". The attribute must be a vtkDataArray.")),-1;if(n&&!e.checkNumberOfComponents(n,o))return un("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1;var i=t["active".concat(o)];if(i>=0&&i=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),f.a.obj(e,t),f.a.setGet(e,t,yn),function(e,t){t.classHierarchy.push("vtkDataSet"),yn.forEach(function(e){t[e]?t[e]=Object(en.a)(t[e]):t[e]=pn.newInstance()});var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),yn.forEach(function(n){t[n]=pn.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})}}(e,t)}var Cn=function(e){for(var t=1;te[1]||e[2]>e[3]||e[4]>e[5]?On.EMPTY:3===t?On.XYZ_GRID:2===t?e[0]===e[1]?On.YZ_PLANE:e[2]===e[3]?On.XZ_PLANE:On.XY_PLANE:1===t?e[0]0?(n[0]=2*(s*i+u*r+l*o-c*a)/d,n[1]=2*(l*i+u*a+c*r-s*o)/d,n[2]=2*(c*i+u*o+s*a-l*r)/d):(n[0]=2*(s*i+u*r+l*o-c*a),n[1]=2*(l*i+u*a+c*r-s*o),n[2]=2*(c*i+u*o+s*a-l*r)),Br(e,t,n),e}function Fr(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Gr(e,t){var n=t[0],r=t[1],a=t[2],o=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,a),e[1]=Math.hypot(o,i,s),e[2]=Math.hypot(l,c,u),e}function _r(e,t){var n=new In(3);Gr(n,t);var r=1/n[0],a=1/n[1],o=1/n[2],i=t[0]*r,s=t[1]*a,l=t[2]*o,c=t[4]*r,u=t[5]*a,d=t[6]*o,f=t[8]*r,p=t[9]*a,g=t[10]*o,m=i+u+g,v=0;return m>0?(v=2*Math.sqrt(m+1),e[3]=.25*v,e[0]=(d-p)/v,e[1]=(f-l)/v,e[2]=(s-c)/v):i>u&&i>g?(v=2*Math.sqrt(1+i-u-g),e[3]=(d-p)/v,e[0]=.25*v,e[1]=(s+c)/v,e[2]=(f+l)/v):u>g?(v=2*Math.sqrt(1+u-i-g),e[3]=(f-l)/v,e[0]=(s+c)/v,e[1]=.25*v,e[2]=(d+p)/v):(v=2*Math.sqrt(1+g-i-u),e[3]=(s-c)/v,e[0]=(f+l)/v,e[1]=(d+p)/v,e[2]=.25*v),e}function Ur(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3],l=a+a,c=o+o,u=i+i,d=a*l,f=a*c,p=a*u,g=o*c,m=o*u,v=i*u,h=s*l,y=s*c,b=s*u,T=r[0],C=r[1],S=r[2];return e[0]=(1-(g+v))*T,e[1]=(f+b)*T,e[2]=(p-y)*T,e[3]=0,e[4]=(f-b)*C,e[5]=(1-(d+v))*C,e[6]=(m+h)*C,e[7]=0,e[8]=(p+y)*S,e[9]=(m-h)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function jr(e,t,n,r,a){var o=t[0],i=t[1],s=t[2],l=t[3],c=o+o,u=i+i,d=s+s,f=o*c,p=o*u,g=o*d,m=i*u,v=i*d,h=s*d,y=l*c,b=l*u,T=l*d,C=r[0],S=r[1],P=r[2],w=a[0],x=a[1],O=a[2],M=(1-(m+h))*C,A=(p+T)*C,I=(g-b)*C,R=(p-T)*S,E=(1-(f+h))*S,D=(v+y)*S,V=(g+b)*P,L=(v-y)*P,N=(1-(f+m))*P;return e[0]=M,e[1]=A,e[2]=I,e[3]=0,e[4]=R,e[5]=E,e[6]=D,e[7]=0,e[8]=V,e[9]=L,e[10]=N,e[11]=0,e[12]=n[0]+w-(M*w+R*x+V*O),e[13]=n[1]+x-(A*w+E*x+L*O),e[14]=n[2]+O-(I*w+D*x+N*O),e[15]=1,e}function Wr(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n+n,s=r+r,l=a+a,c=n*i,u=r*i,d=r*s,f=a*i,p=a*s,g=a*l,m=o*i,v=o*s,h=o*l;return e[0]=1-d-g,e[1]=u+h,e[2]=f-v,e[3]=0,e[4]=u-h,e[5]=1-c-g,e[6]=p+m,e[7]=0,e[8]=f+v,e[9]=p-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zr(e,t,n,r,a,o,i){var s=1/(n-t),l=1/(a-r),c=1/(o-i);return e[0]=2*o*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*o*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(a+r)*l,e[10]=(i+o)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*o*2*c,e[15]=0,e}function Hr(e,t,n,r,a){var o,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(o=1/(r-a),e[10]=(a+r)*o,e[14]=2*a*r*o):(e[10]=-1,e[14]=-2*r),e}function Kr(e,t,n,r){var a=Math.tan(t.upDegrees*Math.PI/180),o=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(a+o);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(a-o)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function Xr(e,t,n,r,a,o,i){var s=1/(t-n),l=1/(r-a),c=1/(o-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(a+r)*l,e[14]=(i+o)*c,e[15]=1,e}function qr(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g=t[0],m=t[1],v=t[2],h=r[0],y=r[1],b=r[2],T=n[0],C=n[1],S=n[2];return Math.abs(g-T)0&&(u*=p=1/Math.sqrt(p),d*=p,f*=p);var g=l*f-c*d,m=c*u-s*f,v=s*d-l*u;return(p=g*g+m*m+v*v)>0&&(g*=p=1/Math.sqrt(p),m*=p,v*=p),e[0]=g,e[1]=m,e[2]=v,e[3]=0,e[4]=d*v-f*m,e[5]=f*g-u*v,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=f,e[11]=0,e[12]=a,e[13]=o,e[14]=i,e[15]=1,e}function Zr(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Qr(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function $r(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Jr(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function ea(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function ta(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function na(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[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]}function ra(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=e[9],f=e[10],p=e[11],g=e[12],m=e[13],v=e[14],h=e[15],y=t[0],b=t[1],T=t[2],C=t[3],S=t[4],P=t[5],w=t[6],x=t[7],O=t[8],M=t[9],A=t[10],I=t[11],R=t[12],E=t[13],D=t[14],V=t[15];return Math.abs(n-y)<=An*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-b)<=An*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(a-T)<=An*Math.max(1,Math.abs(a),Math.abs(T))&&Math.abs(o-C)<=An*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(i-S)<=An*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-P)<=An*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(l-w)<=An*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(c-x)<=An*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(u-O)<=An*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-M)<=An*Math.max(1,Math.abs(d),Math.abs(M))&&Math.abs(f-A)<=An*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(p-I)<=An*Math.max(1,Math.abs(p),Math.abs(I))&&Math.abs(g-R)<=An*Math.max(1,Math.abs(g),Math.abs(R))&&Math.abs(m-E)<=An*Math.max(1,Math.abs(m),Math.abs(E))&&Math.abs(v-D)<=An*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(h-V)<=An*Math.max(1,Math.abs(h),Math.abs(V))}var aa=Pr,oa=Jr;function ia(){var e=new In(3);return In!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function sa(e){var t=new In(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function la(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function ca(e,t,n){var r=new In(3);return r[0]=e,r[1]=t,r[2]=n,r}function ua(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function da(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function fa(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function pa(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function ga(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function ma(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function va(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ha(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function ya(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function ba(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Ta(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function Ca(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Sa(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Pa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return Math.hypot(n,r,a)}function wa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return n*n+r*r+a*a}function xa(e){var t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function Oa(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ma(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Aa(e,t){var n=t[0],r=t[1],a=t[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function Ia(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ra(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2];return e[0]=a*l-o*s,e[1]=o*i-r*l,e[2]=r*s-a*i,e}function Ea(e,t,n,r){var a=t[0],o=t[1],i=t[2];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e}function Da(e,t,n,r,a,o){var i=o*o,s=i*(2*o-3)+1,l=i*(o-2)+o,c=i*(o-1),u=i*(3-2*o);return e[0]=t[0]*s+n[0]*l+r[0]*c+a[0]*u,e[1]=t[1]*s+n[1]*l+r[1]*c+a[1]*u,e[2]=t[2]*s+n[2]*l+r[2]*c+a[2]*u,e}function Va(e,t,n,r,a,o){var i=1-o,s=i*i,l=o*o,c=s*i,u=3*o*s,d=3*l*i,f=l*o;return e[0]=t[0]*c+n[0]*u+r[0]*d+a[0]*f,e[1]=t[1]*c+n[1]*u+r[1]*d+a[1]*f,e[2]=t[2]*c+n[2]*u+r[2]*d+a[2]*f,e}function La(e,t){t=t||1;var n=2*Rn()*Math.PI,r=2*Rn()-1,a=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(n)*a,e[1]=Math.sin(n)*a,e[2]=r*t,e}function Na(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,e[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,e[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,e}function Ba(e,t,n){var r=t[0],a=t[1],o=t[2];return e[0]=r*n[0]+a*n[3]+o*n[6],e[1]=r*n[1]+a*n[4]+o*n[7],e[2]=r*n[2]+a*n[5]+o*n[8],e}function ka(e,t,n){var r=n[0],a=n[1],o=n[2],i=n[3],s=t[0],l=t[1],c=t[2],u=a*c-o*l,d=o*s-r*c,f=r*l-a*s,p=a*f-o*d,g=o*u-r*f,m=r*d-a*u,v=2*i;return u*=v,d*=v,f*=v,p*=2,g*=2,m*=2,e[0]=s+u+p,e[1]=l+d+g,e[2]=c+f+m,e}function Fa(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0],o[1]=a[1]*Math.cos(r)-a[2]*Math.sin(r),o[2]=a[1]*Math.sin(r)+a[2]*Math.cos(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ga(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[2]*Math.sin(r)+a[0]*Math.cos(r),o[1]=a[1],o[2]=a[2]*Math.cos(r)-a[0]*Math.sin(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function _a(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0]*Math.cos(r)-a[1]*Math.sin(r),o[1]=a[0]*Math.sin(r)+a[1]*Math.cos(r),o[2]=a[2],e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ua(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2],l=Math.sqrt(n*n+r*r+a*a)*Math.sqrt(o*o+i*i+s*s),c=l&&Ia(e,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function ja(e){return e[0]=0,e[1]=0,e[2]=0,e}function Wa(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function za(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ha(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2];return Math.abs(n-o)<=An*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-i)<=An*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-s)<=An*Math.max(1,Math.abs(a),Math.abs(s))}var Ka=pa,Xa=ga,qa=ma,Ya=Pa,Za=wa,Qa=la,$a=xa,Ja=function(){var e=ia();return function(t,n,r,a,o,i){var s,l;for(n||(n=3),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;s0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=a*i,e[3]=o*i,e}function wo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function xo(e,t,n,r){var a=n[0]*r[1]-n[1]*r[0],o=n[0]*r[2]-n[2]*r[0],i=n[0]*r[3]-n[3]*r[0],s=n[1]*r[2]-n[2]*r[1],l=n[1]*r[3]-n[3]*r[1],c=n[2]*r[3]-n[3]*r[2],u=t[0],d=t[1],f=t[2],p=t[3];return e[0]=d*c-f*l+p*s,e[1]=-u*c+f*i-p*o,e[2]=u*l-d*i+p*a,e[3]=-u*s+d*o-f*a,e}function Oo(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e[3]=s+r*(n[3]-s),e}function Mo(e,t){var n,r,a,o,i,s;t=t||1;do{i=(n=2*Rn()-1)*n+(r=2*Rn()-1)*r}while(i>=1);do{s=(a=2*Rn()-1)*a+(o=2*Rn()-1)*o}while(s>=1);var l=Math.sqrt((1-i)/s);return e[0]=t*n,e[1]=t*r,e[2]=t*a*l,e[3]=t*o*l,e}function Ao(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3];return e[0]=n[0]*r+n[4]*a+n[8]*o+n[12]*i,e[1]=n[1]*r+n[5]*a+n[9]*o+n[13]*i,e[2]=n[2]*r+n[6]*a+n[10]*o+n[14]*i,e[3]=n[3]*r+n[7]*a+n[11]*o+n[15]*i,e}function Io(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2],c=n[3],u=c*r+s*o-l*a,d=c*a+l*r-i*o,f=c*o+i*a-s*r,p=-i*r-s*a-l*o;return e[0]=u*c+p*-i+d*-l-f*-s,e[1]=d*c+p*-s+f*-i-u*-l,e[2]=f*c+p*-l+u*-s-d*-i,e[3]=t[3],e}function Ro(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Eo(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Do(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Vo(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=t[0],s=t[1],l=t[2],c=t[3];return Math.abs(n-i)<=An*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=An*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-l)<=An*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(o-c)<=An*Math.max(1,Math.abs(o),Math.abs(c))}var Lo=io,No=so,Bo=lo,ko=ho,Fo=yo,Go=bo,_o=To,Uo=function(){var e=eo();return function(t,n,r,a,o,i){var s,l;for(n||(n=4),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;sAn?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Ko(e,t){var n=mi(e,t);return Math.acos(2*n*n-1)}function Xo(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+a*c-o*l,e[1]=a*u+i*l+o*s-r*c,e[2]=o*u+i*c+r*l-a*s,e[3]=i*u-r*s-a*l-o*c,e}function qo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+i*s,e[1]=a*l+o*s,e[2]=o*l-a*s,e[3]=i*l-r*s,e}function Yo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l-o*s,e[1]=a*l+i*s,e[2]=o*l+r*s,e[3]=i*l-a*s,e}function Zo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+a*s,e[1]=a*l-r*s,e[2]=o*l+i*s,e[3]=i*l-o*s,e}function Qo(e,t){var n=t[0],r=t[1],a=t[2];return e[0]=n,e[1]=r,e[2]=a,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-a*a)),e}function $o(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=Math.exp(o),l=i>0?s*Math.sin(i)/i:0;return e[0]=n*l,e[1]=r*l,e[2]=a*l,e[3]=s*Math.cos(i),e}function Jo(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=i>0?Math.atan2(i,o)/i:0;return e[0]=n*s,e[1]=r*s,e[2]=a*s,e[3]=.5*Math.log(n*n+r*r+a*a+o*o),e}function ei(e,t,n){return Jo(e,t),gi(e,e,n),$o(e,e),e}function ti(e,t,n,r){var a,o,i,s,l,c=t[0],u=t[1],d=t[2],f=t[3],p=n[0],g=n[1],m=n[2],v=n[3];return(o=c*p+u*g+d*m+f*v)<0&&(o=-o,p=-p,g=-g,m=-m,v=-v),1-o>An?(a=Math.acos(o),i=Math.sin(a),s=Math.sin((1-r)*a)/i,l=Math.sin(r*a)/i):(s=1-r,l=r),e[0]=s*c+l*p,e[1]=s*u+l*g,e[2]=s*d+l*m,e[3]=s*f+l*v,e}function ni(e){var t=Rn(),n=Rn(),r=Rn(),a=Math.sqrt(1-t),o=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*n),e[1]=a*Math.cos(2*Math.PI*n),e[2]=o*Math.sin(2*Math.PI*r),e[3]=o*Math.cos(2*Math.PI*r),e}function ri(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n*n+r*r+a*a+o*o,s=i?1/i:0;return e[0]=-n*s,e[1]=-r*s,e[2]=-a*s,e[3]=o*s,e}function ai(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function oi(e,t){var n,r=t[0]+t[4]+t[8];if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var o=(a+1)%3,i=(a+2)%3;n=Math.sqrt(t[3*a+a]-t[3*o+o]-t[3*i+i]+1),e[a]=.5*n,n=.5/n,e[3]=(t[3*o+i]-t[3*i+o])*n,e[o]=(t[3*o+a]+t[3*a+o])*n,e[i]=(t[3*i+a]+t[3*a+i])*n}return e}function ii(e,t,n,r){var a=.5*Math.PI/180;t*=a,n*=a,r*=a;var o=Math.sin(t),i=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(r),u=Math.cos(r);return e[0]=o*l*u-i*s*c,e[1]=i*s*u+o*l*c,e[2]=i*l*c-o*s*u,e[3]=i*l*u+o*s*c,e}function si(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var li=to,ci=no,ui=ro,di=ao,fi=oo,pi=Xo,gi=mo,mi=wo,vi=Oo,hi=bo,yi=hi,bi=To,Ti=bi,Ci=Po,Si=Do,Pi=Vo,wi=function(){var e=ia(),t=ca(1,0,0),n=ca(0,1,0);return function(r,a,o){var i=Ia(a,o);return i<-.999999?(Ra(e,t,a),Qa(e)<1e-6&&Ra(e,n,a),Aa(e,e),zo(r,e,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Ra(e,a,o),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+i,Ci(r,r))}}(),xi=function(){var e=jo(),t=jo();return function(n,r,a,o,i,s){return ti(e,r,i,s),ti(t,a,o,s),ti(n,e,t,2*s*(1-s)),n}}(),Oi=function(){var e=Nn();return function(t,n,r,a){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=a[0],e[4]=a[1],e[7]=a[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Ci(t,oi(t,e))}}();function Mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ai(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ai(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ri,n),Cn.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=a.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),f.a.get(e,t,["direction","indexToWorld","worldToIndex"]),f.a.setGetArray(e,t,["origin","spacing"],3),f.a.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&(n*=t[r]-1)}return n},e.getNumberOfPoints=function(){var t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=function(n){var r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return Ii("Requesting a point from an empty image."),null;var a=new Float64Array(3);switch(t.dataDescription){case Sn.EMPTY:return null;case Sn.SINGLE_POINT:break;case Sn.X_LINE:a[0]=n;break;case Sn.Y_LINE:a[1]=n;break;case Sn.Z_LINE:a[2]=n;break;case Sn.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Sn.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Sn.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Sn.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:Ii("Invalid dataDescription")}var o=[0,0,0];return e.indexToWorld(a,o),o},e.getBounds=function(){return e.extentToBounds(t.extent)},e.extentToBounds=function(t){var n=[t[0],t[2],t[4],t[1],t[2],t[4],t[0],t[3],t[4],t[1],t[3],t[4],t[0],t[2],t[5],t[1],t[2],t[5],t[0],t[3],t[5],t[1],t[3],t[5]],r=new Float64Array([n[0],n[1],n[2]]),a=new Float64Array(3);e.indexToWorld(r,a);for(var o=[a[0],a[0],a[1],a[1],a[2],a[2]],s=3;s<24;s+=3)i.set(r,n[s],n[s+1],n[s+2]),e.indexToWorld(r,a),a[0]o[1]&&(o[1]=a[0]),a[1]>o[3]&&(o[3]=a[1]),a[2]>o[5]&&(o[5]=a[2]);return o},e.computeTransforms=function(){o.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],o.scale(t.indexToWorld,t.indexToWorld,t.spacing),o.invert(t.worldToIndex,t.indexToWorld)},e.setDirection=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.indexToWorld),i.transformMat4(s,a,t.indexToWorld),Oe(o,s,n),n},e.worldToIndexBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.worldToIndex),i.transformMat4(s,a,t.worldToIndex),Oe(o,s,n),n},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=function(){for(var t=e.getBounds(),n=[],r=0;r<3;r++)n[r]=(t[2*r+1]+t[2*r])/2;return n},e.computeHistogram=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);var a=[0,0,0],o=[0,0,0];Jt.computeCornerPoints(r,a,o),ie(a,a),ie(o,o);var i=e.getDimensions();Ae(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a),Ae(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o);for(var s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData(),u=-1/0,d=1/0,f=0,p=0,g=0,m=a[2];m<=o[2];m++)for(var v=a[1];v<=o[1];v++)for(var h=a[0]+v*s+m*l,y=a[0];y<=o[0];y++){if(!n||n([y,v,m],r)){var b=c[h];b>u&&(u=b),b0?p/g:0,C=f-T*T;return{minimum:d,maximum:u,average:T,variance:C,sigma:Math.sqrt(C)}},e.computeIncrements=function(e){for(var t=[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=0;r<3;++r)t[r]=n,n*=e[2*r+1]-e[2*r]+1;return t},e.computeOffsetIndex=function(t){var n=Mi(t,3),r=n[0],a=n[1],o=n[2],i=e.getExtent(),s=e.getPointData().getScalars().getNumberOfComponents(),l=e.computeIncrements(i,s);return Math.floor((Math.round(r)-i[0])*l[0]+(Math.round(a)-i[2])*l[1]+(Math.round(o)-i[4])*l[2])},e.getOffsetIndexFromWorld=function(t){for(var n=e.getExtent(),r=e.worldToIndex(t),a=0;a<3;++a)if(r[a]n[2*a+1])return Ii("GetScalarPointer: Pixel ".concat(r," is not in memory. Current extent = ").concat(n)),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return Ii("GetScalarPointer: Scalar Component ".concat(n," is not within bounds. Current Scalar numberOfComponents: ").concat(r)),NaN;var a=e.getOffsetIndexFromWorld(t);return Number.isNaN(a)?a:e.getPointData().getScalars().getComponent(a,n)}}(e,t)}var Di={newInstance:f.a.newInstance(Ei,"vtkImageData"),extend:Ei};function Vi(e){return function(){return f.a.vtkErrorMacro("vtkProp::".concat(e," - NOT IMPLEMENTED"))}}var Li={visibility:!0,pickable:!0,dragable:!0,useBounds:!0,allocatedRenderTime:10,estimatedRenderTime:0,savedEstimatedRenderTime:0,renderTimeMultiplier:1,paths:null,textures:[]};function Ni(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Li,n),f.a.obj(e,t),f.a.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),f.a.setGet(e,t,["visibility","pickable","dragable","useBounds","renderTimeMultiplier"]),function(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=function(){for(var e=t.mtime,n=0;ne&&(e=r)}return e},e.getNestedProps=function(){return null},e.getActors=function(){return[]},e.getActors2D=function(){return[]},e.getVolumes=function(){return[]},e.pick=Vi("pick"),e.hasKey=Vi("hasKey"),e.getRedrawMTime=function(){return t.mtime},e.setEstimatedRenderTime=function(e){t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=function(){t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=function(e){t.estimatedRenderTime+=e},e.setAllocatedRenderTime=function(e){t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=function(){return!1},e.getTextures=function(){return t.textures},e.hasTexture=function(e){return-1!==t.textures.indexOf(e)},e.addTexture=function(n){n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=function(n){var r=t.textures.filter(function(e){return e!==n});t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=function(){t.textures=[],e.modified()}}(e,t)}var Bi={newInstance:f.a.newInstance(Ni,"vtkProp"),extend:Ni};var ki={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 Fi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ki,n),Bi.extend(e,t,n),t.matrixMTime={},f.a.obj(t.matrixMTime),f.a.get(e,t,["bounds","isIdentity"]),f.a.getArray(e,t,["orientation"]),f.a.setGetArray(e,t,["origin","position","scale"],3),t.matrix=o.identity(new Float64Array(16)),t.rotation=o.identity(new Float64Array(16)),t.userMatrix=o.identity(new Float64Array(16)),t.transform=null,function(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=function(n){t.position=t.position.map(function(e,t){return e+n[t]}),e.modified()},e.getOrientationWXYZ=function(){var e=l.create();o.getRotation(e,t.rotation);var n=new Float64Array(3);return[O(l.getAxisAngle(n,e)),n[0],n[1],n[2]]},e.rotateX=function(n){0!==n&&(o.rotateX(t.rotation,t.rotation,x(n)),e.modified())},e.rotateY=function(n){0!==n&&(o.rotateY(t.rotation,t.rotation,x(n)),e.modified())},e.rotateZ=function(n){0!==n&&(o.rotateZ(t.rotation,t.rotation,x(n)),e.modified())},e.rotateWXYZ=function(n,r,a,i){if(0!==n&&(0!==r||0!==a||0!==i)){var s=x(n),c=l.create();l.setAxisAngle(c,[r,a,i],s);var u=new Float64Array(16);o.fromQuat(u,c),o.multiply(t.rotation,t.rotation,u),e.modified()}},e.setOrientation=function(n,r,a){return(n!==t.orientation[0]||r!==t.orientation[1]||a!==t.orientation[2])&&(t.orientation=[n,r,a],o.identity(t.rotation),e.rotateZ(a),e.rotateX(n),e.rotateY(r),e.modified(),!0)},e.setUserMatrix=function(n){o.copy(t.userMatrix,n),e.modified()},e.getMatrix=function(){return e.computeMatrix(),t.matrix},e.computeMatrix=function(){if(e.getMTime()>t.matrixMTime.getMTime()){o.identity(t.matrix),t.userMatrix&&o.multiply(t.matrix,t.matrix,t.userMatrix),o.translate(t.matrix,t.matrix,t.origin),o.translate(t.matrix,t.matrix,t.position),o.multiply(t.matrix,t.matrix,t.rotation),o.scale(t.matrix,t.matrix,t.scale),o.translate(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),o.transpose(t.matrix,t.matrix),t.isIdentity=!0;for(var n=0;n<4;++n)for(var r=0;r<4;++r)(n===r?1:0)!==t.matrix[n+4*r]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=function(){return Jt.getCenter(t.bounds)},e.getLength=function(){return Jt.getLength(t.bounds)},e.getXRange=function(){return Jt.getXRange(t.bounds)},e.getYRange=function(){return Jt.getYRange(t.bounds)},e.getZRange=function(){return Jt.getZRange(t.bounds)},e.getUserMatrix=function(){return t.userMatrix},e.onModified(function(){e.computeMatrix()})}(e,t)}var Gi={newInstance:f.a.newInstance(Fi,"vtkProp3D"),extend:Fi},_i={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},Ui={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:_i},ji={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Wi={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:ji};function zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ki=Ui.ScalarMappingTarget,Xi=Ui.VectorMode,qi=Qe.VtkDataTypes,Yi=Wi.ColorMode,Zi=f.a.vtkErrorMacro;function Qi(e){return e}function $i(e){return Math.floor(255*e+.5)}var Ji={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Xi.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ji,n),f.a.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],f.a.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),f.a.setArray(e,t,["mappingRange"],2),f.a.getArray(e,t,["mappingRange"]),function(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=function(){return e.setVectorMode(Xi.MAGNITUDE)},e.setVectorModeToComponent=function(){return e.setVectorMode(Xi.COMPONENT)},e.setVectorModeToRGBColors=function(){return e.setVectorMode(Xi.RGBCOLORS)},e.build=function(){},e.isOpaque=function(){return!0},e.setAnnotations=function(n,r){if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)Zi("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n)for(var a=r.length,o=0;o=0?t.annotationArray[a].annotation!==r&&(t.annotationArray[a].annotation=r,o=!0):(t.annotationArray.push({value:n,annotation:r}),a=t.annotationArray.length-1,o=!0),o&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=function(){return t.annotationArray.length},e.getAnnotatedValue=function(e){return e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value},e.getAnnotation=function(e){return void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation},e.getAnnotatedValueIndex=function(n){return t.annotationArray.length?e.checkForAnnotatedValue(n):-1},e.removeAnnotation=function(n){var r=e.checkForAnnotatedValue(n),a=r>=0;return a&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=function(){t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=function(n,r){if(t.indexedLookup){var a=e.getAnnotatedValueIndex(n);e.getIndexedColor(a,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=function(t){return e.getAnnotatedValueIndexInternal(t)},e.getAnnotatedValueIndexInternal=function(e){if(void 0!==t.annotatedValueMap[e]){var n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=function(e,t){t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=function(){t.annotatedValueMap=[];for(var e=t.annotationArray.length,n=0;n1?e.mapVectorsThroughTable(t,o,Ki.RGBA,-1,-1):(l<0&&(l=0),l>=a&&(l=a-1),e.mapScalarsThroughTable(t,o,Ki.RGBA,l))}return o},e.mapVectorsToMagnitude=function(e,t,n){for(var r=e.getNumberOfTuples(),a=e.getNumberOfComponents(),o=t.getData(),i=e.getData(),s=0;s=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==Xi.MAGNITUDE||1!==c&&1!==s||(i=Xi.COMPONENT));var u=0;switch(l>0&&(u=l),i){case Xi.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;default:case Xi.MAGNITUDE:var d=Qe.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,d,s),e.mapScalarsThroughTable(d,n,r,0);break;case Xi.RGBCOLORS:}},e.luminanceToRGBA=function(e,t,n,r){for(var a=r(n),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c=1&&n.getDataType()===qi.UNSIGNED_CHAR)return n;var i=Qe.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:qi.UNSIGNED_CHAR});if(a<=0)return i;o=(o=o>0?o:0)<1?o:1;var s=Qi;switch(n.getDataType()!==qi.FLOAT&&n.getDataType()!==qi.DOUBLE||(s=$i),r){case 1:e.luminanceToRGBA(i,n,o,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,o,s);break;case 4:e.rGBAToRGBA(i,n,o,s);break;default:return Zi("Cannot convert colors"),null}return i},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return 16777216},e.setRange=function(t,n){return e.setMappingRange(t,n)},e.getRange=function(t,n){return e.getMappingRange()}}(e,t)}var ts=function(e){for(var t=1;t.001?Math.acos(n/o):0,s=i>.001?Math.atan2(a,r):0;t[0]=o,t[1]=i,t[2]=s}function fs(e,t){if(e[0]>=t-.1)return e[2];var n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+n:e[2]-n}function ps(e,t,n,r){var a=[],o=[];Se(t,a),Se(n,o);var i=[],s=[];ds(a,i),ds(o,s);var l=e;if(i[1]>.05&&s[1]>.05&&function(e,t){var n=e-t;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}(i[2],s[2])>.33*Math.PI){var c=Math.max(i[0],s[0]);c=Math.max(88,c),e<.5?(s[0]=c,s[1]=0,s[2]=0,l*=2):(i[0]=c,i[1]=0,i[2]=0,l=2*l-1)}i[1]<.05&&s[1]>.05?i[2]=fs(s,i[0]):s[1]<.05&&i[1]>.05&&(s[2]=fs(i,s[0]));var u=[];u[0]=(1-l)*i[0]+l*s[0],u[1]=(1-l)*i[1]+l*s[1],u[2]=(1-l)*i[2]+l*s[2];var d=[];!function(e,t){var n=e[0],r=e[1],a=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(a),t[2]=n*Math.sin(r)*Math.sin(a)}(u,d),Pe(d,r)}var gs={clamping:!0,colorSpace:os.RGB,hSVWrap:!0,scale:is.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 ms(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gs,n),ts.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},f.a.obj(t.buildTime),f.a.get(e,t,["buildTime","mappingRange"]),f.a.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=function(){return t.nodes.length},e.addRGBPoint=function(t,n,r,a){return e.addRGBPointLong(t,n,r,a,.5,0)},e.addRGBPointLong=function(n,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(i<0||i>1)return cs("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return cs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var l={x:n,r:r,g:a,b:o,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();for(var c=0;c4&&void 0!==arguments[4]?arguments[4]:.5,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=[];return he([n,r,a],s),e.addRGBPoint(t,s[0],s[1],s[2],o,i)},e.setNodes=function(n){t.nodes!==n&&(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=function(){t.nodes.sort(function(e,t){return e.x-t.x}),e.updateRange()||e.modified()},e.updateRange=function(){var n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];var r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&&(e.modified(),!0)},e.removePoint=function(n){for(var r=0;r=t.nodes.length)return-1;var o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.movePoint=function(n,r){if(n!==r){e.removePoint(r);for(var a=0;a=n&&t.nodes[u].x<=i?t.nodes.splice(u,1):u++;e.addRGBPointLong(n,r,a,o,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=function(t,n,r,a,o,i,s,l){var c=[i,s,l],u=[],d=[];he([n,r,a],u),he(c,d),e.addRGBSegment(t,u[0],u[1],u[2],o,d[0],d[1],d[2])},e.mapValue=function(t){var n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=function(n,r){if(t.indexedLookup){var a=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o<0||0===a)e.getNanColor(r);else{var i=[];e.getNodeValue(o%a,i),r[0]=i.r,r[1]=i.g,r[2]=i.b}}else e.getTable(n,n,1,r)},e.getRedValue=function(t){var n=[];return e.getColor(t,n),n[0]},e.getGreenValue=function(t){var n=[];return e.getColor(t,n),n[1]},e.getBlueValue=function(t){var n=[];return e.getColor(t,n),n[2]},e.getTable=function(n,r,a,o){if(Le(n)||Le(r))for(var i=0;i0);var C=0,S=0,P=0;T&&(C=Math.log10(n),S=Math.log10(r));for(var w=0;w1?T?(P=C+w/(a-1)*(S-C),f=Math.pow(10,P)):f=n+w/(a-1)*(r-n):T?(P=.5*(C+S),f=Math.pow(10,P)):f=.5*(n+r),t.discretize){var O=t.mappingRange;if(f>=O[0]&&f<=O[1]){var M=t.numberOfValues,I=O[1]-O[0];if(M<=1)f=O[0]+I/2;else{var R=(f-O[0])/I,E=A(M*R);f=O[0]+E/(M-1)*I}}}for(;st.nodes[s].x;)++s.99999&&(h=.99999));if(f>t.mappingRange[1])o[x]=0,o[x+1]=0,o[x+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(o[x]=t.aboveRangeColor[0],o[x+1]=t.aboveRangeColor[1],o[x+2]=t.aboveRangeColor[2]):(o[x]=c,o[x+1]=u,o[x+2]=d));else if(f0&&(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b));else if(0===s&&(Math.abs(f-n)<1e-6||t.discretize))l>0?(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b):(o[x]=0,o[x+1]=0,o[x+2]=0);else{var D=0;if(D=(D=T?(P-p)/(g-p):(f-p)/(g-p)).99){if(D<.5){o[x]=m[0],o[x+1]=m[1],o[x+2]=m[2];continue}o[x]=v[0],o[x+1]=v[1],o[x+2]=v[2];continue}if(y<.01){if(t.colorSpace===os.RGB)o[x]=(1-D)*m[0]+D*v[0],o[x+1]=(1-D)*m[1]+D*v[1],o[x+2]=(1-D)*m[2]+D*v[2];else if(t.colorSpace===os.HSV){var V=[],L=[];ve(m,V),ve(v,L),t.hSVWrap&&(V[0]-L[0]>.5||L[0]-V[0]>.5)&&(V[0]>L[0]?V[0]-=1:L[0]-=1);var N=[];N[0]=(1-D)*V[0]+D*L[0],N[0]<0&&(N[0]+=1),N[1]=(1-D)*V[1]+D*L[1],N[2]=(1-D)*V[2]+D*L[2],he(N,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var B=[],k=[];Se(m,B),Se(v,k);var F=[];F[0]=(1-D)*B[0]+D*k[0],F[1]=(1-D)*B[1]+D*k[1],F[2]=(1-D)*B[2]+D*k[2],Pe(F,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.",t.colorSpace);continue}D<.5?D=.5*Math.pow(2*D,1+10*y):D>.5&&(D=1-.5*Math.pow(2*(1-D),1+10*y));var G=D*D,_=G*D,U=2*_-3*G+1,j=-2*_+3*G,W=_-2*G+D,z=_-G,H=void 0;if(t.colorSpace===os.RGB)for(var K=0;K<3;K++)H=(1-y)*(v[K]-m[K]),o[x+K]=U*m[K]+j*v[K]+W*H+z*H;else if(t.colorSpace===os.HSV){var X=[],q=[];ve(m,X),ve(v,q),t.hSVWrap&&(X[0]-q[0]>.5||q[0]-X[0]>.5)&&(X[0]>q[0]?X[0]-=1:q[0]-=1);for(var Y=[],Z=0;Z<3;Z++)H=(1-y)*(q[Z]-X[Z]),Y[Z]=U*X[Z]+j*q[Z]+W*H+z*H,0===Z&&Y[Z]<0&&(Y[Z]+=1);he(Y,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var Q=[],$=[];Se(m,Q),Se(v,$);for(var J=[],ee=0;ee<3;ee++)H=(1-y)*($[ee]-Q[ee]),J[ee]=U*Q[ee]+j*$[ee]+W*H+z*H;Pe(J,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.");for(var te=0;te<3;te++)o[x+te]=o[x+te]<0?0:o[x+te],o[x+te]=o[x+te]>1?1:o[x+te]}}}},e.getUint8Table=function(n,r,a){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==o)return t.table;if(0===t.nodes.length)return cs("Attempting to lookup a value with no points in the function"),t.table;var i=o?4:3;t.tableSize===a&&t.tableWithAlpha===o||(t.table=new Uint8Array(a*i),t.tableSize=a,t.tableWithAlpha=o);var s=[];e.getTable(n,r,a,s);for(var l=0;l1&&(i=(r-n)/(a-1));for(var s=0;s=t.nodes.length?(cs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){if(n<0||n>=t.nodes.length)return cs("Index out of range!"),-1;var a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=function(){return t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216},e.getIndexedColor=function(t,n){var r=e.getSize();if(r>0&&t>=0){var a=[];e.getNodeValue(t%r,a);for(var o=0;o<3;++o)n[o]=a[o+1];n[3]=1}else e.getNanColor(n),n[3]=1},e.fillFromDataPointer=function(t,n){if(!(t<=0)&&n){e.removeAllPoints();for(var r=0;rn[1]?(e.getColor(n[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])):(e.getColor(r[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(var o=0;o=n[0]&&t.nodes[o].x<=n[1]?t.nodes.splice(o,1):++o;return 1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){if(t.nodes.length<2)return-1;for(var e=Number.MAX_VALUE,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ys,n),f.a.obj(e,t),t.nodes=[],f.a.setGet(e,t,["allowDuplicateScalars","clamping"]),f.a.setArray(e,t,["range"],2),f.a.getArray(e,t,["range"]),function(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=function(){return t.nodes.length},e.getType=function(){var e,n=0,r=0;t.nodes.length>0&&(n=t.nodes[0].y);for(var a=1;an)switch(r){case 0:case 1:r=1;break;default:case 2:r=3}else switch(r){case 0:case 2:r=2;break;default:case 1:r=3}if(n=e,3===r)break}switch(r){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:case 3:return"Varied"}},e.getDataPointer=function(){var e=t.nodes.length;if(t.function=null,e>0){t.function=[];for(var n=0;n0?t.nodes[n-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x},e.getNodeValue=function(e,n){var r=t.nodes.length;return e<0||e>=r?(hs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){var a=t.nodes.length;if(n<0||n>=a)return hs("Index out of range!"),-1;var o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=function(t,n){return e.addPointLong(t,n,.5,0)},e.addPointLong=function(n,r,a,o){if(a<0||a>1)return hs("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return hs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var i,s={x:n,y:r,midpoint:a,sharpness:o};for(t.nodes.push(s),e.sortAndUpdateRange(),i=0;i=t.nodes.length)return-1;var a=r,o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addSegment=function(n,r,a,o){e.sortAndUpdateRange();for(var i=0;i=n&&t.nodes[i].x<=a?t.nodes.splice(i,1):i++;e.addPoint(n,r,.5,0),e.addPoint(a,o,.5,0)},e.getValue=function(t){var n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=function(n){if(n.length<2)return 0;var r=e.getRange();r[0]n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(var a=0;a=n[0]&&t.nodes[a].x<=n[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){var e=t.nodes.length;if(e<2)return-1;for(var n=t.nodes[1].x-t.nodes[0].x,r=0;r4&&void 0!==arguments[4]?arguments[4]:1,s=0,l=t.nodes.length,c=0;0!==l&&(c=t.nodes[l-1].y);var u=0,d=0,f=0,p=0,g=0,m=0,v=0;for(o=0;o1?e+o/(r-1)*(n-e):.5*(e+n);st.nodes[s].x;)++s.99999&&(m=.99999));if(s>=l)a[h]=t.clamping?c:0;else if(0===s)a[h]=t.clamping?t.nodes[0].y:0;else{var y=(u-d)/(f-d);if(y=y.99){if(y<.5){a[h]=p;continue}a[h]=g;continue}if(v<.01){a[h]=(1-y)*p+y*g;continue}y<.5?y=.5*Math.pow(2*y,1+10*v):y>.5&&(y=1-.5*Math.pow(2*(1-y),1+10*v));var b=y*y,T=b*y,C=2*T-3*b+1,S=-2*T+3*b,P=T-2*b+y,w=T-b,x=(1-v)*(g-p);a[h]=C*p+S*g+P*x+w*x;var O=pg?p:g;a[h]=a[h]M?M:a[h]}}}}(e,t)}var Ts={newInstance:f.a.newInstance(bs,"vtkPiecewiseFunction"),extend:bs},Cs={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ss={FRACTIONAL:0,PROPORTIONAL:1},Ps={InterpolationType:Cs,OpacityMode:Ss};function ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Os=Ps.InterpolationType,Ms=Ps.OpacityMode,As=f.a.vtkErrorMacro,Is=4;var Rs={independentComponents:!0,interpolationType:Os.FAST_LINEAR,shade:0,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:1};function Es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Rs,n),f.a.obj(e,t),!t.componentData){t.componentData=[];for(var r=0;r(e=t.componentData[r].grayTransferFunction.getMTime())?n:e):3===t.componentData[r].colorChannels&&t.componentData[r].rGBTransferFunction&&(n=n>(e=t.componentData[r].rGBTransferFunction.getMTime())?n:e),t.componentData[r].scalarOpacity&&(n=n>(e=t.componentData[r].scalarOpacity.getMTime())?n:e),t.componentData[r].gradientOpacity&&(t.componentData[r].disableGradientOpacity||(n=n>(e=t.componentData[r].gradientOpacity.getMTime())?n:e));return n},e.getColorChannels=function(e){return e<0||e>3?(As("Bad index - must be between 0 and 3"),0):t.componentData[e].colorChannels},e.setGrayTransferFunction=function(n,r){var a=!1;return t.componentData[n].grayTransferFunction!==r&&(t.componentData[n].grayTransferFunction=r,a=!0),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1,a=!0),a&&e.modified(),a},e.getGrayTransferFunction=function(n){return null===t.componentData[n].grayTransferFunction&&(t.componentData[n].grayTransferFunction=Ts.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction},e.setRGBTransferFunction=function(n,r){var a=!1;return t.componentData[n].rGBTransferFunction!==r&&(t.componentData[n].rGBTransferFunction=r,a=!0),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3,a=!0),a&&e.modified(),a},e.getRGBTransferFunction=function(n){return null===t.componentData[n].rGBTransferFunction&&(t.componentData[n].rGBTransferFunction=vs.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction},e.setScalarOpacity=function(n,r){return t.componentData[n].scalarOpacity!==r&&(t.componentData[n].scalarOpacity=r,e.modified(),!0)},e.getScalarOpacity=function(n){return null===t.componentData[n].scalarOpacity&&(t.componentData[n].scalarOpacity=Ts.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity},e.setComponentWeight=function(n,r){if(n<0||n>=Is)return As("Invalid index"),!1;var a=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==a&&(t.componentData[n].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=Is?(As("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(Os.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(Os.LINEAR)},e.setInterpolationTypeToFastLinear=function(){return e.setInterpolationType(Os.FAST_LINEAR)},e.getInterpolationTypeAsString=function(){return f.a.enumToString(Os,t.interpolationType)},["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["set".concat(r)]=function(r,a){return t.componentData[r]["".concat(n)]!==a&&(t.componentData[r]["".concat(n)]=a,e.modified(),!0)}}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["get".concat(r)]=function(e){return t.componentData[e]["".concat(n)]}})}(e,t)}var Ds=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ls,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["mapper"]),f.a.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=function(){return e},e.makeProperty=Ds.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!function(e){return e[0].map(function(t,n){return e.map(function(e){return e[n]})})}([n,t.mapperBounds]).reduce(function(e,t){return e&&t[0]===t[1]},!0)||e.getMTime()>t.boundsMTime.getMTime()){Vs("Recomputing bounds..."),t.mapperBounds=n.map(function(e){return e});var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?n:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e}}(e,t)}var Bs={newInstance:f.a.newInstance(Ns,"vtkVolume"),extend:Ns},ks={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3};var Fs={clippingPlanes:[]};var Gs={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fs,n),f.a.obj(e,t),f.a.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){e.update=function(){e.getInputData()},e.addClippingPlane=function(e){"vtkPlane"===e.getClassName()&&t.clippingPlanes.push(e)},e.getNumberOfClippingPlanes=function(){return t.clippingPlanes.length},e.removeAllClippingPlanes=function(){t.clippingPlanes.length=0},e.removeClippingPlane=function(e){e<0||e>=6||t.clippingPlanes.splice(e,1)},e.getClippingPlanes=function(){return t.clippingPlanes},e.setClippingPlanes=function(t){if(t)if(Array.isArray(t))for(var n=t.length,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Us,n),Gs.extend(e,t,n),f.a.obj(e,t),f.a.algo(e,t,1,0),f.a.setGet(e,t,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","blendMode"]),f.a.setGetArray(e,t,["averageIPScalarRange"],2),f.a.event(e,t,"lightingActivated"),function(e,t){t.classHierarchy.push("vtkVolumeMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.update=function(){e.getInputData()},e.setBlendModeToComposite=function(){e.setBlendMode(_s.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=function(){e.setBlendMode(_s.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=function(){e.setBlendMode(_s.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=function(){e.setBlendMode(_s.AVERAGE_INTENSITY_BLEND)},e.getBlendModeAsString=function(){return f.a.enumToString(_s,t.blendMode)}}(e,t)}var Ws={newInstance:f.a.newInstance(js,"vtkVolumeMapper"),extend:js};function zs(e,t){const n=[e.volume.cols,e.volume.rows,e.volume.imageIds.length];if(n[0]*n[1]*n[2]<1||n[1]<2||n[1]<2||n[2]<2)return;const r=Di.newInstance(),a=e.volume.imagePosition,o=e.volume.pixelSpacing.concat(e.volume.sliceThickness);r.setDimensions(n),r.setOrigin(a),r.setSpacing(o);const i=Qe.newInstance({name:"Scalars",values:t,numberOfComponents:1});return r.getPointData().setScalars(i),r.modified(),r}let Hs=!1;function Ks(e,t,n){let r=[],a=0,o=function(){let t={knee:24,thorax:364,abdomen:147}[e],n=[];for(let r=1;r{t.resetImageParsing(),t.readFiles(r,function(e,r){let a=e[_.keys(e)[0]];t.renderImage(a,"viewer"),n&&setTimeout(n,3e3,a)})})})}function Xs(e){return e*Math.PI/180}const qs=(e,t,n)=>{try{let r=ft.intersectWithPlane(e.position,e.normal,t.position,t.normal);if(r.intersection){const{l0:e,l1:t}=r,a=ft.intersectWithLine(e,t,n.position,n.normal);if(a.intersection)return a.x}}catch(e){console.log("some issue calculating the plane intersection",e)}return NaN};function Ys(e){const t=Bs.newInstance(),n=Ws.newInstance();n.setSampleDistance(1),t.setMapper(n),n.setInputData(e);const r=e.getPointData().getScalars().getRange();return t.getProperty().getRGBTransferFunction(0).setMappingRange(r[0],r[1]),t}n(28);var Zs=f.a.vtkErrorMacro;var Qs={parent:null,renderable:null,myFactory:null,children:[],visited:!1};function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qs,n),f.a.obj(e,t),f.a.event(e,t,"event"),t._renderableChildMap=new Map,f.a.get(e,t,["visited"]),f.a.setGet(e,t,["parent","renderable","myFactory"]),f.a.getArray(e,t,["children"]),function(e,t){t.classHierarchy.push("vtkViewNode"),e.build=function(e){},e.render=function(e){},e.traverse=function(n){var r=n.getTraverseOperation(),a=e[r];if(a)a(n);else{e.apply(n,!0);for(var o=0;o2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,el,n),f.a.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=function(n){if(n.isDeleted())return null;for(var r=0,a=n.getClassName(r++),o=!1,i=Object.keys(t.overrides);a&&!o;)-1!==i.indexOf(a)?o=!0:a=n.getClassName(r++);if(!o)return null;var s=t.overrides[a]();return s.setMyFactory(e),s},e.registerOverride=function(e,n){t.overrides[e]=n}}(e,t)}var nl={newInstance:f.a.newInstance(tl,"vtkViewNodeFactory"),extend:tl},rl=Object.create(null);function al(e,t){rl[e]=t}var ol={};function il(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ol,n),t.overrides=rl,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}(0,t)}var sl={newInstance:f.a.newInstance(il,"vtkOpenGLViewNodeFactory"),extend:il};var ll={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function cl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ll,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},f.i(e,t,["context","keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=function(n){n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext())},e.opaquePass=function(e){if(e){var n=t.openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),t.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},e.translucentPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=function(n){if(n!==t.lastRenderer||t.openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){o.copy(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,t.keyMatrices.wcvc);var r=t.openGLRenderer.getAspectRatio();o.copy(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(r,-1,1)),o.transpose(t.keyMatrices.vcpc,t.keyMatrices.vcpc),o.multiply(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)}var ul=f.d(cl);al("vtkCamera",ul);var dl=f.k;var fl={context:null,openGLRenderWindow:null,selector:null};function pl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fl,n),Js.extend(e,t,n),f.b(e,t,["shaderCache"]),f.i(e,t,["selector"]),function(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(dl("No lights are on, creating one."),t.renderable.createLight()),e},e.opaqueZBufferPass=function(n){if(n){var r=0,a=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),r|=a.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),r|=a.DEPTH_BUFFER_BIT,a.depthMask(!0));var o=e.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.colorMask(!0,!0,!0,!0),a.clear(r),a.enable(a.DEPTH_TEST)}},e.cameraPass=function(t){t&&e.clear()},e.getAspectRatio=function(){var e=t.parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=Me(e[0]-n[0],0,1),a=Me(e[1]-n[1],0,1),o=t.parent.normalizedDisplayToDisplay(r,a),i=Math.round(o[0]),s=Math.round(o[1]),l=Me(e[2]-n[0],0,1),c=Me(e[3]-n[1],0,1);l>n[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.clear=function(){var n=0,r=t.context;if(!t.renderable.getTransparent()){var a=t.renderable.getBackgroundByReference();t.context.clearColor(a[0],a[1],a[2],a[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);var o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))}}(e,t)}var gl=f.d(pl,"vtkOpenGLRenderer");al("vtkRenderer",gl);var ml={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},vl={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2},hl={ObjectType:vl};function yl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bl(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),f.a.obj(e,t),f.a.get(e,t,["openGLRenderWindow"]),function(e,t){function n(e){switch(e){case Cl.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Cl.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;default:case Cl.ARRAY_BUFFER:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");var r=null,a=null,o=!0,i="";e.getType=function(){return r},e.setType=function(e){r=e},e.getHandle=function(){return a},e.isReady=function(){return!1===o},e.generateBuffer=function(e){var o=n(e);return null===a&&(a=t.context.createBuffer(),r=e),n(r)===o},e.upload=function(s,l){return e.generateBuffer(l)?(t.context.bindBuffer(n(r),a),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),o=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1)},e.bind=function(){return!!a&&(t.context.bindBuffer(n(r),a),!0)},e.release=function(){return!!a&&(t.context.bindBuffer(n(r),null),!0)},e.releaseGraphicsResources=function(){null!==a&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(a),a=null)},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.getError=function(){return i}}(e,t)}var wl=bl(bl({newInstance:f.a.newInstance(Pl),extend:Pl},{}),hl),xl={FLAT:0,GOURAUD:1,PHONG:2},Ol={POINTS:0,WIREFRAME:1,SURFACE:2},Ml={Shading:xl,Representation:Ol,Interpolation:xl},Al=f.a.vtkErrorMacro;function Il(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(vl.ARRAY_BUFFER),e.createVBO=function(n,r,a,o){if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];var i=o.points.getData(),s=null,l=null,c=null,u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,s=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(function(e){e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())}),o.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=d,t.blockSize+=d,l=o.tcoords.getData()),o.colors?(t.colorComponents=o.colors.getNumberOfComponents(),t.colorOffset=0,c=o.colors.getData(),t.colorBO||(t.colorBO=wl.newInstance()),t.colorBO.setOpenGLRenderWindow(t.openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;var f,p=0,g=0,m=0,v=0,h=0,y=0,b={anythingToPoints:function(e,t,n){for(var r=0;r2)for(var r=0;r2){for(var r=0;r1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return e>2?3*(e-2):0}},C=null,S=null;a===Ol.POINTS||"verts"===r?(C=b.anythingToPoints,S=T.anythingToPoints):a===Ol.WIREFRAME||"lines"===r?(C=b["".concat(r,"ToWireframe")],S=T["".concat(r,"ToWireframe")]):(C=b["".concat(r,"ToSurface")],S=T["".concat(r,"ToSurface")]);for(var P=n.getData(),w=P.length,x=0,O=0;O0&&(Math.abs(D)/E>1e6||Math.abs(Math.log10(E))>3||0===E&&D>1e6)){for(var k=new Float64Array(3),F=new Float64Array(3),G=0;G<3;++G){var _=o.points.getRange(G),U=_[1]-_[0];k[G]=.5*(_[1]+_[0]),F[G]=U>0?1/U:1}e.setCoordShiftAndScale(k,F)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);f=function(e){if(p=3*e,t.coordShiftAndScaleEnabled?(A[I++]=(i[p++]-t.coordShift[0])*t.coordScale[0],A[I++]=(i[p++]-t.coordShift[1])*t.coordScale[1],A[I++]=(i[p++]-t.coordShift[2])*t.coordScale[2]):(A[I++]=i[p++],A[I++]=i[p++],A[I++]=i[p++]),null!==s&&(g=o.haveCellNormals?3*(y+o.cellOffset):3*e,A[I++]=s[g++],A[I++]=s[g++],A[I++]=s[g++]),t.customData.forEach(function(t){h=e*t.components;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rl,n),wl.extend(e,t,n),f.a.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),f.a.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Il(e,t)}var Dl={newInstance:f.a.newInstance(El),extend:El},Vl=f.a.vtkErrorMacro;var Ll={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function Nl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ll,n),f.a.obj(e,t),f.a.setGet(e,t,["shaderType","source","error","handle","context"]),function(e,t){t.classHierarchy.push("vtkShader"),e.compile=function(){var e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;switch(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),t.shaderType){case"Fragment":e=t.context.FRAGMENT_SHADER;break;case"Vertex":default:e=t.context.VERTEX_SHADER}if(t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){var n=t.context.getShaderInfoLog(t.handle);return Vl("Error compiling shader '".concat(t.source,"': ").concat(n)),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var Bl={newInstance:f.a.newInstance(Nl,"vtkShader"),extend:Nl},kl=f.a.vtkErrorMacro;var Fl={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 Gl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fl,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=Bl.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=Bl.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=Bl.newInstance(),t.geometryShader.setShaderType("Geometry"),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),function(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=function(){return t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(kl("Links failed: ".concat(t.error)),0):(kl(t.error),0):(kl(t.fragmentShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.fragmentShader.getError()),0):(kl(t.vertexShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.vertexShader.getError()),0)},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0)},e.bind=function(){return!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0))},e.isBound=function(){return!!t.bound},e.release=function(){t.context.useProgram(null),e.setBound(!1)},e.setContext=function(e){t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=function(){if(t.inked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){var n=t.context.getProgramInfoLog(t.handle);return kl("Error linking shader ".concat(n)),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix4fv(a,!1,o),!0},e.setUniformMatrix3x3=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix3fv(a,!1,o),!0},e.setUniformf=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1f(a,r),!0)},e.setUniformfv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1fv(a,r),!0)},e.setUniformi=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1i(a,r),!0)},e.setUniformiv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1iv(a,r),!0)},e.setUniform2f=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(o,r,a),!0},e.setUniform2fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2fv(a,r),!0)},e.setUniform2i=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(o,r,a),!0},e.setUniform2iv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2iv(a,r),!0)},e.setUniform3f=function(n,r,a,o){var i=e.findUniform(n);if(-1===i)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,a,o),!0},e.setUniform3fArray=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(a,r[0],r[1],r[2]),!0},e.setUniform3fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform3fv(a,r),!0)},e.setUniform3i=function(n){var r=e.findUniform(n);if(-1===r)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i1?a-1:0),i=1;i1?a-1:0),i=1;i3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var Ul={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null,openGLRenderWindow:null};function jl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ul,n),t.buffers=[],f.a.obj(e,t),f.a.get(e,t,["supported"]),f.a.setGet(e,t,["forceEmulation"]),function(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=function(){},e.initialize=function(){t.instancingExtension=null,t.openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t.openGLRenderWindow&&t.openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=function(){return 0!==t.handleVAO||!1===t.supported},e.bind=function(){if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,1):n.vertexAttribDivisor(i.index+l,1))}},e.release=function(){if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,0):n.vertexAttribDivisor(i.index+l,0)),n.disableVertexAttribArray(i.index+l)}},e.shaderProgramChanged=function(){e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=function(){e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=function(t,n,r,a,o,i,s,l){return e.addAttributeArrayWithDivisor(t,n,r,a,o,i,s,l,0,!1)},e.addAttributeArrayWithDivisor=function(n,r,a,o,i,s,l,c,u,d){if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==vl.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;var f=t.context,p={};if(p.name=a,p.index=f.getAttribLocation(t.handleProgram,a),p.offset=o,p.stride=i,p.type=s,p.size=l,p.normalize=c,p.isMatrix=d,p.divisor=u,-1===p.Index)return!1;if(r.bind(),f.enableVertexAttribArray(p.index),f.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p.index,1):f.vertexAttribDivisor(p.index,1)),p.buffer=r.getHandle(),!t.supported){for(var g=!1,m=0;m0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p+g,1):f.vertexAttribDivisor(p+g,1));return!0},e.removeAttributeArray=function(n){if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zl,n),f.a.obj(e,t),t.shaderSourceTime={},f.a.obj(t.shaderSourceTime),t.attributeUpdateTime={},f.a.obj(t.attributeUpdateTime),f.a.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType"]),t.program=_l.newInstance(),t.VAO=Wl.newInstance(),t.CABO=Dl.newInstance(),function(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=function(e){t.program.setContext(e.getContext()),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=function(e){t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)}}(e,t)}var Kl={newInstance:f.a.newInstance(Hl),extend:Hl},Xl={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},ql={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Yl={Wrap:Xl,Filter:ql};function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ql(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $l=Yl.Wrap,Jl=Yl.Filter,ec=Qe.VtkDataTypes,tc=f.k,nc=f.l,rc=f.m;var ac={openGLRenderWindow:null,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:$l.CLAMP_TO_EDGE,wrapT:$l.CLAMP_TO_EDGE,wrapR:$l.CLAMP_TO_EDGE,minificationFilter:Jl.NEAREST,magnificationFilter:Jl.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1};function oc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ac,n),Js.extend(e,t,n),t.sendParametersTime={},f.g(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},f.g(t.textureBuildTime,{mtime:0}),f.h(e,t,["format","openGLDataType"]),f.i(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap"]),f.b(e,t,["width","height","volumeInfo","components","handle","target"]),function(e,t){var n=this;function r(e,n){var r=[];if(e!==ec.FLOAT&&t.openGLDataType===t.context.FLOAT)for(var a=t.width*t.height*t.components,o=0;o=a&&(h=a-1);var y=m-v,b=1-y;v=v*r*o,h=h*r*o;for(var T=0;T=r&&(w=r-1);var x=S-P;P*=o,w*=o;for(var O=0;Oa[l]&&(a[l]=n[i]),i++;for(var c=[],u=[],d=0;d0&&void 0!==arguments[0]?arguments[0]:null;if(n?t.openGLRenderWindow=n:(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent()),t.context=t.openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Jl.LINEAR),e.setMagnificationFilter(Jl.LINEAR)):(e.setMinificationFilter(Jl.NEAREST),e.setMagnificationFilter(Jl.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR($l.REPEAT),e.setWrapS($l.REPEAT),e.setWrapT($l.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified()));var r=t.renderable.getInputData(0);if(r&&r.getPointData().getScalars()){for(var a=r.getExtent(),o=r.getPointData().getScalars(),i=[],s=0;st.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=function(){var e=!1;if(t.context&&t.handle){var n=0;switch(t.target){case t.context.TEXTURE_2D:n=t.context.TEXTURE_BINDING_2D;break;default:rc("impossible case")}e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=function(){t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t.openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=function(n,r){return t.internalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||tc("Unable to find suitable internal format for T=".concat(n," NC= ").concat(r)),t.internalFormat},e.getDefaultInternalFormat=function(e,r){var a=0;return(a=t.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!1))?a:((a=n.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!0))||(tc("Unsupported internal texture type!"),tc("Unable to find suitable internal format for T=".concat(e," NC= ").concat(r))),a)},e.setInternalFormat=function(n){n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=function(n,r){return t.format=e.getDefaultFormat(n,r),t.format},e.getDefaultFormat=function(e,n){if(t.openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}},e.resetFormatAndType=function(){t.format=0,t.internalFormat=0,t.openGLDataType=0},e.getDefaultDataType=function(e){if(t.openGLRenderWindow.getWebgl2())switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.FLOAT}switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear")?t.context.FLOAT:t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){return t.openGLDataType=e.getDefaultDataType(n),t.openGLDataType},e.getShiftAndScale=function(){var e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:e=(n=127.5)-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:e=(n=32767.5)-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:e=(n=2147483647.5)-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;break;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=function(e){switch(e){case Jl.NEAREST:return t.context.NEAREST;case Jl.LINEAR:return t.context.LINEAR;case Jl.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Jl.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Jl.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Jl.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=function(e){switch(e){case $l.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case $l.REPEAT:return t.context.REPEAT;case $l.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.create2DFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var c=a(r(s,[l]));return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,c[0]),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.createCubeFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();for(var c=a(r(s,l)),u=[],d=t.width,p=t.height,g=0;g=1&&C>=1;){var S=null;b<=t.maxLevel&&(S=u[6*b+y]),t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,t.internalFormat,T,C,0,t.format,t.openGLDataType,S),b++,T/=2,C/=2}return e.deactivate(),!0},e.createDepthFromRaw=function(n,r,a,o){return e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t.openGLRenderWindow.getWebgl2()?a===ec.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=r,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,o),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create2DFromImage=function(n){if(e.getOpenGLDataType(ec.UNSIGNED_CHAR),e.getInternalFormat(ec.UNSIGNED_CHAR,4),e.getFormat(ec.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.width=n.width,t.height=n.height,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);var r=!B(n.width)||!B(n.height),a=document.createElement("canvas");a.width=r?N(n.width):n.width,a.height=r?N(n.height):n.height;var o=a.getContext("2d");o.translate(0,a.height),o.scale(1,-1),o.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height),navigator.userAgent.indexOf("Chrome/69")>=0&&o.getImageData(0,0,1,1);var i=a;return t.context.texImage2D(t.target,0,t.internalFormat,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create3DFromRaw=function(n,r,a,o,i,s){return e.getOpenGLDataType(i),e.getInternalFormat(i,o),e.getFormat(i,o),t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_3D,t.components=o,t.width=n,t.height=r,t.depth=a,t.numberOfDimensions=3,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create3DFilterableFromRaw=function(n,r,a,i,s,l){for(var c=n*r*a,u=[],d=[],f=0;f4096&&(w===ec.FLOAT||i>=3)&&(O=4096);var M=1,A=1;c>O*O&&(A=M=Math.ceil(Math.sqrt(c/(O*O))));var I=Math.sqrt(c)/M;I=N(I);var R,E=Math.floor(I*M/n),D=Math.ceil(a/E),V=N(r*D/A);t.width=I,t.height=V,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=E,t.volumeInfo.yreps=D,t.volumeInfo.xstride=M,t.volumeInfo.ystride=A,t.volumeInfo.offset=S.offset,t.volumeInfo.scale=S.scale;var L=I*V*i;R=w===ec.FLOAT?new Float32Array(L):new Uint8Array(L);for(var B=0,k=Math.floor(n/M),F=Math.floor(r/A),G=0;G2&&void 0!==arguments[2]&&arguments[2],e.replaceShaderCoincidentOffset=function(n,r,a){var o=e.getCoincidentParameters(r,a);if(o&&(0!==o.factor||0!==o.offset)){var i=n.Fragment;i=_l.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t.openGLRenderWindow.getWebgl2()&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}},gc=f.l,mc=ml;function vc(e,t,n){if(t.apply(e)){var r=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(r,"-").concat(n)}return"0"}var hc={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,colorTexture:null,pwfTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hc,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.tris=Kl.newInstance(),t.openGLTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.pwfTexture=sc.newInstance(),t.imagemat=o.identity(new Float64Array(16)),f.i(e,t,[]),t.VBOBuildTime={},f.g(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkOpenGLImageMapper"),e.buildPass=function(n){if(n){t.openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera()),t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(r.getActiveCamera())}},e.translucentPass=function(t){t&&e.render()},e.opaqueZBufferPass=function(n){n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,n){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var n=t.openGLImageSlice.getRenderable(),r=t.openGLRenderer.getRenderable();e.renderPiece(r,n)},e.buildShaders=function(t,n,r){e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.getShaderTemplate=function(e,t,n){e.Vertex=uc.a,e.Fragment=fc.a,e.Geometry=""},e.replaceShaderValues=function(n,r,a){var o=n.Vertex,i=n.Fragment;o=_l.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,o=_l.substitute(o,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;var s=t.openGLTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;"];if(l){for(var u=1;un.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||gc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||gc("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());var o=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",o);var i=t.openGLTexture.getComponents(),s=a.getProperty().getIndependentComponents();if(s)for(var l=0;l1?1:0;var j=o.getData(),W=null;if(D===mc.I){W=new j.constructor(k[2]*k[1]*l);for(var z=0,H=0;H2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Tc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLImageSlice"),e.buildPass=function(n){if(t.renderable&&t.renderable.getVisibility()&&n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaqueZBufferPass=function(t){e.traverseOpaquePass(t)},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.opaqueZBufferPass=function(t,n){return e.opaquePass(t,n)},e.opaquePass=function(n,r){n&&(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0))},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Sc=f.d(Cc,"vtkOpenGLImageSlice");al("vtkImageSlice",Sc);var Pc={};function wc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0))},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.MCWCMatrix,t.renderable.getMatrix()),o.transpose(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?a.identity(t.normalMatrix):(a.fromMat4(t.normalMatrix,t.MCWCMatrix),a.invert(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix}}}(e,t)}var xc=f.d(wc,"vtkOpenGLVolume");al("vtkVolume",xc);var Oc={openGLRenderWindow:null,glFramebuffer:null,colorTexture:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Mc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Oc,n),f.g(e,t),f.i(e,t,["colorTexture"]),function(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=function(){return t.context.FRAMEBUFFER},e.saveCurrentBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=function(e){var n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t.openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=function(e){},e.restorePreviousBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=function(e){var n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t.openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=function(e){},e.bind=function(){t.context.bindFramebuffer(t.context.FRAMEBUFFER,t.glFramebuffer),t.colorTexture&&t.colorTexture.bind(),t.openGLRenderWindow.setActiveFramebuffer(e)},e.create=function(e,n){t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n},e.setColorBuffer=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.context,a=r.COLOR_ATTACHMENT0;if(n>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");a+=n}t.colorTexture=e,r.framebufferTexture2D(r.FRAMEBUFFER,a,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=t.context,r=n.COLOR_ATTACHMENT0;if(e>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0)},e.setDepthBuffer=function(e){if(t.openGLRenderWindow.getWebgl2()){var n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else f.l("Attaching depth buffer textures to fbo requires WebGL 2")},e.removeDepthBuffer=function(){if(t.openGLRenderWindow.getWebgl2()){var e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else f.l("Attaching depth buffer textures to framebuffers requires WebGL 2")},e.getGLFramebuffer=function(){return t.glFramebuffer},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.releaseGraphicsResources=function(){t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer),t.colorTexture&&t.colorTexture.releaseGraphicsResources()},e.getSize=function(){var e=[0,0];return null!==t.glFramebuffer&&(e[0]=t.glFramebuffer.width,e[1]=t.glFramebuffer.height),e},e.populateFramebuffer=function(){e.bind();var n=t.context,r=sc.newInstance();r.setOpenGLRenderWindow(t.openGLRenderWindow),r.setMinificationFilter(ql.LINEAR),r.setMagnificationFilter(ql.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,u.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)}}(e,t)}var Ac={newInstance:f.d(Mc,"vtkFramebuffer"),extend:Mc},Ic=n(10),Rc=n.n(Ic),Ec=n(11),Dc=n.n(Ec);function Vc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nc=f.m,Bc=f.l;function kc(e,t){if(e.length!==t.length)return!1;for(var n=0;n0&&(o=_l.substitute(o,"//VTK::vtkProportionalComponents",c.join("\n")).result)}var d=t.currentInput.getExtent(),f=t.currentInput.getSpacing(),p=new Float64Array(3);i.set(p,(d[1]-d[0])*f[0],(d[3]-d[2])*f[1],(d[5]-d[4])*f[2]);var g=i.length(p)/t.renderable.getSampleDistance();o=_l.substitute(o,"//VTK::MaximumSamplesValue","".concat(Math.ceil(g))).result,o=_l.substitute(o,"//VTK::LightComplexity","#define vtkLightComplexity ".concat(t.lastLightComplexity)).result,t.gopacity=a.getProperty().getUseGradientOpacity(0);for(var m=1;l&&!t.gopacity&&m0&&(a=_l.substitute(a,"//VTK::Light::Dec",["uniform vec3 lightColor".concat(o,";"),"uniform vec3 lightDirectionVC".concat(o,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(o,"; // normalized"),"//VTK::Light::Dec"],!1).result,a=_l.substitute(a,"//VTK::Light::Impl",[" float df = abs(dot(normal.rgb, -lightDirectionVC".concat(o,"));")," diffuse += ((df".concat("",") * lightColor").concat(o,");")," float sf = pow( abs(dot(lightHalfAngleVC".concat(o,",normal.rgb)), vSpecularPower);")," specular += ((sf".concat("",") * lightColor").concat(o,");")," //VTK::Light::Impl"],!1).result,o++)})}e.Fragment=a},e.replaceShaderClippingPlane=function(e,n,r){var a=e.Fragment;if(t.renderable.getClippingPlanes().length>0){var o=t.renderable.getClippingPlanes().length;a=_l.substitute(a,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","//VTK::ClipPlane::Dec"],!1).result,a=_l.substitute(a,"//VTK::ClipPlane::Impl",["for(int i = 0; i < ".concat(o,"; i++) {")," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}e.Fragment=a},e.getNeedToRebuildShaders=function(n,r,a){var o=0;a.getProperty().getShade()&&t.renderable.getBlendMode()===ks.COMPOSITE_BLEND&&(o=0,t.numberOfLights=0,r.getLights().forEach(function(e){e.getSwitch()>0&&(t.numberOfLights++,0===o&&(o=1)),1===o&&(t.numberOfLights>1||1!==e.getIntensity()||!e.lightTypeIsHeadLight())&&(o=2),o<3&&e.getPositional()&&(o=3)}));var s=!1;t.lastLightComplexity!==o&&(t.lastLightComplexity=o,s=!0);var l=t.scalarTexture.getComponents(),c=a.getProperty().getIndependentComponents(),u=!1,d=[];if(c){for(var f=0;f0&&(u=!0)}var p=t.currentInput.getExtent(),g=t.currentInput.getSpacing(),m=new Float64Array(3);i.set(m,(p[1]-p[0])*g[0],(p[3]-p[2])*g[1],(p[5]-p[4])*g[2]);var v=i.length(m)/t.renderable.getSampleDistance(),h={interpolationType:a.getProperty().getInterpolationType(),useLabelOutline:a.getProperty().getUseLabelOutline(),numComp:l,usesProportionalComponents:u,iComps:c,maxSamples:v,useGradientOpacity:a.getProperty().getUseGradientOpacity(0),blendMode:t.renderable.getBlendMode(),averageIPScalarMode:t.renderable.getAverageIPScalarRange(),proportionalComponents:d};return t.previousState&&t.previousState.interpolationType===h.interpolationType&&t.previousState.useLabelOutline===h.useLabelOutline&&t.previousState.numComp===h.numComp&&t.previousState.usesProportionalComponents===h.usesProportionalComponents&&t.previousState.iComps===h.iComps&&t.previousState.maxSamples===h.maxSamples&&t.previousState.useGradientOpacity===h.useGradientOpacity&&t.previousState.blendMode===h.blendMode&&kc(t.previousState.averageIPScalarMode,h.averageIPScalarMode)&&kc(t.previousState.proportionalComponents,h.proportionalComponents)?!!(0===n.getProgram()||s||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||!!t.lastZBufferTexture!=!!t.zBufferTexture||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(o.isAttributeUsed("vertexDC")&&(n.getVAO().addAttributeArray(o,n.getCABO(),"vertexDC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in shader VAO.")),n.getAttributeUpdateTime().modified()),o.setUniformi("texture1",t.scalarTexture.getTextureUnit()),o.setUniformf("sampleDistance",t.renderable.getSampleDistance()),null!==t.zBufferTexture){o.setUniformi("zBufferTexture",t.zBufferTexture.getTextureUnit());var i=e.getRenderTargetSize();o.setUniformf("vpWidth",i[0]),o.setUniformf("vpHeight",i[1])}},e.setCameraShaderParameters=function(n,r,s){var l=t.openGLCamera.getKeyMatrices(r),c=t.openGLVolume.getKeyMatrices();o.multiply(t.modelToView,l.wcvc,c.mcwc);var u=n.getProgram(),d=t.openGLCamera.getRenderable(),f=d.getClippingRange();u.setUniformf("camThick",f[1]-f[0]),u.setUniformf("camNear",f[0]),u.setUniformf("camFar",f[1]);for(var p=t.currentInput.getBounds(),g=t.currentInput.getDimensions(),m=new Float64Array(3),v=new Float64Array(3),h=1,y=-1,b=1,T=-1,C=0;C<8;++C){if(i.set(m,p[C%2],p[2+Math.floor(C/2)%2],p[4+Math.floor(C/4)]),i.transformMat4(m,m,t.modelToView),!d.getParallelProjection()){i.normalize(v,m);var S=-f[0]/m[2];i.scale(m,v,S)}i.transformMat4(m,m,l.vcpc),h=Math.min(m[0],h),y=Math.max(m[0],y),b=Math.min(m[1],b),T=Math.max(m[1],T)}u.setUniformf("dcxmin",h),u.setUniformf("dcxmax",y),u.setUniformf("dcymin",b),u.setUniformf("dcymax",T),u.isUniformUsed("cameraParallel")&&u.setUniformi("cameraParallel",d.getParallelProjection());var P=t.currentInput.getExtent(),w=t.currentInput.getSpacing(),x=new Float64Array(3);i.set(x,(P[1]-P[0]+1)*w[0],(P[3]-P[2]+1)*w[1],(P[5]-P[4]+1)*w[2]),u.setUniform3f("vSpacing",w[0],w[1],w[2]),i.set(m,P[0],P[2],P[4]),t.currentInput.indexToWorldVec3(m,m),i.transformMat4(m,m,t.modelToView),u.setUniform3f("vOriginVC",m[0],m[1],m[2]);var O=t.currentInput.getIndexToWorld();o.multiply(t.idxToView,t.modelToView,O),a.multiply(t.idxNormalMatrix,l.normalMatrix,c.normalMatrix),a.multiply(t.idxNormalMatrix,t.idxNormalMatrix,t.currentInput.getDirection());var M=i.length(x)/t.renderable.getSampleDistance();M>t.renderable.getMaximumSamplesPerRay()&&Nc("The number of steps required ".concat(Math.ceil(M)," is larger than the\n specified maximum number of steps ").concat(t.renderable.getMaximumSamplesPerRay(),".\n Please either change the\n volumeMapper sampleDistance or its maximum number of samples."));var A=new Float64Array(3);if(i.set(A,1,1,1),i.divide(A,A,x),u.setUniform3f("vVCToIJK",A[0],A[1],A[2]),u.setUniform3i("volumeDimensions",g[0],g[1],g[2]),!t.openGLRenderWindow.getWebgl2()){var I=t.scalarTexture.getVolumeInfo();u.setUniformf("texWidth",t.scalarTexture.getWidth()),u.setUniformf("texHeight",t.scalarTexture.getHeight()),u.setUniformi("xreps",I.xreps),u.setUniformi("xstride",I.xstride),u.setUniformi("ystride",I.ystride)}for(var R=new Float64Array(3),E=new Float64Array(3),D=0;D<6;++D){switch(D){default:case 0:i.set(R,1,0,0),i.set(E,P[1],P[3],P[5]);break;case 1:i.set(R,-1,0,0),i.set(E,P[0],P[2],P[4]);break;case 2:i.set(R,0,1,0),i.set(E,P[1],P[3],P[5]);break;case 3:i.set(R,0,-1,0),i.set(E,P[0],P[2],P[4]);break;case 4:i.set(R,0,0,1),i.set(E,P[1],P[3],P[5]);break;case 5:i.set(R,0,0,-1),i.set(E,P[0],P[2],P[4])}i.transformMat3(R,R,t.idxNormalMatrix),i.transformMat4(E,E,t.idxToView);var V=-1*i.dot(E,R);if(u.setUniform3f("vPlaneNormal".concat(D),R[0],R[1],R[2]),u.setUniformf("vPlaneDistance".concat(D),V),s.getProperty().getUseLabelOutline()){var L=t.currentInput.getWorldToIndex();u.setUniformMatrix("vWCtoIDX",L),o.invert(t.projectionToWorld,l.wcpc),u.setUniformMatrix("PCWCMatrix",t.projectionToWorld);var N=e.getRenderTargetSize();u.setUniformf("vpWidth",N[0]),u.setUniformf("vpHeight",N[1])}}switch(o.invert(t.projectionToView,l.vcpc),u.setUniformMatrix("PCVCMatrix",t.projectionToView),t.lastLightComplexity){default:case 0:break;case 1:case 2:case 3:var B=0,k=[];r.getLights().forEach(function(e){if(e.getSwitch()>0){var t=e.getColor(),n=e.getIntensity();k[0]=t[0]*n,k[1]=t[1]*n,k[2]=t[2]*n,u.setUniform3fArray("lightColor".concat(B),k);var r=e.getDirection();i.set(R,r[0],r[1],r[2]),i.transformMat3(R,R,l.normalMatrix),u.setUniform3f("lightDirectionVC".concat(B),R[0],R[1],R[2]);var a=[-.5*R[0],-.5*R[1],-.5*(R[2]-1)];u.setUniform3fArray("lightHalfAngleVC".concat(B),a),B++}})}},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram();a.setUniformi("ctexture",t.colorTexture.getTextureUnit()),a.setUniformi("otexture",t.opacityTexture.getTextureUnit()),a.setUniformi("jtexture",t.jitterTexture.getTextureUnit());var o=t.scalarTexture.getVolumeInfo(),i=r.getProperty(),s=t.scalarTexture.getComponents(),l=r.getProperty().getIndependentComponents();if(l&&s>=2)for(var c=0;c0&&(a.setUniformf("vAmbient",i.getAmbient()),a.setUniformf("vDiffuse",i.getDiffuse()),a.setUniformf("vSpecular",i.getSpecular()),a.setUniformf("vSpecularPower",i.getSpecularPower()))},e.getClippingPlaneShaderParameters=function(e,n,r){if(t.renderable.getClippingPlanes().length>0){for(var a=t.openGLCamera.getKeyMatrices(n),o=[],s=[],l=t.renderable.getClippingPlanes(),c=l.length,u=0;u1.43){var e=t.framebuffer.getSize();return[t.fvp[0]*e[0],t.fvp[1]*e[1]]}return t.openGLRenderWindow.getFramebufferSize()},e.renderPieceStart=function(n,r){if(t.renderable.getAutoAdjustSampleDistances()){var a=n.getVTKWindow().getInteractor(),o=a.getLastFrameTime();if(t.avgFrameTime=.97*t.avgFrameTime+.03*o,t.avgWindowArea=.97*t.avgWindowArea+.03/(t.lastXYF*t.lastXYF),n.getVTKWindow().getInteractor().isAnimating()){var i=Math.sqrt(t.avgFrameTime*a.getDesiredUpdateRate()/t.avgWindowArea);i>10&&(i=10),t.targetXYF=i}else t.targetXYF=Math.sqrt(t.avgFrameTime*a.getStillUpdateRate()/t.avgWindowArea);t.targetXYF<1.53&&t.targetXYF>1.33&&(t.targetXYF=t.lastXYF),Math.abs(1-t.targetXYF/t.lastXYF)<.1&&(t.targetXYF=t.lastXYF),t.lastXYF=t.targetXYF}else t.lastXYF=t.renderable.getImageSampleDistance();t.lastXYF<=1.43&&(t.lastXYF=1);var s=t.lastXYF,l=t.openGLRenderWindow.getFramebufferSize();if(s>1.43){if(t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer();else{var c=t.framebuffer.getSize();c[0]===Math.floor(.7*l[0])&&c[1]===Math.floor(.7*l[1])||(t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();var u=t.context;u.clearColor(0,0,0,0),u.colorMask(!0,!0,!0,!0),u.clear(u.COLOR_BUFFER_BIT),u.viewport(0,0,l[0]/s,l[1]/s),t.fvp=[Math.floor(l[0]/s)/Math.floor(.7*l[0]),Math.floor(l[1]/s)/Math.floor(.7*l[1])]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r),r.getProperty().getInterpolationType()===Cs.NEAREST?(t.scalarTexture.setMinificationFilter(ql.NEAREST),t.scalarTexture.setMagnificationFilter(ql.NEAREST)):(t.scalarTexture.setMinificationFilter(ql.LINEAR),t.scalarTexture.setMagnificationFilter(ql.LINEAR)),t.lastBoundBO=null,null!==t.zBufferTexture&&t.zBufferTexture.activate()},e.renderPieceDraw=function(n,r){var a=t.context;t.scalarTexture.activate(),t.opacityTexture.activate(),t.colorTexture.activate(),t.jitterTexture.activate(),e.updateShaders(t.tris,n,r),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.scalarTexture.deactivate(),t.colorTexture.deactivate(),t.opacityTexture.deactivate(),t.jitterTexture.deactivate()},e.renderPieceFinish=function(e,n){if(null!==t.zBufferTexture&&t.zBufferTexture.deactivate(),t.lastXYF>1.43){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t.openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join("\n"),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join("\n"),"");var r=t.copyShader;t.copyVAO=Wl.newInstance(),t.copyVAO.setOpenGLRenderWindow(t.openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(r,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in copy shader VAO.")}else t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);var a=t.openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,a[0],a[1]);var o=t.framebuffer.getColorTexture();o.activate(),t.copyShader.setUniformi("texture",o.getTextureUnit()),t.copyShader.setUniform2f("tfactor",t.fvp[0],t.fvp[1]);var i=t.context;i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),o.deactivate(),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=function(n,r){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):Bc("No input!")},e.computeBounds=function(n,r){e.getInput()?t.bounds=e.getInput().getBounds():we(t.Bounds)},e.updateBufferObjects=function(t,n){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=function(n,r){return t.VBOBuildTime.getMTime()1?1:-1,I[3*R+2]=-1;var E=new Uint16Array(8);E[0]=3,E[1]=0,E[2]=1,E[3]=3,E[4]=3,E[5]=0,E[6]=3,E[7]=2;var D=Qe.newInstance({numberOfComponents:3,values:I});D.setName("points");var V=Qe.newInstance({numberOfComponents:1,values:E});t.tris.getCABO().createVBO(V,"polys",Ol.SURFACE,{points:D,cellOffset:0})}t.VBOBuildTime.modified()}}}}var Gc={context:null,VBOBuildTime:null,scalarTexture:null,scalarTextureString:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lastLightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function _c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gc,n),Js.extend(e,t,n),t.VBOBuildTime={},f.g(t.VBOBuildTime,{mtime:0}),t.tris=Kl.newInstance(),t.scalarTexture=sc.newInstance(),t.opacityTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.jitterTexture=sc.newInstance(),t.jitterTexture.setWrapS(Xl.REPEAT),t.jitterTexture.setWrapT(Xl.REPEAT),t.framebuffer=Ac.newInstance(),t.idxToView=o.identity(new Float64Array(16)),t.idxNormalMatrix=a.identity(new Float64Array(9)),t.modelToView=o.identity(new Float64Array(16)),t.projectionToView=o.identity(new Float64Array(16)),t.projectionToWorld=o.identity(new Float64Array(16)),f.i(e,t,["context"]),Fc(e,t)}var Uc=f.d(_c,"vtkOpenGLVolumeMapper");al("vtkVolumeMapper",Uc);var jc=f.k;var Wc={};function zc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wc,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent();var a=t.openGLRenderer.getAspectRatio(),o=t.openGLRenderer?t.openGLRenderer.getRenderable().getActiveCamera():null,i=t.openGLRenderer.getTiledSizeAndOrigin(),s=null;if(t.renderable.getUseZValues()){var l=r.getZBufferTexture(),c=Math.floor(l.getWidth()),u=Math.floor(l.getHeight()),d=t.openGLRenderWindow.getContext();l.bind();var f=r.getFramebuffer();f?f.saveCurrentBindingsAndBuffers():jc("No framebuffer to save/restore");var p=d.createFramebuffer();d.bindFramebuffer(d.FRAMEBUFFER,p),d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,l.getHandle(),0),d.checkFramebufferStatus(d.FRAMEBUFFER)===d.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(c*u*4),d.viewport(0,0,c,u),d.readPixels(0,0,c,u,d.RGBA,d.UNSIGNED_BYTE,s)),f&&f.restorePreviousBindingsAndBuffers(),d.deleteFramebuffer(p)}t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,s)},e.queryPass=function(e,n){e&&t.renderable.getUseZValues()&&n.requestDepth()}}(e,t)}var Hc=f.d(zc,"vtkOpenGLPixelSpaceCallbackMapper");al("vtkPixelSpaceCallbackMapper",Hc);var Kc=Object.create(null);function Xc(e,t){Kc[e]=t}var qc={};function Yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),t.overrides=Kc,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}(0,t)}f.a.newInstance(Yc,"vtkWebGPUViewNodeFactory");var Zc={keyMatrixTime:null,keyMatrices:null};function Qc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.a.obj(t.keyMatrixTime),t.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)},f.a.setGet(e,t,["keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getKeyMatrices=function(n){var r=n.getRenderable(),a=n.getParent();if(Math.max(a.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime().getMTime())>t.keyMatrixTime.getMTime()){var i=t.renderable.getViewMatrix();o.copy(t.keyMatrices.normalMatrix,i),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,i);var s=n.getStabilizedCenterByReference();o.translate(t.keyMatrices.scvc,t.keyMatrices.wcvc,s);var l=n.getAspectRatio(),c=t.renderable.getProjectionMatrix(l,-1,1);o.transpose(t.keyMatrices.vcpc,c),t.keyMatrices.vcpc[2]=.5*c[8]+.5*c[12],t.keyMatrices.vcpc[6]=.5*c[9]+.5*c[13],t.keyMatrices.vcpc[10]=.5*c[10]+.5*c[14],t.keyMatrices.vcpc[14]=.5*c[11]+.5*c[15],o.multiply(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),o.invert(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}(e,t)}var $c=f.a.newInstance(Qc);Xc("vtkCamera",$c);var Jc={device:null,handle:null,name:null};function eu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jc,n),f.a.obj(e,t),t.bindables=[],t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),f.a.setGet(e,t,["name","device","arrayInformation","sourceTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.addBindable=function(n){for(var r=0;rr?o:r}if(r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nu,n),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=function(e,n){t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var au={newInstance:f.a.newInstance(ru,"vtkWebGPUShaderModule"),extend:ru};var ou={shaderModules:null,device:null,window:null};function iu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ou,n),t._shaderModules=new Map,f.a.obj(e,t),f.a.setGet(e,t,["device","window"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=function(e){for(var n=e.getType(),r=e.getHash(),a=t._shaderModules.keys(),o=0;o3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var lu={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null};function cu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),f.g(e,t),t.layouts=[],t.shaderDescriptions=[],f.b(e,t,["handle"]),f.i(e,t,["device","renderEncoder","topology","vertexState"]),function(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=function(){return t.shaderDescriptions},e.initialize=function(e){var n=t.renderEncoder.getPipelineSettings();n.primitive.topology=t.topology,n.vertex=t.vertexState;for(var r=[],a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,du,n),t.outputNames=[],t.outputTypes=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],f.a.obj(e,t),f.a.setGet(e,t,["type","hash","code"]),f.a.getArray(e,t,["outputTypes","outputNames"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=function(e){return t.outputNames.includes(e)},e.addOutput=function(e,n){t.outputTypes.push(e),t.outputNames.push(n)},e.addBuiltinOutput=function(e,n){t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=function(e,n){t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=function(e,n){var r=[],a=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){var o=[];if(o.push("struct ".concat(t.type,"Input\n{")),e)for(var i=e.getOutputNamesByReference(),s=e.getOutputTypesByReference(),l=0;l1&&(o.push("};"),a=o,r[r.length-1]+=",",r.push("input: ".concat(t.type,"Input")))}if(r.length&&(t.code=su.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){for(var u=["struct ".concat(t.type,"Output\n{")],d=0;d ".concat(t.type,"Output")]).result}t.code=su.substitute(t.code,"//VTK::IOStructs::Dec",a).result}}(e,t)}var pu={newInstance:f.a.newInstance(fu,"vtkWebGPUShaderDescription"),extend:fu};var gu={getByteStrideFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;"x"===e[e.length-2]&&(t=e[e.length-1]);var n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Object(f.l)("unknown format ".concat(e)),0):t*(5-r/2)},getNativeTypeFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Object(f.l)("unknown format ".concat(e));t="Uint"}var n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array";Object(f.l)("unknown format ".concat(e))},getShaderTypeFromBufferFormat:function(e){var t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Object(f.l)("unknown format ".concat(e));t="u32"}var n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?"vec4<".concat(t,">"):3===n?"vec3<".concat(t,">"):2===n?"vec2<".concat(t,">"):t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;var t=1;return"vec"===e.substring(0,3)?t=e[3]:"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Object(f.l)("unknown format ".concat(e))}};function mu(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vu,n),f.g(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],f.i(e,t,["created","device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUVertexInput"),e.addBuffer=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vertex",a=n;Array.isArray(a)||(a=[a]);for(var o=0;ot.names[0]?1:0})},e.removeBufferIfPresent=function(e){for(var n=0;n0&&(e+=",\n"),e="".concat(e," [[location(").concat(n,")]] ").concat(t.inputs[r].names[a]," : ").concat(i),n++}return e},e.getVertexInputInformation=function(){var e={};if(t.inputs.length){for(var n=[],r=0,a=0;a = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Tu="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Cu={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 Su(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cu,n),f.a.obj(e,t),t.textureViews=[],t.vertexInput=yu.newInstance(),t.bindGroup=tu.newInstance(),t.bindGroup.setName("mapperBG"),t.fragmentShaderTemplate=t.fragmentShaderTemplate||Tu,t.vertexShaderTemplate=t.vertexShaderTemplate||bu,t.shaderReplacements=new Map,f.a.get(e,t,["vertexInput"]),f.a.setGet(e,t,["device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),function(e,t){t.classHierarchy.push("vtkWebGPUMapperHelper"),e.generateShaderDescriptions=function(n,r,a){var o=pu.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=pu.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(o),s.push(i);for(var l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return"replaceShader".concat(e.substring(7,e.length-2))}),d=0;d","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,t,n){t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=function(e){t.textureViews.includes(e)||t.textureViews.push(e)},e.renderForPipeline=function(e){var n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),n.bindVertexInput(e,t.vertexInput),e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.registerToDraw=function(){t.pipeline&&t.WebGPURenderer.registerPipelineCallback(t.pipeline,e.renderForPipeline)},e.render=function(n,r){e.build(n,r),n.setPipeline(t.pipeline),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(n),e.renderForPipeline(n)},e.build=function(n,r){t.renderEncoder=n,t.pipeline=r.getPipeline(t.pipelineHash),t.UBO&&t.bindGroup.addBindable(t.UBO),t.SSBO&&t.bindGroup.addBindable(t.SSBO);for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wu,n),Pu.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition);var n=e.build;e.build=function(e,r){var a=r.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(a,["vertexBC"]),t.numberOfVertices=6,n(e,r)}}(e,t)}var Ou={newInstance:f.a.newInstance(xu,"vtkWebGPUFullScreenQuad"),extend:xu},Mu={BufferUsage:{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},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};function Au(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ru=["getMappedRange","mapAsync","unmap"];function Eu(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e,usage:n}),t.sizeInBytes=e,t.usage=n},e.write=function(e){!function(e,t,n,r){var a=r.byteLength,o=e.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=o.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(r)),o.unmap();var s=e.createCommandEncoder();s.copyBufferToBuffer(o,0,t,n,a);var l=s.finish();e.queue.submit([l]),o.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(var n=function(n){e[Ru[n]]=function(){var e;return(e=t.handle)[Ru[n]].apply(e,arguments)}},r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Du,n),f.a.obj(e,t),f.a.get(e,t,["handle","sizeInBytes","usage"]),f.a.setGet(e,t,["strideInBytes","device","arrayInformation","sourceTime"]),Eu(e,t)}var Lu=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_u,n),f.a.obj(e,t),f.a.setGet(e,t,["lighting","interpolation","ambient","diffuse","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation"]),f.a.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),function(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=function(n,r,a){Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===a||(t.color[0]=n,t.color[1]=r,t.color[2]=a,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=Gu("ComputeCompositeColor"),e.getColor=function(){var e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(var n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.addShaderVariable=Gu("AddShaderVariable"),e.setInterpolationToFlat=function(){return e.setInterpolation(Fu.FLAT)},e.setInterpolationToGouraud=function(){return e.setInterpolation(Fu.GOURAUD)},e.setInterpolationToPhong=function(){return e.setInterpolation(Fu.PHONG)},e.getInterpolationAsString=function(){return f.a.enumToString(Fu,t.interpolation)},e.setRepresentationToWireframe=function(){return e.setRepresentation(ku.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(ku.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(ku.POINTS)},e.getRepresentationAsString=function(){return f.a.enumToString(ku,t.representation)}}(e,t)}var ju=function(e){for(var t=1;t1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return numPoints>2?3*(e-2):0}};function $u(e){switch(e){case Xu.Points:return"points";case Xu.Lines:return"lines";case Xu.Triangles:return"polys";case Xu.TriangleStrips:return"strips";default:return""}}function Ju(e,t,n){var r=null;r=t===qu.POINTS||"points"===n?Qu.anythingToPoints:t===qu.WIREFRAME||"lines"===n?Qu["".concat(n,"ToWireframe")]:Qu["".concat(n,"ToSurface")];for(var a=e.getData(),o=a.length,i=0,s=0;s2)for(var a=0;a2){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nd,n),f.g(e,t),t.buffers=new WeakMap,f.i(e,t,["device"]),td(e,t)}var ad=zu(zu({newInstance:f.d(rd),extend:rd},{}),Mu);function od(e){return function(e){if(Array.isArray(e))return id(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return id(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return id(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function id(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cd,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},f.a.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,f.a.get(e,t,["binding","bindGroupTime"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=function(e,n){t._bufferEntryNames.has(e)?ld("entry named ".concat(e," already exists")):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gu.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gu.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=function(){if(t.sortDirty){for(var e=0,n=[],r=0;r4&&(C.packed=!0,C.offset=e,n.push(C),e+=C.sizeInBytes)}for(var S=0;S ").concat(t.name,": ").concat(t.name,"Struct;")),a.join("\n")}}(e,t)}var dd={newInstance:f.a.newInstance(ud,"vtkWebGPUUniformBuffer"),extend:ud},fd=f.k,pd="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var gd={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gd,n),Js.extend(e,t,n),t.UBO=dd.newInstance(),t.UBO.setName("rendererUBO"),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("cameraParallel","u32"),t.bindGroup=tu.newInstance(),t.bindGroup.setName("rendererBG"),t.bindGroup.addBindable(t.UBO),t.tmpMat4=o.identity(new Float64Array(16)),t.stabilizedTime={},f.g(t.stabilizedTime,{mtime:0}),f.b(e,t,["bindGroup","stabilizedTime"]),f.c(e,t,["stabilizedCenter"]),f.i(e,t,["renderEncoder","selector","suppressClear","UBO"]),function(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=function(){var e=t.renderable.getActiveCamera(),n=e.getClippingRange(),r=e.getPositionByReference(),a=e.getDirectionOfProjectionByReference(),o=[],s=[];i.scale(s,a,.5*(n[0]+n[1])),i.add(o,r,s),i.sub(s,o,t.stabilizedCenter),i.len(s)/(n[1]-n[0])>t.recenterThreshold&&(t.stabilizedCenter=o,t.stabilizedTime.modified())},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(fd("No lights are on, creating one."),t.renderable.createLight()),e},e.registerPipelineCallback=function(e,n){for(var r=0;ra||e.getMTime()>a||n.getMTime()>a||t.renderable.getMTime()>a){var o=r.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",o.wcvc),t.UBO.setArray("SCPCMatrix",o.scpc),t.UBO.setArray("PCSCMatrix",o.pcsc),t.UBO.setArray("SCVCMatrix",o.scvc),t.UBO.setArray("VCPCMatrix",o.vcpc),t.UBO.setArray("WCVCNormals",o.normalMatrix),t.UBO.setValue("cameraParallel",n.getParallelProjection());var i=t.parent.getDevice();t.UBO.sendIfNeeded(i)}},e.scissorAndViewport=function(t){var n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=function(e){e.activateBindGroup(t.bindGroup)},e.opaquePass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder()),e.updateUBO();else{e.scissorAndViewport(t.renderEncoder),e.clear();for(var r=0;r"),t.clearFSQ.setUBO(n)}var r=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",r),t.clearFSQ.getUBO().sendIfNeeded(e),t.clearFSQ.render(t.renderEncoder,e)}},e.translucentPass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder());else{e.scissorAndViewport(t.renderEncoder);for(var r=0;rn[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hd,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(n,r){if(n){if(!t.renderable||!t.renderable.getVisibility())return;var a=t.renderable.getMapper().getBounds();if(!a||6!==a.length||a[0]>a[1])return;r.addVolume(e)}},e.getBoundingCubePoints=function(e,n){for(var r=t.renderable.getMapper().getBounds(),a=t.renderable.getMatrix(),o=0,i=4;i<6;i++)for(var s=r[i],l=2;l<4;l++)for(var c=r[l],u=0;u<2;u++){var d=r[u],f=n+3*o;e[f++]=a[0]*d+a[1]*c+a[2]*s+a[3],e[f++]=a[4]*d+a[5]*c+a[6]*s+a[7],e[f++]=a[8]*d+a[9]*c+a[10]*s+a[11],o++}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();o.transpose(t.keyMatrices.bcwc,n),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var bd=f.a.newInstance(yd,"vtkWebGPUVolume");Xc("vtkVolume",bd);var Td={};function Cd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Td,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();var a=t.WebGPURenderer.getAspectRatio(),o=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,null)}}(e,t)}var Sd=f.a.newInstance(Cd,"vtkWebGPUPixelSpaceCallbackMapper");Xc("vtkPixelSpaceCallbackMapper",Sd);var Pd={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function wd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pd,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=function(n){if(n){t.openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t.openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var r=0;rt.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?a.identity(t.keyMatrices.normalMatrix):(a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),a.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var xd=f.d(wd);al("vtkActor",xd);var Od={context:null,activeTextures:[]};function Md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Od,n),Js.extend(e,t,n),f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.activateTextures=function(){t.activeTextures=[],t.children.forEach(function(e){e.isA("vtkOpenGLTexture")&&(e.render(),e.getHandle()&&t.activeTextures.push(e))})},e.opaquePass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0),e.activateTextures()):t.activeTextures.forEach(function(e){e.deactivate()})},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1),e.activateTextures()):(t.activeTextures.forEach(function(e){e.deactivate()}),t.context.depthMask(!0))}}(e,t)}var Ad=f.d(Md);al("vtkActor2D",Ad);var Id={bounds:[1,-1,1,-1,1,-1],center:[0,0,0]};var Rd={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Id,n),Gs.extend(e,t,n),t.bounds||we(t.bounds),t.center||(t.center=[0,0,0]),function(e,t){e.getBounds=function(){return 0},e.getBounds=function(n){e.getBounds();for(var r=0;r<6;r++)n[r]=t.bounds[r]},e.getCenter=function(){e.getBounds();for(var n=0;n<3;n++)t.center[n]=(t.bounds[2*n+1]+t.bounds[2*n])/2;return t.center.slice()},e.getLength=function(){var n=0,r=0;e.getBounds();for(var a=0;a<3;a++)r+=(n=t.bounds[2*a+1]-t.bounds[2*a])*n;return Math.sqrt(r)},e.getClippingPlaneInDataCoords=function(e,n,r){var a=t.clippingPlanes,o=e;if(a){var i=a.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nd,n),ts.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},f.a.obj(t.buildTime),t.opaqueFlagBuildTime={},f.a.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},f.a.obj(t.insertTime,{mtime:0}),f.a.get(e,t,["buildTime"]),f.a.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),f.a.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=function(){if(t.opaqueFlagBuildTime.getMTime()t.range[1]?t.maxIndex+Vd+1.5:(n=(e+t.shift)*t.scale)e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=function(n,r,a,o){var i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);var s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);var c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),f=r.getData(),p=n.getData();if(c>=1){if(a===_i.RGBA)for(var g=0;gt.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&t.insertTime.modified()}(e,t)}var kd={newInstance:f.a.newInstance(Bd,"vtkLookupTable"),extend:Bd},Fd=1,Gd=0,_d=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function Ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Gd=e}var jd={getResolveCoincidentTopologyAsString:function(){return _d[Gd]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Fd},getResolveCoincidentTopology:function(){return Gd},setResolveCoincidentTopology:Ud,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){Fd=e},setResolveCoincidentTopologyToDefault:function(){Ud(0)},setResolveCoincidentTopologyToOff:function(){Ud(0)},setResolveCoincidentTopologyToPolygonOffset:function(){Ud(1)}};function Wd(e,t,n){n.forEach(function(n){e["get".concat(n.method)]=function(){return t[n.key]},e["set".concat(n.method)]=function(e,r){t[n.key]={factor:e,offset:r}}})}var zd=["Polygon","Line","Point"],Hd={};Wd(Hd,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},zd.map(function(e){return{key:e,method:"ResolveCoincidentTopology".concat(e,"OffsetParameters")}}));var Kd={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),f.a.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(jd).forEach(function(t){e[t]=jd[t]}),Object.keys(Hd).forEach(function(t){e[t]=Hd[t]}),Wd(e,t.topologyOffset,zd.map(function(e){return{key:e,method:"RelativeCoincidentTopology".concat(e,"OffsetParameters")}})),e.getCoincidentTopologyPolygonOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=function(){var t=Hd.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Hd,otherStaticMethods:jd,CATEGORIES:zd};function Xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qd(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),Rd.extend(e,t,n),f.a.get(e,t,["colorCoordinates","colorMapColors","colorTextureMap"]),f.a.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),f.a.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Kd.implementCoincidentTopologyMethods(e,t),function(e,t){t.classHierarchy.push("vtkMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.setForceCompileOnly=function(e){t.forceCompileOnly=e},e.createDefaultLookupTable=function(){t.lookupTable=kd.newInstance()},e.getColorModeAsString=function(){return f.a.enumToString($d,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return f.a.enumToString(Jd,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,n,r,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(n===Jd.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(n===Jd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Jd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Jd.USE_POINT_FIELD_DATA){var l=e.getPointData();i=r===ef.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(n===Jd.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=r===ef.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(n===Jd.USE_FIELD_DATA){var u=e.getFieldData();i=r===ef.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.mapScalars=function(n,r){var a=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!a)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);var o="".concat(e.getMTime()).concat(a.getMTime()).concat(r);if(t.colorBuildString!==o){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(n))e.mapScalarsToTexture(a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,-1))}t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(r)}},e.scalarToTextureCoordinate=function(e,t,n){var r=.5,a=1;return Le(e)||(a=.49,(r=(e-t)*n)>1e3?r=1e3:r<-1e3&&(r=-1e3)),{texCoordS:r,texCoordT:a}},e.createColorTextureCoordinates=function(t,n,r,a,o,i,s,l,c){var u=(i[1]-i[0])/l,d=[];d[0]=i[0]-u,d[1]=i[1]+u;var f=1/(d[1]-d[0]),p=n.getData(),g=t.getData(),m=0,v=0;if(o<0||o>=a)for(var h=0;ht.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==r){t.lookupTable.setAlpha(r),t.colorTextureMap=null,t.lookupTable.build();var s=t.lookupTable.getNumberOfAvailableColors();s>4094&&(s=4094),s+=2;for(var l=(a[1]-a[0])/(s-1-2),c=new Float64Array(2*s),u=0;ut.colorCoordinates.getMTime()||e.getInputData(0).getMTime()>t.colorCoordinates.getMTime()||t.lookupTable.getMTime()>t.colorCoordinates.getMTime()){t.colorCoordinates=null;var p=n.getNumberOfComponents(),g=n.getNumberOfTuples();t.colorCoordinates=Qe.newInstance({numberOfComponents:2,values:new Float32Array(2*g)});var m=t.lookupTable.getVectorComponent();t.lookupTable.getVectorMode()===tf.MAGNITUDE&&n.getNumberOfComponents()>1&&(m=-1),e.createColorTextureCoordinates(n,t.colorCoordinates,g,p,m,a,t.lookupTable.getRange(),t.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,o)}},e.getIsOpaque=function(){var t=e.getLookupTable();return!t||(t.build(),t.isOpaque())},e.canUseTextureMapForColoring=function(n){if(!t.interpolateScalarsBeforeMapping)return!1;if(t.lookupTable&&t.lookupTable.getIndexedLookup())return!1;var r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName),a=r.scalars;return!(!a||r.cellFlag||t.colorMode===$d.DEFAULT&&a.getDataType()===nf.UNSIGNED_CHAR||t.colorMode===$d.DIRECT_SCALARS)},e.clearColorArrays=function(){t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=function(){var t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells()}},e.acquireInvertibleLookupTable=rf("AcquireInvertibleLookupTable"),e.valueToColor=rf("ValueToColor"),e.colorToValue=rf("ColorToValue"),e.useInvertibleColorFor=rf("UseInvertibleColorFor"),e.clearInvertibleColor=rf("ClearInvertibleColor")}(e,t)}var sf=qd(qd(qd({newInstance:f.a.newInstance(of,"vtkMapper"),extend:of},Zd),Qd),Wi);function lf(e){return function(e){if(Array.isArray(e))return cf(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return cf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bf,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.primitives=[],t.primTypes=uf,t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16));for(var r=uf.Start;r= cos(radians(lightConeAngle".concat(d,")))")," {"," attenuation = attenuation * pow(coneDot, lightExponent".concat(d,");")," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));"," diffuseL += ((df".concat("",") * lightColor").concat(d,");")," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {"," float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC".concat(d,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(d,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=_l.substitute(a,"//VTK::Light::Impl",s,!1).result;break;default:vf("bad light complexity")}e.Fragment=a},e.replaceShaderNormal=function(n,r,a){if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var o=n.Vertex,i=n.Geometry,s=n.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,i=_l.substitute(i,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,i=_l.substitute(i,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,s=_l.substitute(s,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.getOpenGLMode(a.getProperty().getRepresentation(),t.lastBoundBO.getPrimitiveType())===t.context.LINES?(s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));"," vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," fdx = normalize(fdx);"," fdy = normalize(fdy);"," if (abs(fdx.x) > 0.0)"," { normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//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),n.Vertex=o,n.Geometry=i,n.Fragment=s}},e.replaceShaderPositionVC=function(e,n,r){var a=e.Vertex,o=e.Geometry,i=e.Fragment;r.getProperty().getRepresentation()!==df.POINTS&&t.lastBoundBO.getPrimitiveType()!==uf.Points||(a=_l.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = ".concat(r.getProperty().getPointSize(),".0;")],!1).result),t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=_l.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=_l.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=_l.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,n,r){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment;if(t.drawingEdges)return;a=_l.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;var s=t.openGLActor.getActiveTextures(),l=2,c=2;if(s&&s.length>0&&(l=s[0].getComponents(),s[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(c=3)),t.renderable.getColorTextureMap()&&(l=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),c=2),2===c){if(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,s&&s.length>=1)switch(l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*texture2D(texture1, tcoordVCVSOutput.st);").result}}else switch(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*textureCube(texture1, tcoordVCVSOutput);").result}e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderClip=function(e,n,r){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6),a=_l.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=_l.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=_l.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,o=_l.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getCoincidentParameters=function(e,n){var r=null,a=n.getProperty();if(t.renderable.getResolveCoincidentTopology()||a.getEdgeVisibility()&&a.getRepresentation()===df.SURFACE){var o=t.lastBoundBO.getPrimitiveType();o===uf.Points||a.getRepresentation()===df.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():o===uf.Lines||a.getRepresentation()===df.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():o!==uf.Tris&&o!==uf.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),o!==uf.TrisEdges&&o!==uf.TriStripsEdges||((r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()).factor/=2,r.offset/=2)}return r},e.replaceShaderPicking=function(e,t,n){var r=e.Fragment;r=_l.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=_l.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderValues=function(n,r,a){if(e.replaceShaderColor(n,r,a),e.replaceShaderNormal(n,r,a),e.replaceShaderLight(n,r,a),e.replaceShaderTCoord(n,r,a),e.replaceShaderPicking(n,r,a),e.replaceShaderClip(n,r,a),e.replaceShaderCoincidentOffset(n,r,a),e.replaceShaderPositionVC(n,r,a),t.haveSeenDepthRequest){var o=n.Fragment;o=_l.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=_l.substitute(o,"//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,n.Fragment=o}},e.getNeedToRebuildShaders=function(n,r,a){var o=0,i=0,s=n.getPrimitiveType(),l=t.currentInput,c=!1,u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),f=a.getProperty().getInterpolation()===ff.FLAT,p=a.getProperty().getRepresentation(),g=e.getOpenGLMode(p,s);if(g===t.context.TRIANGLES?c=!0:d&&!u?c=!0:!f&&u?c=!0:f||g!==t.context.LINES||(c=!0),a.getProperty().getLighting()&&c){o=0;for(var m=r.getLightsByReference(),v=0;v0&&(i++,0===o&&(o=1)),1===o&&(i>1||1!==h.getIntensity()||!h.lightTypeIsHeadLight())&&(o=2),o<3&&h.getPositional()&&(o=3)}}var y=!1,b=t.lastBoundBO.getReferenceByName("lastLightComplexity"),T=t.lastBoundBO.getReferenceByName("lastLightCount");return b===o&&T===i||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:i},!0),y=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===n.getProgram()||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){var o=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&o>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(function(e,r){n.getProgram().isAttributeUsed("".concat(e,"MC"))&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"".concat(e,"MC"),n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||vf("Error setting ".concat(e,"MC in shader VAO.")))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||vf("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||vf("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6);for(var s=[],l=0;l0){var f=d.getColorByReference(),p=d.getIntensity();t.lightColor[0]=f[0]*p,t.lightColor[1]=f[1]*p,t.lightColor[2]=f[2]*p;var g=d.getDirection(),m=n.getActiveCamera().getViewMatrix(),v=lf(g);d.lightTypeIsSceneLight()&&(v[0]=m[0]*g[0]+m[1]*g[1]+m[2]*g[2],v[1]=m[4]*g[0]+m[5]*g[1]+m[6]*g[2],v[2]=m[8]*g[0]+m[9]*g[1]+m[10]*g[2],K(v)),t.lightDirection[0]=v[0],t.lightDirection[1]=v[1],t.lightDirection[2]=v[2],t.lightHalfAngle[0]=-t.lightDirection[0],t.lightHalfAngle[1]=-t.lightDirection[1],t.lightHalfAngle[2]=1-t.lightDirection[2],K(t.lightDirection),s.setUniform3fArray("lightColor".concat(l),t.lightColor),s.setUniform3fArray("lightDirectionVC".concat(l),t.lightDirection),s.setUniform3fArray("lightHalfAngleVC".concat(l),t.lightHalfAngle),l++}}if(!(a<3)){var h=n.getActiveCamera().getViewMatrix();o.transpose(h,h),l=0;for(var y=0;y0){var T=b.getTransformedPosition(),C=new Float64Array(3);i.transformMat4(C,T,h),s.setUniform3fArray("lightAttenuation".concat(l),b.getAttenuationValuesByReference()),s.setUniformi("lightPositional".concat(l),b.getPositional()),s.setUniformf("lightExponent".concat(l),b.getExponent()),s.setUniformf("lightConeAngle".concat(l),b.getConeAngle()),s.setUniform3fArray("lightPositionVC".concat(l),[C[0],C[1],C[2]]),l++}}}}},e.setCameraShaderParameters=function(e,r,i){var s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(r),c=r.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,p=i.getIsIdentity(),g=p?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();s.setUniformMatrix("MCPCMatrix",n([l.wcpc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,g.normalMatrix],a,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),p||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram(),o=r.getProperty(),i=o.getOpacity(),s=t.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),l=t.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),c=t.drawingEdges?1:o.getAmbient(),u=t.drawingEdges?0:o.getDiffuse(),d=t.drawingEdges?0:o.getSpecular(),f=o.getSpecularPower();a.setUniformf("opacityUniform",i),a.setUniform3fArray("ambientColorUniform",s),a.setUniform3fArray("diffuseColorUniform",l),a.setUniformf("ambient",c),a.setUniformf("diffuse",u);var p=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(p<1)){var g=o.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",g),a.setUniformf("specularPowerUniform",f),a.isUniformUsed("ambientIntensityBF")){if(i=(o=r.getBackfaceProperty()).getOpacity(),s=o.getAmbientColor(),c=o.getAmbient(),l=o.getDiffuseColor(),u=o.getDiffuse(),g=o.getSpecularColor(),d=o.getSpecular(),a.setUniformf("ambientIntensityBF",c),a.setUniformf("diffuseIntensityBF",u),a.setUniformf("opacityUniformBF",i),a.setUniform3fArray("ambientColorUniformBF",s),a.setUniform3fArray("diffuseColorUniformBF",l),p<1)return;a.setUniformf("specularIntensityBF",d),a.setUniform3fArray("specularColorUniformBF",g),a.setUniformf("specularPowerUniformBF",f)}}},e.renderPieceStart=function(n,r){t.primitiveIDOffset=0,t.openGLRenderer.getSelector()&&(t.openGLRenderer.getSelector().getCurrentPass(),t.openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=function(n,r){var a=r.getProperty().getRepresentation(),o=t.context,i=r.getProperty().getEdgeVisibility()&&a===df.SURFACE;o.lineWidth(r.getProperty().getLineWidth());for(var s=uf.Start;s2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Js.extend(e,t,n),t.openGLTexture=sc.newInstance(),t.tris=Kl.newInstance(),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=function(n){if(n){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera())}},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=function(n,r){if(n&&!t.openGLRenderer.getSelector()){e.updateBufferObjects(),t.openGLRenderWindow.enableDepthMask(),t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t.openGLRenderWindow);var a=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",a);var i=t.openGLRenderer.getRenderable(),s=t.openGLCamera.getKeyMatrices(i),l=new Float64Array(16);if(o.invert(l,s.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",l),"box"===t.lastFormat){var c=i.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=function(){if(!t.tris.getCABO().getElementCount()){for(var e=new Float32Array(12),n=0;n<4;n++)e[3*n]=n%2*2-1,e[3*n+1]=n>1?1:-1,e[3*n+2]=1;var r=Qe.newInstance({numberOfComponents:3,values:e});r.setName("points");var a=new Uint16Array(8);a[0]=3,a[1]=0,a[2]=1,a[3]=3,a[4]=3,a[5]=0,a[6]=3,a[7]=2;var o=Qe.newInstance({numberOfComponents:1,values:a});t.tris.getCABO().createVBO(o,"polys",Ol.SURFACE,{points:r,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Pf("Error setting vertexMC in shader VAO."));var i=t.renderable.getTextures();i.length||Pf("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==i[0]&&(t.openGLTexture.releaseGraphicsResources(t.openGLRenderWindow),t.openGLTexture.setRenderable(i[0]))}}(e,t)}var Of=f.d(xf);al("vtkSkybox",Of);var Mf={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Af(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mf,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=function(n){n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=function(n){return e.getKeyMatrices(n),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();t.bufferShift[0]=n[3]-r[0],t.bufferShift[1]=n[7]-r[1],t.bufferShift[2]=n[11]-r[2],o.transpose(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?o.identity(t.keyMatrices.normalMatrix):(o.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),o.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var If=f.a.newInstance(Af);Xc("vtkActor",If);var Rf={repeat:!1,interpolate:!1,edgeClamp:!1,image:null,imageLoaded:!1};function Ef(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rf,n),f.a.obj(e,t),f.a.algo(e,t,6,0),f.a.get(e,t,["imageLoaded"]),f.a.setGet(e,t,["repeat","edgeClamp","interpolate","image"]),function(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=function(){t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setImage=function(n){t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null)),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())}}(e,t)}var Df={newInstance:f.a.newInstance(Ef,"vtkTexture"),extend:Ef},Vf=ad.BufferUsage,Lf=ad.PrimitiveTypes,Nf=ju.Representation,Bf=sf.ScalarMode,kf={type:"StartEvent"},Ff={type:"EndEvent"},Gf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(vertex)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",_f="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n var computedColor: vec4 = vec4(ambientColor.rgb * mapperUBO.AmbientIntensity\n + diffuse * mapperUBO.DiffuseIntensity\n + specular * mapperUBO.SpecularIntensity,\n opacity);\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Uf={colorTexture:null,renderEncoder:null,textures:null,textureViews:null,primitives:null,tmpMat4:null,fragmentShaderTemplate:null,vertexShaderTemplate:null};function jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Uf,n),Js.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16)),t.fragmentShaderTemplate=t.fragmentShaderTemplate||_f,t.vertexShaderTemplate=t.vertexShaderTemplate||Gf,t.UBO=dd.newInstance(),t.UBO.setName("mapperUBO"),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("SpecularPower","f32"),t.UBO.addEntry("PropID","u32"),f.b(e,t,["fragmentShaderTemplate","vertexShaderTemplate","UBO"]),f.i(e,t,["renderEncoder"]),t.textures=[],t.textureViews=[],t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.buildPass=function(n){n&&(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=function(t){t&&e.render()},e.opaquePass=function(t){t&&e.render()},e.updateUBO=function(){var n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){var a=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);t.UBO.setArray("BCWCMatrix",a.bcwc),t.UBO.setArray("BCSCMatrix",a.bcsc),t.UBO.setArray("MCWCNormals",a.normalMatrix);var o=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[o[0],o[1],o[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),o=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[o[0],o[1],o[2],1]),t.UBO.setValue("SpecularIntensity",n.getSpecular()),t.UBO.setValue("SpecularPower",n.getSpecularPower()),o=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[o[0],o[1],o[2],1]),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());var i=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(i)}},e.render=function(){e.invokeEvent(kf),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Ff),t.renderEncoder=t.WebGPURenderer.getRenderEncoder(),e.buildPrimitives(),e.updateUBO()},e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,n){if(n.hasAttribute("normalMC")){var r=t.getShaderDescription("vertex");r.addOutput("vec3","normalVC");var a=r.getCode();a=su.substitute(a,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"]).result,o.setCode(a)}},e.replaceShaderLight=function(e,t,n){var r=t.getShaderDescription("fragment"),a=r.getCode();a.includes("var normal")?(a=su.substitute(a,"//VTK::Light::Impl",[" var df: f32 = max(0.0, normal.z);"," var sf: f32 = pow(df, mapperUBO.SpecularPower);"," var diffuse: vec3 = df * diffuseColor.rgb;"," var specular: vec3 = sf * mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a)):(a=su.substitute(a,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a))},e.replaceShaderColor=function(e,t,n){if(n.hasAttribute("colorVI")){var r=t.getShaderDescription("vertex");r.addOutput("vec4","color");var a=r.getCode();a=su.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,o.setCode(a)}},e.replaceShaderTCoord=function(e,n,r){if(r.hasAttribute("tcoord")){var a=n.getShaderDescription("vertex");a.addOutput("vec2","tcoordVS");var o=a.getCode();o=su.substitute(o,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,a.setCode(o);var i=n.getShaderDescription("fragment");o=i.getCode(),t.textures.length&&(o=su.substitute(o,"//VTK::TCoord::Impl",["var tcolor: vec4 = textureSample(Texture0, Texture0Sampler, input.tcoordVS);","computedColor = computedColor*tcolor;"]).result),i.setCode(o)}},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("fragment"),a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,r.setCode(a)}},e.getUsage=function(e,t){return e===Nf.POINTS||0===t?Vf.Verts:1===t?Vf.Lines:e===Nf.WIREFRAME?2===t?Vf.LinesFromTriangles:Vf.LinesFromStrips:2===t?Vf.Triangles:Vf.Strips},e.getHashFromUsage=function(e){return"pt".concat(e)},e.getTopologyFromUsage=function(e){switch(e){case Vf.Triangles:return"triangle-list";case Vf.Verts:return"point-list";default:case Vf.Lines:return"line-list"}},e.buildVertexInput=function(n,r,a){var o=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),i=t.WebGPURenderWindow.getDevice(),s=t.primitives[a].getVertexInput(),l=r.getMTime()+o,c=n.getPoints();if(c){var u=t.WebGPUActor.getBufferShift(t.WebGPURenderer),d={hash:l+c.getMTime(),dataArray:c,source:c,cells:r,primitiveType:a,representation:o,time:Math.max(c.getMTime(),r.getMTime(),t.WebGPUActor.getKeyMatricesTime().getMTime()),shift:u,usage:Vf.PointArray,format:"float32x4",packExtra:!0},f=i.getBufferManager().getBuffer(d);s.addBuffer(f,["vertexBC"])}else s.removeBufferIfPresent("vertexBC");var p=e.getUsage(o,a);if(p===Vf.Triangles||p===Vf.Strips){var g=n.getPointData().getNormals(),m={cells:r,representation:o,primitiveType:a,format:"snorm8x4",packExtra:!0,shift:0,scale:127};if(g){m.hash=l+g.getMTime(),m.dataArray=g,m.source=g,m.time=Math.max(g.getMTime(),r.getMTime()),m.usage=Vf.PointArray;var v=i.getBufferManager().getBuffer(m);s.addBuffer(v,["normalMC"])}else if(a===Lf.Triangles){m.hash=l+c.getMTime(),m.dataArray=c,m.source=c,m.time=Math.max(c.getMTime(),r.getMTime()),m.usage=Vf.NormalsFromPoints;var h=i.getBufferManager().getBuffer(m);s.addBuffer(h,["normalMC"])}else s.removeBufferIfPresent("normalMC")}else s.removeBufferIfPresent("normalMC");var y=!1;if(t.renderable.getScalarVisibility()){var b=t.renderable.getColorMapColors();if(b){var T=t.renderable.getScalarMode(),C=!1;T!==Bf.USE_CELL_DATA&&T!==Bf.USE_CELL_FIELD_DATA&&T!==Bf.USE_FIELD_DATA&&n.getPointData().getScalars()||T===Bf.USE_POINT_FIELD_DATA||!b||(C=!0);var S={hash:l+c.getMTime(),dataArray:b,source:b,cells:r,primitiveType:a,representation:o,time:Math.max(b.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"unorm8x4",cellData:C,cellOffset:0},P=i.getBufferManager().getBuffer(S);s.addBuffer(P,["colorVI"]),y=!0}}y||s.removeBufferIfPresent("colorVI");var w=null;if(w=t.renderable.getInterpolateScalarsBeforeMapping()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords()){var x={hash:l+w.getMTime(),dataArray:w,source:w,cells:r,primitiveType:a,representation:o,time:Math.max(w.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"float32x2"},O=i.getBufferManager().getBuffer(x);s.addBuffer(O,["tcoord"])}else s.removeBufferIfPresent("tcoord")},e.updateTextures=function(){var e=[],n=[],r=t.renderable.getColorTextureMap();r&&(t.colorTexture||(t.colorTexture=Df.newInstance()),t.colorTexture.setInputData(r),n.push(t.colorTexture));for(var a=t.WebGPUActor.getRenderable().getTextures(),o=0;o=0;m--)e[m]||(t.textures.splice(m,1),t.textureViews.splice(m,1))},e.computePipelineHash=function(n,r){var a="pd";return n.hasAttribute("normalMC")&&(a+="n"),n.hasAttribute("colorVI")&&(a+="c"),n.hasAttribute("tcoord")&&(a+="t"),t.textures.length&&(a+="tx".concat(t.textures.length)),t.SSBO&&(a+="ssbo"),a+=e.getHashFromUsage(r),a+=t.renderEncoder.getPipelineHash()},e.buildPrimitives=function(){var n=t.currentInput,r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=t.WebGPURenderWindow.getDevice();t.renderable.mapScalars(n,1),e.updateTextures();for(var o=Lf.Points;o<=Lf.Triangles;o++)if(r[o].getNumberOfValues()>0){var i=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),s=e.getUsage(i,o),l=t.primitives[o];e.buildVertexInput(t.currentInput,r[o],o),l.setPipelineHash(e.computePipelineHash(l.getVertexInput(),s)),l.setTextureViews(t.textureViews),l.setWebGPURenderer(t.WebGPURenderer),l.setNumberOfInstances(1);var c=l.getVertexInput().getBuffer("vertexBC");l.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),l.setTopology(e.getTopologyFromUsage(s)),l.build(t.renderEncoder,a),l.registerToDraw()}},e.setShaderReplacement=function(e,n){for(var r=Lf.Start;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name"]),function(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.handle=t.device.getHandle().createSampler({magFilter:n.magFilter?n.magFilter:"nearest",minFilter:n.minFilter?n.minFilter:"nearest"}),t.bindGroupTime.modified()},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": sampler;")},e.getBindGroupEntry=function(){return{resource:t.handle}}}(e,t)}var Xf={newInstance:f.a.newInstance(Kf),extend:Kf};var qf={texture:null,handle:null,name:null,sampler:null};function Yf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","name","texture"]),f.a.setGet(e,t,["bindGroupLayoutEntry","sampler"]),function(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=function(e,n){t.texture=e,t.options=n,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options)},e.getBindGroupEntry=function(){return{resource:e.getHandle()}},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": texture_2d;")},e.addSampler=function(n,r){var a=Xf.newInstance();a.create(n,r),e.setSampler(a),t.sampler.setName("".concat(t.name,"Sampler"))},e.setName=function(n){t.sampler&&t.sampler.setName("".concat(n,"Sampler")),t.name!==n&&(t.name=n,e.modified())},e.getHandle=function(){return t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle}}(e,t)}var Zf={newInstance:f.a.newInstance(Yf),extend:Yf},Qf=ad.BufferUsage;var $f={device:null,handle:null,buffer:null,ready:!1};function Jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$f,n),f.a.obj(e,t),f.a.get(e,t,["handle","ready","width","height","depth","format","usage"]),f.a.setGet(e,t,["device"]),function(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=function(e,n){t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;var r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgbaunorm",t.usage=n.usage?n.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,dimension:r})},e.assignFromHandle=function(e,n,r){t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgbaunorm",t.usage=r.usage?r.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST},e.writeImageData=function(e){var n=4*t.width;if(e.dataArray){var r={dataArray:e.dataArray,time:e.dataArray.getMTime(),usage:Qf.Texture,format:"unorm8x4"};if(t.width%64){for(var a=e.dataArray.getData(),o=64*Math.floor((t.width+63)/64),i=new Uint8Array(o*t.height*4),s=0;s2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage}))},e.createView=function(t){var n=Zf.newInstance();return n.create(e,t),n}}(e,t)}f.a.newInstance(Jf);var ep={PassTypes:{MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,MAX_KNOWN_PASS:2}};function tp(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function np(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var o=e.apply(t,n);function i(e){tp(o,r,a,i,s,"next",e)}function s(e){tp(o,r,a,i,s,"throw",e)}i(void 0)})}}var rp={fieldAssociation:Cn.FieldAssociations.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function ap(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rp,n),f.a.obj(e,t),f.a.setGet(e,t,["fieldAssociation","captureZValues"]),function(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=function(){var e=np(regeneratorRuntime.mark(function e(t,n,r,a,o){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)}));return function(t,n,r,a,o){return e.apply(this,arguments)}}(),e.selectAsync=function(){var t=np(regeneratorRuntime.mark(function t(n,r,a,o,i){var s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.getSourceDataAsync(n,r,a,o,i);case 2:if(!(s=t.sent)){t.next=5;break}return t.abrupt("return",s.generateSelection(r,a,o,i));case 5:return t.abrupt("return",[]);case 6:case"end":return t.stop()}},t)}));return function(e,n,r,a,o){return t.apply(this,arguments)}}()}(e,t)}var op={newInstance:f.a.newInstance(ap,"vtkHardwareSelector"),extend:ap},ip={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};function sp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cp={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function up(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cp,n),f.a.obj(e,t),t.properties={},f.a.setGet(e,t,["contentType","fieldType","properties","selectionList"]),function(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=function(){return t.points.getBounds()}}(e,t)}var dp=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.area[2]||t[1]e.area[3])return null;var o=[t[0]-e.area[0],t[1]-e.area[1]],i=wp(o[0],o[1],e.pixBuffer[hp.ACTOR_PASS],e.area);if(i<=0)return null;var s={valid:!0};s.propID=i-Sp,s.prop=e.props[s.propID];var l=wp(o[0],o[1],e.pixBuffer[hp.COMPOSITE_INDEX_PASS],e.area);if((l<0||l>16777215)&&(l=0),s.compositeID=l-Sp,e.captureZValues){var c=4*(o[1]*(e.area[2]-e.area[0]+1)+o[0]);s.zValue=(256*e.zBuffer[c]+e.zBuffer[c+1])/65535,s.displayPosition=t}return s}var u=[t[0],t[1]],d=[0,0],f=xp(e,t,0,r);if(f&&f.valid)return f;for(var p=1;pp?u[1]-p:0;g<=u[1]+p;++g){if(d[1]=g,u[0]>=p&&(d[0]=u[0]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[0]=u[0]+p,(f=xp(e,d,0,r))&&f.valid)return f}for(var m=u[0]>=p?u[0]-(p-1):0;m<=u[0]+(p-1);++m){if(d[0]=m,u[1]>=p&&(d[1]=u[1]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[1]=u[1]+p,(f=xp(e,d,0,r))&&f.valid)return f}}return r[0]=t[0],r[1]=t[1],null}function Op(e,t,n,r,a){var o=[],i=0;return t.forEach(function(t,s){var l=dp.newInstance();switch(l.setContentType(yp.INDICES),e){case Tp.FIELD_ASSOCIATION_CELLS:l.setFieldType(bp.CELL);break;case Tp.FIELD_ASSOCIATION_POINTS:l.setFieldType(bp.POINT);break;default:Cp("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=a.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),o[i]=l,i++}),o}function Mp(e,t,n,r,a){for(var o=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=new Map,u=[0,0],d=i;d<=l;d++)for(var f=o;f<=s;f++){var p=xp(e,[f,d],0,u);if(p&&p.valid){var g=Pp(p);if(c.has(g)){var m=c.get(g);m.pixelCount++,e.captureZValues&&p.zValue0&&(--a in t.hitProps||(t.hitProps[a]=!0))}},e.renderProp=function(n){t.currentPass===hp.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+Sp),t.props.push(n))},e.renderCompositeIndex=function(n){t.currentPass===hp.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+Sp)},e.renderAttributeId=function(e){e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=function(e){return f.a.enumToString(hp,e)},e.isPropHit=function(e){return Boolean(t.hitProps[e])},e.setPropColorValueFromInt=function(e){t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=function(n,r,a){var o=r<0?0:r;if(0===o){if(a[0]=n[0],a[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;var i=[n[0]-t.area[0],n[1]-t.area[1]],s=wp(i[0],i[1],t.pixBuffer[hp.ACTOR_PASS],t.area);if(s<=0)return null;var l={valid:!0};l.propID=s-Sp,l.prop=t.props[l.propID];var c=wp(i[0],i[1],t.pixBuffer[hp.COMPOSITE_INDEX_PASS],t.area);if((c<0||c>16777215)&&(c=0),l.compositeID=c-Sp,t.captureZValues){var u=4*(i[1]*(t.area[2]-t.area[0]+1)+i[0]);l.zValue=(256*t.zBuffer[u]+t.zBuffer[u+1])/65535,l.displayPosition=n}return l}var d=[n[0],n[1]],f=[0,0],p=e.getPixelInformation(n,0,a);if(p&&p.valid)return p;for(var g=1;gg?d[1]-g:0;m<=d[1]+g;++m){if(f[1]=m,d[0]>=g&&(f[0]=d[0]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[0]=d[0]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}for(var v=d[0]>=g?d[0]-(g-1):0;v<=d[0]+(g-1);++v){if(f[0]=v,d[1]>=g&&(f[1]=d[1]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[1]=d[1]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}}return a[0]=n[0],a[1]=n[1],null},e.generateSelection=function(n,r,a,o){for(var i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=Math.floor(o),u=new Map,d=[0,0],f=s;f<=c;f++)for(var p=i;p<=l;p++){var g=[p,f],m=e.getPixelInformation(g,0,d);if(m&&m.valid){var v=Pp(m);if(u.has(v)){var h=u.get(v);h.pixelCount++,t.captureZValues&&m.zValue2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),op.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),f.a.setGetArray(e,t,["area"],4),f.a.setGet(e,t,["renderer","currentPass","openGLRenderWindow"]),f.a.setGetArray(e,t,["propColorValue"],3),f.a.event(e,t,"event"),Ap(e,t)}var Ep=function(e){for(var t=1;t0){var o=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),e.Vertex=o}n.replaceShaderNormal(e,r,a)},e.replaceShaderColor=function(e,r,a){if(t.hardwareSupport&&t.renderable.getColorArray()){var o=e.Vertex,i=e.Geometry,s=e.Fragment,l=t.lastBoundBO.getReferenceByName("lastLightComplexity"),c=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(c=c.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(c=c.concat(["varying vec4 vertexColorVSOutput;"]),o=_l.substitute(o,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,o=_l.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,i=_l.substitute(i,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,i=_l.substitute(i,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),s=_l.substitute(s,"//VTK::Color::Impl",u).result,s=_l.substitute(s,"//VTK::Color::Dec",c).result,e.Vertex=o,e.Geometry=i,e.Fragment=s}n.replaceShaderColor(e,r,a)},e.replaceShaderPositionVC=function(e,r,a){if(t.hardwareSupport){var o=e.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),e.Vertex=o}n.replaceShaderPositionVC(e,r,a)},e.replaceShaderPicking=function(e,r,a){if(t.hardwareSupport){var o=e.Fragment,i=e.Vertex;i=_l.substitute(i,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,i=_l.substitute(i,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,e.Vertex=i,o=_l.substitute(o,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,o=_l.substitute(o,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,e.Fragment=o}else n.replaceShaderPicking(e,r,a)},e.updateGlyphShaderParameters=function(n,r,a,o,i,s,l,c){var u=a.getProgram();if(n){var d=t.normalMatrix,f=s,p=9*l,g=t.tmpMat3,m=d[0],v=d[1],h=d[2],y=d[3],b=d[4],T=d[5],C=d[6],S=d[7],P=d[8],w=f[p],x=f[p+1],O=f[p+2],M=f[p+3],A=f[p+4],I=f[p+5],R=f[p+6],E=f[p+7],D=f[p+8];g[0]=w*m+x*y+O*C,g[1]=w*v+x*b+O*S,g[2]=w*h+x*T+O*P,g[3]=M*m+A*y+I*C,g[4]=M*v+A*b+I*S,g[5]=M*h+A*T+I*P,g[6]=R*m+E*y+D*C,g[7]=R*v+E*b+D*S,g[8]=R*h+E*T+D*P,u.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix("MCPCMatrix",t.tmpMat4),r&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix("MCVCMatrix",t.tmpMat4)),o){var V=o.getData();t.tmpColor[0]=V[4*l]/255,t.tmpColor[1]=V[4*l+1]/255,t.tmpColor[2]=V[4*l+2]/255,u.setUniform3fArray("ambientColorUniform",t.tmpColor),u.setUniform3fArray("diffuseColorUniform",t.tmpColor)}c&&u.setUniform3fArray("mapperIndex",c.getPropColorValue())},e.renderPieceDraw=function(n,r){var i=r.getProperty().getRepresentation(),s=t.context,l=r.getProperty().getEdgeVisibility()&&i===Np.SURFACE,c=t.openGLCamera.getKeyMatrices(n),u=t.openGLActor.getKeyMatrices();a.multiply(t.normalMatrix,c.normalMatrix,u.normalMatrix),o.multiply(t.mcpcMatrix,c.wcpc,u.mcwc),o.multiply(t.mcvcMatrix,c.wcvc,u.mcwc);var d=t.renderable.getMatrixArray(),f=t.renderable.getNormalArray(),p=t.renderable.getColorArray(),g=d.length/16,m=!1;t.openGLRenderer.getSelector()&&t.openGLRenderer.getSelector().getCurrentPass()===kp.COMPOSITE_INDEX_PASS&&(m=!0);for(var v=t.primTypes.Start;ve.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed("gMatrix")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||Lp("Error setting gMatrix in shader VAO."):e.getVAO().removeAttributeArray("gMatrix"),e.getProgram().isAttributeUsed("gNormal")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||Lp("Error setting gNormal in shader VAO."):e.getVAO().removeAttributeArray("gNormal"),e.getProgram().isAttributeUsed("gColor")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting gColor in shader VAO."):e.getVAO().removeAttributeArray("gColor"),e.getProgram().isAttributeUsed("mapperIndexVS")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting mapperIndexVS in shader VAO."):e.getVAO().removeAttributeArray("mapperIndexVS"),n.setMapperShaderParameters(e,r,a),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,a)},e.getNeedToRebuildBufferObjects=function(e,r){return t.renderable.buildArrays(),t.VBOBuildTime.getMTime()t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(a,Bp.ARRAY_BUFFER),t.normalBuffer.upload(o,Bp.ARRAY_BUFFER),i?t.colorBuffer.upload(i.getData(),Bp.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();for(var s=a.length/16,l=new Uint8Array(4*s),c=0;c2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Sf.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.normalMatrix=a.identity(new Float64Array(9)),t.mcpcMatrix=o.identity(new Float64Array(16)),t.mcvcMatrix=o.identity(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),_p(e,t)}var Wp=f.d(jp,"vtkOpenGLGlyph3DMapper");al("vtkGlyph3DMapper",Wp);var zp=ad.BufferUsage,Hp=f.a.vtkErrorMacro;var Kp={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,name:null,numberOfInstances:1};function Xp(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},f.a.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},f.a.get(e,t,["bindGroupTime"]),f.a.setGet(e,t,["device","bindGroupLayoutEntry","name","numberOfInstances","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=function(e,n){if(t._bufferEntryNames.has(e))Hp("entry named ".concat(e," already exists"));else{t._bufferEntryNames.set(e,t.bufferEntries.length);var r=gu.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gu.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r}},e.send=function(e){if(!t._buffer){var n={nativeArray:t.Float32Array,time:0,usage:zp.Storage};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=f.a.newTypedArray(e,t.arrayBuffer))},e.setValue=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);var s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=a}else Hp("entry named ".concat(n," not found in UBO"))},e.setArray=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);for(var s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT,c=0;c;\n};\n[[binding(").concat(e,"), group(").concat(n,")]] var ").concat(t.name,": [[access(read)]] ").concat(t.name,"Struct;\n")),r.join("\n")},e.getBindGroupEntry=function(){return{resource:{buffer:t._buffer.getHandle()}}},e.clearData=function(){t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var qp={newInstance:f.a.newInstance(Xp,"vtkWebGPUStorageBuffer"),extend:Xp};function Yp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qp=ad.PrimitiveTypes;function $p(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DMapper");var n=function(e){for(var t=1;t","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix"," *glyphSSBO.values[input.instanceIndex].matrix"," *vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,r){if(r.hasAttribute("normalMC")){var a=t.getShaderDescription("vertex"),o=a.getCode();o=su.substitute(o,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals"," * mapperUBO.MCWCNormals"," * glyphSSBO.values[input.instanceIndex].normal*normalMC).xyz);"]).result,a.setCode(o)}n.replaceShaderNormal(e,t,r)},e.replaceShaderColor=function(e,r,a){if(t.carray){var o=r.getShaderDescription("vertex");o.addOutput("vec4","color");var i=o.getCode();i=su.substitute(i,"//VTK::Color::Impl",[" output.color = glyphSSBO.values[input.instanceIndex].color;"]).result,o.setCode(i);var s=r.getShaderDescription("fragment");i=s.getCode(),i=su.substitute(i,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,s.setCode(i)}else n.replaceShaderColor(e,r,a)},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("vertex");r.addOutput("u32","compositeID");var a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" output.compositeID = input.instanceIndex;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Select::Impl",["var compositeID: u32 = input.compositeID;"]).result,o.setCode(a)}},e.buildPrimitives=function(){t.currentInput=t.renderable.getInputData(1),t.renderable.buildArrays();var e=t.renderable.getMatrixArray(),r=t.renderable.getNormalArray();t.carray=t.renderable.getColorArray();var a=e.length/16;if(t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){var o=t.WebGPURenderWindow.getDevice();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(a),t.SSBO.addEntry("matrix","mat4x4"),t.SSBO.addEntry("normal","mat4x4"),t.carray&&t.SSBO.addEntry("color","vec4"),t.SSBO.setAllInstancesFromArray("matrix",e),t.SSBO.setAllInstancesFromArray3x3To4x4("normal",r),t.carray&&t.SSBO.setAllInstancesFromArrayColorToFloat("color",t.carray.getData()),t.SSBO.send(o),t.glyphBOBuildTime.modified()}n.buildPrimitives();for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jp,n),zf.extend(e,t,n),t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),t.SSBO=qp.newInstance(),t.SSBO.setName("glyphSSBO"),$p(e,t);for(var r=Qp.Start;r1&&void 0!==arguments[1]?arguments[1]:{};return rg[e]&&rg[e](t)}var ig={defaultViewAPI:ng,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ig,n),f.a.obj(e,t),f.a.setGet(e,t,["interactor","numberOfLayers","views","defaultViewAPI"]),f.a.get(e,t,["neverRendered"]),f.a.getArray(e,t,["renderers"]),f.a.event(e,t,"completion"),function(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=function(n){e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=function(n){t.renderers=t.renderers.filter(function(e){return e!==n}),e.modified()},e.hasRenderer=function(e){return-1!==t.renderers.indexOf(e)},e.newAPISpecificView=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return og(e||t.defaultViewAPI,n)},e.addView=function(n){e.hasView(n)||(n.setRenderable(e),t.views.push(n),e.modified())},e.removeView=function(n){t.views=t.views.filter(function(e){return e!==n}),e.modified()},e.hasView=function(e){return-1!==t.views.indexOf(e)},e.render=function(){t.interactor?t.interactor.render():t.views.forEach(function(e){return e.traverseAllPasses()})},e.getStatistics=function(){var e={propCount:0,invisiblePropCount:0};return t.renderers.forEach(function(t){t.getViewProps().forEach(function(t){if(t.getVisibility()){e.propCount+=1;var n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){var r=n.getPrimitiveCount();Object.keys(r).forEach(function(t){e[t]||(e[t]=0),e[t]+=r[t]})}}else e.invisiblePropCount+=1})}),e.str=Object.keys(e).map(function(t){return"".concat(t,": ").concat(e[t])}).join("\n"),e},e.captureImages=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return f.a.setImmediate(e.render),t.views.map(function(e){return e.captureNextImage?e.captureNextImage(n,r):void 0}).filter(function(e){return!!e})}}(e,t)}var lg={newInstance:f.a.newInstance(sg,"vtkRenderWindow"),extend:sg,registerViewConstructor:ag,listViewAPIs:function(){return Object.keys(rg)},newAPISpecificView:og};var cg={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function ug(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cg,n),f.a.obj(e,t),f.a.get(e,t,["currentOperation"]),f.a.setGet(e,t,["delegates","currentParent","preDelegateOperations","postDelegateOperations"]),function(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=function(){return t.currentOperation},e.setCurrentOperation=function(e){t.currentOperation=e,t.currentTraverseOperation="traverse".concat(f.a.capitalize(t.currentOperation))},e.getTraverseOperation=function(){return t.currentTraverseOperation},e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t.currentParent=r,t.preDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}),t.delegates.forEach(function(t){t.traverse(n,e)}),t.postDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}))}}(e,t)}var dg={newInstance:f.a.newInstance(ug,"vtkRenderPass"),extend:ug};var fg={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,framebuffer:null,depthRequested:!1};function pg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fg,n),dg.extend(e,t,n),f.a.get(e,t,["framebuffer"]),function(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.deleted){t.currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);for(var a=n.getRenderable().getNumberOfLayers(),o=n.getChildren(),i=0;i0&&t.volumeCount>0||t.depthRequested){var u=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=Ac.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();var d=t.framebuffer.getSize();null!==d&&d[0]===u[0]&&d[1]===u[1]||(t.framebuffer.create(u[0],u[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("opaqueZBufferPass"),l.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),l.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),l.traverse(e)),t.translucentActorCount>0&&(e.setCurrentOperation("translucentPass"),l.traverse(e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),l.traverse(e))}}}},e.getZBufferTexture=function(){return t.framebuffer?t.framebuffer.getColorTexture():null},e.requestDepth=function(){t.depthRequested=!0},e.incrementOpaqueActorCount=function(){return t.opaqueActorCount++},e.incrementTranslucentActorCount=function(){return t.translucentActorCount++},e.incrementVolumeCount=function(){return t.volumeCount++}}(e,t)}var gg={newInstance:f.a.newInstance(pg,"vtkForwardPass"),extend:pg},mg=n(12),vg=n.n(mg),hg=["lastShaderBound","context","openGLRenderWindow"];var yg={lastShaderBound:null,shaderPrograms:null,context:null,openGLRenderWindow:null};function bg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yg,n),t.shaderPrograms={},f.a.obj(e,t),f.a.setGet(e,t,hg),function(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=function(e,n,r){var a=n;r.length>0&&(a=_l.substitute(a,"VSOut","GSOut").result);var o=t.openGLRenderWindow.getWebgl2(),i="\n",s="#version 100\n";o?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),a=_l.substitute(a,"//VTK::System::Dec",["".concat(s,"\n"),o?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;var l=_l.substitute(e,"//VTK::System::Dec",["".concat(s,"\n"),"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;return o&&(l=_l.substitute(l,"varying","out").result,a=_l.substitute(a,"varying","in").result,a=_l.substitute(a,"gl_FragData\\[0\\]","fragOutput0").result,a=_l.substitute(a,"//VTK::Output::Dec","layout(location = 0) out vec4 fragOutput0;").result),{VSSource:l,FSSource:a,GSSource:_l.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=function(t,n,r){var a=e.replaceShaderValues(t,n,r),o=e.getShaderProgram(a.VSSource,a.FSSource,a.GSSource);return e.readyShaderProgram(o)},e.readyShaderProgram=function(t){return t&&(t.getCompiled()||t.compileShader())&&e.bindShader(t)?t:null},e.getShaderProgram=function(e,n,r){var a="".concat(e).concat(n).concat(r),o=vg()(a);if(-1===Object.keys(t.shaderPrograms).indexOf(o)){var i=_l.newInstance();return i.setContext(t.context),i.getVertexShader().setSource(e),i.getFragmentShader().setSource(n),r&&i.getGeometryShader().setSource(r),i.setMd5Hash(o),t.shaderPrograms[o]=i,i}return t.shaderPrograms[o]},e.releaseGraphicsResources=function(n){e.releaseCurrentShader(),Object.keys(t.shaderPrograms).map(function(e){return t.shaderPrograms[e]}).forEach(function(e){return e.releaseGraphicsResources(n)})},e.releaseGraphicsResources=function(){t.astShaderBound&&(t.lastShaderBound.release(),t.lastShaderBound=null)},e.bindShader=function(e){return t.lastShaderBound===e?1:(t.lastShaderBound&&t.lastShaderBound.release(),e.bind(),t.lastShaderBound=e,1)}}(e,t)}var Tg={newInstance:f.a.newInstance(bg,"vtkShaderCache"),extend:bg};var Cg={size:void 0,selector:void 0};function Sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cg,n),t.size||(t.size=[300,300]),f.a.getArray(e,t,["size"],2),f.a.get(e,t,["selector"]),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=function(){return null},e.getAspectRatio=function(){return t.size[0]/t.size[1]},e.getAspectRatioForRenderer=function(e){var n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=function(t,n,r){var a=r.getViewportByReference(),o=e.getFramebufferSize();return a[0]*o[0]<=t&&a[2]*o[0]>=t&&a[1]*o[1]<=n&&a[3]*o[1]>=n},e.getViewportSize=function(t){var n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=function(t){var n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t/a[0],n/a[1],r]},e.normalizedDisplayToDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t*a[0],n*a[1],r]},e.worldToView=function(e,t,n,r){return r.worldToView(e,t,n)},e.viewToWorld=function(e,t,n,r){return r.viewToWorld(e,t,n)},e.worldToDisplay=function(t,n,r,a){var o=a.worldToView(t,n,r),i=e.getViewportSize(a),s=a.viewToProjection(o[0],o[1],o[2],i[0]/i[1]),l=a.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=function(t,n,r,a){var o=e.displayToNormalizedDisplay(t,n,r),i=a.normalizedDisplayToProjection(o[0],o[1],o[2]),s=e.getViewportSize(a),l=a.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return a.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=function(t,n,r,a){var o=a.getViewportByReference();o=e.normalizedDisplayToDisplay(o[0],o[1],0);var i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-o[0]-.5,i[1]-o[1]-.5,r]},e.viewportToNormalizedViewport=function(t,n,r,a){var o=e.getViewportSize(a);return o&&0!==o[0]&&0!==o[1]?[t/(o[0]-1),n/(o[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=function(t,n,r){var a=e.getFramebufferSize();return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=function(t,n,r){return[t,e.getFramebufferSize()[1]-n-1,r]},e.viewportToNormalizedDisplay=function(t,n,r,a){var o=a.getViewportByReference(),i=t+(o=e.normalizedDisplayToDisplay(o[0],o[1],0))[0]+.5,s=n+o[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getPixelData=function(e,t,n,r){f.a.vtkErrorMacro("not implemented")}}(e,t)}var Pg={newInstance:f.a.newInstance(Sg,"vtkRenderWindowViewNode"),extend:Sg},wg=f.a.vtkErrorMacro;var xg={context:null,numberOfTextureUnits:0,textureUnits:0};function Og(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xg,n),f.a.obj(e,t),t.textureUnits=[],f.a.get(e,t,["numberOfTextureUnits"]),f.a.setGet(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=function(){for(var e=0;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0},r=null,a="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&a&&(r=t.canvas.getContext("webgl2",n))&&(t.webgl2=!0,Dg("using webgl2")),r||(Dg("using webgl1"),r=t.canvas.getContext("webgl",n)||t.canvas.getContext("experimental-webgl",n)),navigator.getVRDisplays&&navigator.getVRDisplays().then(function(n){n.length>0&&(t.vrDisplay=n[0],t.vrDisplay.depthNear=.01,t.vrDisplay.depthFar=100,e.invokeHaveVRDisplay())}),t.canvas.addEventListener("webglcontextlost",function(e){e.preventDefault()},!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1),r},e.startVR=function(){t.oldCanvasSize=t.size.slice(),t.vrDisplay.capabilities.canPresent?t.vrDisplay.requestPresent([{source:t.canvas}]).then(function(){if(t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&t.hideCanvasInVR&&(t.el.style.display="none"),t.queryVRSize){var n=t.vrDisplay.getEyeParameters("left"),r=t.vrDisplay.getEyeParameters("right"),a=Math.floor(n.renderWidth+r.renderWidth),o=Math.floor(Math.max(n.renderHeight,r.renderHeight));e.setSize(a,o)}else e.setSize(t.vrResolution);t.renderable.getRenderers()[0].resetCamera(),t.vrFrameData=new VRFrameData,t.renderable.getInteractor().switchToVRAnimation(),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),Lg&&(t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender))}).catch(function(){console.error("failed to requestPresent")}):Vg("vrDisplay is not connected")},e.stopVR=function(){t.renderable.getInteractor().returnFromVRAnimation(),t.vrDisplay.exitPresent(),t.vrDisplay.cancelAnimationFrame(t.vrSceneFrame),e.setSize.apply(e,Ig(t.oldCanvasSize)),t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&(t.el.style.display="block");var n=t.renderable.getRenderers()[0];n.getActiveCamera().setProjectionMatrix(null),n.setViewport(0,0,1,1),e.traverseAllPasses()},e.vrRender=function(){if(t.vrDisplay.isPresenting){t.renderable.getInteractor().updateGamepads(t.vrDisplay.displayId),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),t.vrDisplay.getFrameData(t.vrFrameData);var n=t.renderable.getRenderers()[0];n.setViewport(0,0,.5,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.leftViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.leftProjectionMatrix),e.traverseAllPasses(),n.setViewport(.5,0,1,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.rightViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.rightProjectionMatrix),e.traverseAllPasses(),t.vrDisplay.submitFrame()}},e.restoreContext=function(){var t=dg.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=function(n){var r=t._textureResourceIds.get(n);if(void 0===r){var a=e.getTextureUnitManager().allocate();a<0?Vg("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,a),t.context.activeTexture(t.context.TEXTURE0+a))}else t.context.activeTexture(t.context.TEXTURE0+r)},e.deactivateTexture=function(n){var r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=function(e){var n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureInternalFormat=function(e,n,r){if(t.webgl2)switch(e){case u.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;case 4:default:return t.context.RGBA8}default:case u.FLOAT:switch(n){case 1:return t.context.R16F;case 2:return t.context.RG16F;case 3:return t.context.RGB16F;case 4:default:return t.context.RGBA16F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:default:return t.context.RGBA}},e.setBackgroundImage=function(e){t.bgImage.src=e.src},e.setUseBackgroundImage=function(e){t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.resetCamera,o=void 0!==a&&a,i=r.size,s=void 0===i?null:i,l=r.scale,c=void 0===l?1:l;if(t.deleted)return null;t.imageFormat=n;var u=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:s||1!==c?s||t.size.map(function(e){return e*c}):null},new Promise(function(n,r){var a=e.onImageReady(function(r){if(null===t._screenshot.size)t.notifyStartCaptureImage=u,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach(function(e){return(0,e.restoreParamsFn)(e.arg)}),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(r);else{var i=document.createElement("img");i.style=Ng,i.src=r,t._screenshot.placeHolder=t.el.appendChild(i),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),o&&(t._screenshot.cameras=t.renderable.getRenderers().map(function(e){var t=e.getActiveCamera(),n=t.get("focalPoint","position","parallelScale");return{resetCameraFn:e.resetCamera,restoreParamsFn:t.set,arg:JSON.parse(JSON.stringify(n))}}),t._screenshot.cameras.forEach(function(e){return(0,e.resetCameraFn)()})),e.traverseAllPasses()}})})},e.getGLInformations=function(){for(var n=e.get3DContext(),r=n.getExtension("OES_texture_float"),a=n.getExtension("OES_texture_half_float"),o=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&Bg(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[a&&Bg(n,n.RGBA,a.HALF_FLOAT_OES)?"RGBA":"",a&&Bg(n,n.RGB,a.HALF_FLOAT_OES)?"RGB":"",a&&Bg(n,n.LUMINANCE,a.HALF_FLOAT_OES)?"LUMINANCE":"",a&&Bg(n,n.ALPHA,a.HALF_FLOAT_OES)?"ALPHA":"",a&&Bg(n,n.LUMINANCE_ALPHA,a.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&Bg(n,n.RGB,n.FLOAT)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",o&&n.getParameter(o.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",o&&n.getParameter(o.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};l.length;){var u=Ag(l.pop(),3),d=u[0],f=u[1],p=u[2];f&&(c[f]={label:d,value:p})}return c},e.traverseAllPasses=function(){if(t.renderPasses)for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat,r=document.createElement("canvas"),a=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,a.drawImage(t.canvas,0,0);var o=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach(function(e){e.getViewProps().forEach(function(e){if(e.getContainer)for(var t=e.getContainer().getElementsByTagName("canvas"),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Pg.extend(e,t,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",kg++,Fg.forEach(function(e){return e(kg)}),t.selector||(t.selector=Ep.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t.myFactory=sl.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",Wg),t.shaderCache=Tg.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=gg.newInstance(),f.a.event(e,t,"imageReady"),f.a.event(e,t,"haveVRDisplay"),f.a.get(e,t,["shaderCache","textureUnitManager","webgl2","vrDisplay","useBackgroundImage"]),f.a.setGet(e,t,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","queryVRSize","hideCanvasInVR","useOffScreen","activeFramebuffer"]),f.a.setGetArray(e,t,["size","vrResolution"],2),_g(e,t)}var Wg=f.a.newInstance(jg,"vtkOpenGLRenderWindow");ag("WebGL",Wg);var zg={newInstance:Wg,extend:jg,pushMonitorGLContextCount:function(e){Fg.push(e)},popMonitorGLContextCount:function(e){return Fg.pop()}};function Hg(e){return function(e){if(Array.isArray(e))return Kg(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kg(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qg,n),f.a.obj(e,t),f.a.get(e,t,["distance"]),f.a.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),f.a.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),f.a.setGetArray(e,t,["clippingRange","windowCenter"],2),f.a.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),function(e,t){t.classHierarchy.push("vtkCamera");var n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),c=o.identity(new Float64Array(16)),u=new Float64Array(3),d=new Float64Array(3),f=new Float64Array(3),p=o.identity(new Float64Array(16)),g=o.identity(new Float64Array(16)),m=new Float64Array(3),v=new Float64Array(3);function h(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=function(){var n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=function(n,r,a){n===t.position[0]&&r===t.position[1]&&a===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=a,e.computeDistance(),e.modified())},e.setFocalPoint=function(n,r,a){n===t.focalPoint[0]&&r===t.focalPoint[1]&&a===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=a,e.computeDistance(),e.modified())},e.setDistance=function(n){if(t.distance!==n){t.distance=n,t.distance<1e-20&&(t.distance=1e-20,Xg("Distance is set to minimum."));var r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()}},e.computeDistance=function(){var e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,Xg("Distance is set to minimum.");var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,h()},e.dolly=function(n){if(!(n<=0)){var r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])}},e.roll=function(n){var r=t.position,a=t.focalPoint,i=t.viewUp,l=new Float64Array([i[0],i[1],i[2],0]);o.identity(p);var c=new Float64Array([a[0]-r[0],a[1]-r[1],a[2]-r[2]]);o.rotate(p,p,x(n),c),s.transformMat4(l,l,p),t.viewUp[0]=l[0],t.viewUp[1]=l[1],t.viewUp[2]=l[2],e.modified()},e.azimuth=function(n){var r=t.focalPoint;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.yaw=function(n){var r=t.position;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint(v[0],v[1],v[2])},e.elevation=function(n){var r=t.focalPoint,a=e.getViewMatrix(),s=[-a[0],-a[1],-a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.pitch=function(n){var r=t.position,a=e.getViewMatrix(),s=[a[0],a[1],a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint.apply(e,Hg(v))},e.zoom=function(n){n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=function(n,r,a){var o=[n,r,a];F(t.position,o,t.position),F(t.focalPoint,o,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=function(n){var r=[].concat(Hg(t.viewUp),[1]),a=[],o=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],s.transformMat4(a,[].concat(Hg(t.position),[1]),n),s.transformMat4(o,[].concat(Hg(t.focalPoint),[1]),n),s.transformMat4(i,r,n),i[0]-=a[0],i[1]-=a[1],i[2]-=a[2],e.setPosition.apply(e,Hg(a.slice(0,3))),e.setFocalPoint.apply(e,Hg(o.slice(0,3))),e.setViewUp.apply(e,Hg(i.slice(0,3)))},e.getThickness=function(){return t.clippingRange[1]-t.clippingRange[0]},e.setThickness=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=function(e){},e.getRoll=function(){},e.setObliqueAngles=function(e,t){},e.getOrientation=function(){},e.getOrientationWXYZ=function(){},e.getFrustumPlanes=function(e){},e.getCameraLightTransformMatrix=function(){},e.deepCopy=function(e){},e.physicalOrientationToWorldDirection=function(e){var t=l.fromValues(e[0],e[1],e[2],e[3]),n=l.create(),r=l.fromValues(0,0,1,0);return l.conjugate(n,t),l.multiply(r,t,r),l.multiply(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=function(t){e.getWorldToPhysicalMatrix(t),o.invert(t,t)},e.getWorldToPhysicalMatrix=function(e){o.identity(e);var n=[3];z(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],o.transpose(e,e),i.set(u,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),o.scale(e,e,u),o.translate(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=function(s){o.invert(c,s),i.transformMat4(u,n,c),e.computeDistance();var l=t.distance;e.setPosition(u[0],u[1],u[2]),i.transformMat4(d,r,c),i.subtract(d,d,u),i.normalize(d,d),e.setDirectionOfProjection(d[0],d[1],d[2]),i.transformMat4(f,a,c),i.subtract(f,f,u),i.normalize(f,f),e.setViewUp(f[0],f[1],f[2]),e.setDistance(l)},e.computeViewParametersFromPhysicalMatrix=function(t){e.getWorldToPhysicalMatrix(c),o.multiply(c,t,c),e.computeViewParametersFromViewMatrix(c)},e.setViewMatrix=function(n){t.viewMatrix=n,t.viewMatrix&&(o.copy(c,t.viewMatrix),e.computeViewParametersFromViewMatrix(c),o.transpose(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=function(){if(t.viewMatrix)return t.viewMatrix;o.lookAt(c,t.position,t.focalPoint,t.viewUp),o.transpose(c,c);var e=new Float64Array(16);return o.copy(e,c),e},e.setProjectionMatrix=function(e){t.projectionMatrix=e},e.getProjectionMatrix=function(e,n,r){var a=new Float64Array(16);if(o.identity(a),t.projectionMatrix){var s=1/t.physicalScale;return i.set(u,s,s,s),o.copy(a,t.projectionMatrix),o.scale(a,a,u),o.transpose(a,a),a}o.identity(c);var l=t.clippingRange[1]-t.clippingRange[0],d=[t.clippingRange[0]+(n+1)*l/2,t.clippingRange[0]+(r+1)*l/2];if(t.parallelProjection){var f=t.parallelScale*e,p=t.parallelScale,g=(t.windowCenter[0]-1)*f,m=(t.windowCenter[0]+1)*f,v=(t.windowCenter[1]-1)*p,h=(t.windowCenter[1]+1)*p;o.ortho(c,g,m,v,h,d[0],d[1]),o.transpose(c,c)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");var y,b,T=Math.tan(x(t.viewAngle)/2);!0===t.useHorizontalViewAngle?(y=t.clippingRange[0]*T,b=t.clippingRange[0]*T/e):(y=t.clippingRange[0]*T*e,b=t.clippingRange[0]*T);var C=(t.windowCenter[0]-1)*y,S=(t.windowCenter[0]+1)*y,P=(t.windowCenter[1]-1)*b,w=(t.windowCenter[1]+1)*b,O=d[0],M=d[1];c[0]=2*O/(S-C),c[5]=2*O/(w-P),c[2]=(C+S)/(S-C),c[6]=(P+w)/(w-P),c[10]=-(O+M)/(M-O),c[14]=-1,c[11]=-2*O*M/(M-O),c[15]=0}return o.copy(a,c),a},e.getCompositeProjectionMatrix=function(t,n,r){var a=e.getViewMatrix(),i=e.getProjectionMatrix(t,n,r);return o.multiply(i,a,i),i},e.setDirectionOfProjection=function(e,n,r){if(t.directionOfProjection[0]!==e||t.directionOfProjection[1]!==n||t.directionOfProjection[2]!==r){t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance,h()}},e.setDeviceAngles=function(n,r,a,s){var l=[3];z(t.physicalViewNorth,t.physicalViewUp,l);var c=o.identity(new Float64Array(16));o.rotate(c,c,x(n),t.physicalViewUp),o.rotate(c,c,x(r),l),o.rotate(c,c,x(a),t.physicalViewNorth),o.rotate(c,c,x(-s),t.physicalViewUp);var u=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),d=new Float64Array(t.physicalViewNorth);i.transformMat4(u,u,c),i.transformMat4(d,d,c),e.setDirectionOfProjection(u[0],u[1],u[2]),e.setViewUp(d[0],d[1],d[2]),e.modified()},e.setOrientationWXYZ=function(t,n,r,a){var s=o.identity(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==a)){var c=x(t),u=l.create();l.setAxisAngle(u,[n,r,a],c),o.fromQuat(s,u)}var d=new Float64Array(3);i.transformMat4(d,[0,0,-1],s);var f=new Float64Array(3);i.transformMat4(f,[0,1,0],s),e.setDirectionOfProjection.apply(e,Hg(d)),e.setViewUp.apply(e,Hg(f)),e.modified()},e.computeClippingRange=function(e){var n,r;n=t.viewPlaneNormal,r=t.position;for(var a=-n[0],o=-n[1],i=-n[2],s=-(a*r[0]+o*r[1]+i*r[2]),l=[a*e[0]+o*e[2]+i*e[4]+s,1e-18],c=0;c<2;c++)for(var u=0;u<2;u++)for(var d=0;d<2;d++){var f=a*e[d]+o*e[2+u]+i*e[4+c]+s;l[0]=fl[1]?f:l[1]}return l}}(e,t)}var Zg={newInstance:f.a.newInstance(Yg,"vtkCamera"),extend:Yg};var Qg={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function $g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qg,n),f.a.obj(e,t),f.a.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","transformMatrix","lightType","shadowAttenuation"]),f.a.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),function(e,t){t.classHierarchy.push("vtkLight"),e.getTransformedPosition=function(){return t.transformMatrix?[]:[].concat(t.position)},e.getTransformedFocalPoint=function(){return t.transformMatrix?[]:[].concat(t.focalPoint)},e.getDirection=function(){return t.directionMTime1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);var r=e.getNestedProps();if(r&&r.length)for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nm,n),f.a.obj(e,t),f.a.event(e,t,"event"),f.a.setGetArray(e,t,["viewport"],4),f.a.setGetArray(e,t,["background","background2"],3),tm(e,t)}var am={newInstance:f.a.newInstance(rm,"vtkViewport"),extend:rm},om=f.k,im=f.l,sm=f.m;function lm(e){return function(){return im("vtkRenderer::".concat(e," - NOT IMPLEMENTED"))}}var cm={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,createdLight:null,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:Ne(),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,pass:0};function um(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cm,n),am.extend(e,t,n),f.b(e,t,["renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),f.i(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","useShadows","pass"]),f.c(e,t,["actors","volumes","lights"]),f.j(e,t,["background"],4,1),function(e,t){for(t.classHierarchy.push("vtkRenderer"),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1);var n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},a={type:"ResetCameraEvent",renderer:e};e.updateCamera=function(){return t.activeCamera||(om("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0},e.updateLightsGeometryToFollowCamera=function(){var n=e.getActiveCameraAndResetIfCreated();t.lights.forEach(function(e){e.lightTypeIsSceneLight()||e.lightTypeIsCameraLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):im("light has unknown light type",e.get()))})},e.updateLightGeometry=function(){return!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera()},e.allocateTime=lm("allocateTime"),e.updateGeometry=lm("updateGeometry"),e.getVTKWindow=function(){return t.renderWindow},e.setLayer=function(n){om(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=function(n){return t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0)},e.makeCamera=function(){var t=Zg.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=function(){return t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera},e.getActiveCameraAndResetIfCreated=function(){return t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera},e.getActors=function(){return t.actors=[],t.props.forEach(function(e){t.actors=t.actors.concat(e.getActors())}),t.actors},e.addActor=e.addViewProp,e.removeActor=function(n){t.actors=t.actors.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllActors=function(){e.getActors().forEach(function(t){e.removeViewProp(t)}),t.actors=[],e.modified()},e.getVolumes=function(){return t.volumes=[],t.props.forEach(function(e){t.volumes=t.volumes.concat(e.getVolumes())}),t.volumes},e.addVolume=e.addViewProp,e.removeVolume=function(n){t.volumes=t.volumes.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllVolumes=function(){e.getVolumes().forEach(function(t){e.removeViewProp(t)}),t.volumes=[],e.modified()},e.addLight=function(n){t.lights=[].concat(t.lights,n),e.modified()},e.removeLight=function(n){t.lights=t.lights.filter(function(e){return e!==n}),e.modified()},e.removeAllLights=function(){t.lights=[],e.modified()},e.setLightCollection=function(n){t.lights=n,e.modified()},e.makeLight=Jg.newInstance,e.createLight=function(){t.automaticLightCreation&&(t.createdLight&&(e.removeLight(t.createdLight),t.createdLight.delete(),t.createdLight=null),t.createdLight=e.makeLight(),e.addLight(t.createdLight),t.createdLight.setLightTypeToHeadLight(),t.createdLight.setPosition(e.getActiveCamera().getPosition()),t.createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=function(t,n,r,a){var o=e.normalizedDisplayToProjection(t,n,r);return o=e.projectionToView(o[0],o[1],o[2],a),e.viewToWorld(o[0],o[1],o[2])},e.worldToNormalizedDisplay=function(t,n,r,a){var o=e.worldToView(t,n,r);return o=e.viewToProjection(o[0],o[1],o[2],a),e.projectionToNormalizedDisplay(o[0],o[1],o[2])},e.viewToWorld=function(e,n,r){if(null===t.activeCamera)return im("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.invert(a,a),o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.projectionToView=function(e,n,r,a){if(null===t.activeCamera)return im("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.invert(s,s),o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.worldToView=function(e,n,r){if(null===t.activeCamera)return im("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.viewToProjection=function(e,n,r,a){if(null===t.activeCamera)return im("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.computeVisiblePropBounds=function(){t.allBounds[0]=Jt.INIT_BOUNDS[0],t.allBounds[1]=Jt.INIT_BOUNDS[1],t.allBounds[2]=Jt.INIT_BOUNDS[2],t.allBounds[3]=Jt.INIT_BOUNDS[3],t.allBounds[4]=Jt.INIT_BOUNDS[4],t.allBounds[5]=Jt.INIT_BOUNDS[5];var r=!0;e.invokeEvent(n);for(var a=0;at.allBounds[1]&&(t.allBounds[1]=i[1]),i[2]t.allBounds[3]&&(t.allBounds[3]=i[3]),i[4]t.allBounds[5]&&(t.allBounds[5]=i[5]))}}return r&&(we(t.allBounds),om("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds(),r=[0,0,0];if(!xe(n))return om("Cannot reset camera!"),!1;var o=null;if(!e.getActiveCamera())return im("Trying to reset non-existent camera"),!1;o=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),r[0]=(n[0]+n[1])/2,r[1]=(n[2]+n[3])/2,r[2]=(n[4]+n[5])/2;var i=n[1]-n[0],s=n[3]-n[2],l=n[5]-n[4],c=(i*=i)+(s*=s)+(l*=l);c=0===c?1:c,c=.5*Math.sqrt(c);var u=x(t.activeCamera.getViewAngle()),d=c,f=c/Math.sin(.5*u),p=t.activeCamera.getViewUp();return Math.abs(W(p,o))>.999&&(sm("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-p[2],p[0],p[1])),t.activeCamera.setFocalPoint(r[0],r[1],r[2]),t.activeCamera.setPosition(r[0]+f*o[0],r[1]+f*o[1],r[2]+f*o[2]),e.resetCameraClippingRange(n),t.activeCamera.setParallelScale(d),t.activeCamera.setPhysicalScale(c),t.activeCamera.setPhysicalTranslation(-r[0],-r[1],-r[2]),e.invokeEvent(a),!0},e.resetCameraClippingRange=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds();if(!xe(n))return om("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return im("Trying to reset clipping range of non-existent camera"),!1;var a=t.activeCamera.computeClippingRange(n),o=0;if(t.activeCamera.getParallelProjection())o=.1*t.activeCamera.getParallelScale();else{var i=x(t.activeCamera.getViewAngle());o=.2*Math.tan(i/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]e&&(e=n);var r=t.createdLight?t.createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=function(){return!!t.preserveColorBuffer},e.isActiveCameraCreated=function(){return!!t.activeCamera}}(e,t)}var dm={newInstance:f.d(um,"vtkRenderer"),extend:um},fm={Unknown:0,LeftController:1,RightController:2},pm={Unknown:0,Trigger:1,TrackPad:2,Grip:3,ApplicationMenu:4},gm={Device:fm,Input:pm};function mm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vm(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mm,n),f.a.obj(e,t),f.a.event(e,t,"RenderEvent"),xm.forEach(function(n){return f.a.event(e,t,n)}),f.a.get(e,t,["initialized","container","interactorStyle","lastFrameTime","view"]),f.a.setGet(e,t,["lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker"]),function(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");var n=new Set,r=0;function a(n,r){t.currentRenderer=e.findPokedRenderer(n,r)}function o(e){var n=t.container.getBoundingClientRect(),r=t.view.getCanvas(),o=r.width/n.width,i=r.height/n.height,s={x:o*(e.clientX-n.left),y:i*(n.height-e.clientY+n.top),z:0};return a(s.x,s.y),s}function i(e){for(var t={},n=0;n1&&void 0!==arguments[1]&&arguments[1],o=document,i=n?"addEventListener":"removeEventListener",s=n?"removeEventListener":"addEventListener";!a&&!n&&r>0&&--r,r&&!a||(r=0,t.container&&t.container[s]("mousemove",e.handleMouseMove),o[i]("mouseup",e.handleMouseUp),o[i]("mousemove",e.handleMouseMove),o[i]("touchend",e.handleTouchEnd,!1),o[i]("touchcancel",e.handleTouchEnd,!1),o[i]("touchmove",e.handleTouchMove,!1)),!a&&n&&++r}function u(){t.view&&t.enabled&&t.enableRender&&(t.inRender=!0,t.view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.start=function(){(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=function(e){Cm("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=function(n){t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=function(){t.initialized=!0,e.enable(),e.render()},e.enable=function(){return e.setEnabled(!0)},e.disable=function(){return e.setEnabled(!1)},e.startEventLoop=function(){return Tm("empty event loop")},e.getCurrentRenderer=function(){return t.currentRenderer?t.currentRenderer:(a(0,0),t.currentRenderer)},e.bindEvents=function(n){t.container=n,n.addEventListener("contextmenu",Om),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("mouseenter",e.handleMouseEnter),n.addEventListener("mouseleave",e.handleMouseLeave),n.addEventListener("mousemove",e.handleMouseMove),n.addEventListener("mousedown",e.handleMouseDown),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.addEventListener("touchstart",e.handleTouchStart,!1)},e.unbindEvents=function(){c(!1,!0),t.container.removeEventListener("contextmenu",Om),t.container.removeEventListener("wheel",e.handleWheel),t.container.removeEventListener("DOMMouseScroll",e.handleWheel),t.container.removeEventListener("mouseenter",e.handleMouseEnter),t.container.removeEventListener("mouseleave",e.handleMouseLeave),t.container.removeEventListener("mousemove",e.handleMouseMove),t.container.removeEventListener("mousedown",e.handleMouseDown),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),t.container.removeEventListener("touchstart",e.handleTouchStart),t.container=null},e.handleKeyPress=function(t){var n=l(t);e.keyPressEvent(n)},e.handleKeyDown=function(t){var n=l(t);e.keyDownEvent(n)},e.handleKeyUp=function(t){var n=l(t);e.keyUpEvent(n)},e.handleMouseDown=function(t){if(!(t.button>2)){c(!0),t.stopPropagation(),t.preventDefault();var n=vm(vm({},s(t)),{},{position:o(t)});switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Cm("Unknown mouse button pressed: ".concat(t.button))}}},e.requestPointerLock=function(){e.getView().getCanvas().requestPointerLock()},e.exitPointerLock=function(){return document.exitPointerLock()},e.isPointerLocked=function(){return!!document.pointerLockElement},e.handlePointerLockChange=function(){e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=function(r){void 0!==r?n.has(r)?Tm("requester is already registered for animating"):(n.add(r),1===n.size&&(t.lastFrameTime=.1,t.lastFrameStart=Date.now(),t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Cm("undefined requester, can not start animating")},e.isAnimating=function(){return t.vrAnimation||null!==t.animationRequest},e.cancelAnimation=function(r){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.has(r))n.delete(r),t.animationRequest&&0===n.size&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!a){var o=r&&r.getClassName?r.getClassName():r;Tm("".concat(o," did not request an animation"))}},e.switchToVRAnimation=function(){t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.vrAnimation=!0},e.returnFromVRAnimation=function(){t.vrAnimation=!1,0!==n.size&&(t.FrameTime=-1,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateGamepads=function(n){for(var r=navigator.getGamepads(),a=0;a1){var r=i(n.touches);if(2===n.touches.length){var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(a)}e.recognizeGesture("TouchStart",r)}else{var s={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(s)}},e.handleTouchMove=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures&&n.touches.length>1){var r=i(n.touches);e.recognizeGesture("TouchMove",r)}else{var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.mouseMoveEvent(a)}},e.handleTouchEnd=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures)if(0===n.touches.length)if(1===n.changedTouches.length){var r={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(r),c(!1)}else{var a=i(n.changedTouches);e.recognizeGesture("TouchEnd",a),c(!1)}else if(1===n.touches.length){var s=i(n.changedTouches);e.recognizeGesture("TouchEnd",s);var l={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(l)}else{var u=i(n.touches);e.recognizeGesture("TouchMove",u)}else{var d={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(d),c(!1)}},e.setView=function(n){t.view!==n&&(t.view=n,t.view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=function(){return t.view.getRenderable().getRenderersByReference()[0]},e.findPokedRenderer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t.view)return null;var r=t.view.getRenderable().getRenderers();r.sort(function(e,t){return e.getLayer()-t.getLayer()});for(var a=null,o=null,i=null,s=r.length;s--;){var l=r[s];if(t.view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===a&&l.getInteractive()&&(a=l),null===o&&t.view.isInViewport(e,n,l)&&(o=l)}return null===i&&(i=a),null===i&&(i=o),null==i&&(i=r[0]),i},e.render=function(){null!==t.animationRequest||t.inRender||u()},xm.forEach(function(n){var r=n.charAt(0).toLowerCase()+n.slice(1);e["".concat(r,"Event")]=function(r){if(t.enabled)if(e.getCurrentRenderer()){var a=vm({type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer()},r);e["invoke".concat(n)](a)}else Pm("\n Can not forward events without a current renderer on the interactor.\n ")}}),e.recognizeGesture=function(n,r){if(!(Object.keys(r).length>2)){if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach(function(e){t.startingEventPositions[e]=r[e]}),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});var a=0,o=[],i=[];Object.keys(r).forEach(function(e){o[a]=r[e],i[a]=t.startingEventPositions[e],a++});var s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((o[0].x-o[1].x)*(o[0].x-o[1].x)+(o[0].y-o[1].y)*(o[0].y-o[1].y)),c=O(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=O(Math.atan2(o[1].y-o[0].y,o[1].x-o[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)p&&g>m&&g>v){t.currentGesture="Pinch";var h={scale:1,touches:r};e.startPinchEvent(h)}else if(m>p&&m>v){t.currentGesture="Rotate";var y={rotation:0,touches:r};e.startRotateEvent(y)}else if(v>p){t.currentGesture="Pan";var b={translation:[0,0],touches:r};e.startPanEvent(b)}}else{if("Rotate"===t.currentGesture){var T={rotation:d,touches:r};e.rotateEvent(T)}if("Pinch"===t.currentGesture){var C={scale:l/s,touches:r};e.pinchEvent(C)}if("Pan"===t.currentGesture){var S={translation:f,touches:r};e.panEvent(S)}}}},e.handleVisibilityChange=function(){t.lastFrameStart=Date.now()};var d=e.delete;e.delete=function(){for(;n.size;)e.cancelAnimation(n.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),d()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}(e,t)}var Im=vm({newInstance:f.a.newInstance(Am,"vtkRenderWindowInteractor"),extend:Am,handledEvents:xm},gm);function Rm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Em(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bm,n),f.a.obj(e,t),f.a.event(e,t,"InteractionEvent"),f.a.event(e,t,"StartInteractionEvent"),f.a.event(e,t,"EndInteractionEvent"),f.a.get(e,t,["interactor","enabled"]),f.a.setGet(e,t,["priority","processEvents"]),function(e,t){t.classHierarchy.push("vtkInteractorObserver");var n=Em({},e);function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function a(){Im.handledEvents.forEach(function(n){e["handle".concat(n)]&&t.subscribedEvents.push(t.interactor["on".concat(n)](function(r){return t.processEvents?e["handle".concat(n)](r):Lm},t.priority))})}e.setInteractor=function(n){n!==t.interactor&&(r(),t.interactor=n,n&&t.enabled&&a(),e.modified())},e.setEnabled=function(n){n!==t.enabled&&(r(),n&&(t.interactor?a():Vm("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=function(e,n,r,a){return e?t.interactor.getView().displayToWorld(n,r,a,e):null},e.computeWorldToDisplay=function(e,n,r,a){return e?t.interactor.getView().worldToDisplay(n,r,a,e):null},e.setPriority=function(e){n.setPriority(e)&&t.interactor&&(r(),a())}}(e,t)}var Fm=Em({newInstance:f.a.newInstance(km,"vtkInteractorObserver"),extend:km},Nm),Gm={States:{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}};function _m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Um(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jm=Gm.States,Wm={Rotate:jm.IS_ROTATE,Pan:jm.IS_PAN,Spin:jm.IS_SPIN,Dolly:jm.IS_DOLLY,CameraPose:jm.IS_CAMERA_POSE,WindowLevel:jm.IS_WINDOW_LEVEL,Slice:jm.IS_SLICE};var zm={state:jm.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Hm(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zm,n),Fm.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wm).forEach(function(n){f.a.event(e,t,"Start".concat(n,"Event")),e["start".concat(n)]=function(){t.state===jm.IS_NONE&&(t.state=Wm[n],t.interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e["invokeStart".concat(n,"Event")]({type:"Start".concat(n,"Event")}))},f.a.event(e,t,"End".concat(n,"Event")),e["end".concat(n)]=function(){t.state===Wm[n]&&(t.state=jm.IS_NONE,t.interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e["invokeEnd".concat(n,"Event")]({type:"End".concat(n,"Event")}),t.interactor.render())}}),e.handleKeyPress=function(e){var n=t.interactor;switch(e.key){case"r":case"R":e.pokedRenderer.resetCamera(),n.render();break;case"w":case"W":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()}),n.render();break;case"s":case"S":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()}),n.render();break;case"v":case"V":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()}),n.render()}}}(e,t)}var Km=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Km.extend(e,t,n),f.a.setGet(e,t,["motionFactor"]),function(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=function(n){var r=n.position,a=n.pokedRenderer;switch(t.state){case Xm.IS_ROTATE:e.handleMouseRotate(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_PAN:e.handleMousePan(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_DOLLY:e.handleMouseDolly(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_SPIN:e.handleMouseSpin(a,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=function(n){n&&n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad?e.startCameraPose():n&&!n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad&&t.state===Xm.IS_CAMERA_POSE&&e.endCameraPose()},e.handleMove3D=function(n){switch(t.state){case Xm.IS_CAMERA_POSE:e.updateCameraPose(n)}},e.updateCameraPose=function(e){var t=e.pokedRenderer.getActiveCamera(),n=t.getPhysicalTranslation(),r=.05*e.gamepad.axes[1]/t.getPhysicalScale(),a=t.physicalOrientationToWorldDirection(e.orientation);t.setPhysicalTranslation(n[0]+a[0]*r,n[1]+a[1]*r,n[2]+a[2]*r)},e.handleLeftButtonPress=function(n){var r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=function(){switch(t.state){case Xm.IS_DOLLY:e.endDolly();break;case Xm.IS_PAN:e.endPan();break;case Xm.IS_SPIN:e.endSpin();break;case Xm.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=function(t){e.startDolly(),e.handleMouseWheel(t)},e.handleEndMouseWheel=function(){e.endDolly()},e.handleStartPinch=function(n){t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=function(){e.endDolly()},e.handleStartRotate=function(n){t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=function(){e.endRotate()},e.handleStartPan=function(n){t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=function(){e.endPan()},e.handlePinch=function(n){e.dollyByFactor(n.pokedRenderer,n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=function(n){var r=n.pokedRenderer.getActiveCamera(),a=r.getFocalPoint(),o=(a=e.computeWorldToDisplay(n.pokedRenderer,a[0],a[1],a[2]))[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(n.pokedRenderer,a[0]+i[0]-s[0],a[1]+i[1]-s[1],o),c=e.computeDisplayToWorld(n.pokedRenderer,a[0],a[1],o),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],a=r.getFocalPoint();var d=r.getPosition();r.setFocalPoint(u[0]+a[0],u[1]+a[1],u[2]+a[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t.interactor.getLightFollowCamera()&&n.pokedRenderer.updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=function(e){var n=e.pokedRenderer.getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=function(e,n){var r=t.interactor,a=n.x-t.previousPosition.x,o=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e),s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);var c=a*l*t.motionFactor,u=o*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=function(e,n){var r=t.interactor,a=e.getActiveCamera(),o=r.getView().getViewportCenter(e),i=O(Math.atan2(t.previousPosition.y-o[1],t.previousPosition.x-o[0])),s=O(Math.atan2(n.y-o[1],n.x-o[0]))-i;Number.isNaN(s)||(a.roll(s),a.orthogonalizeViewUp())},e.handleMousePan=function(n,r){var a=n.getActiveCamera(),o=a.getFocalPoint(),i=(o=e.computeWorldToDisplay(n,o[0],o[1],o[2]))[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],o=a.getFocalPoint();var u=a.getPosition();a.setFocalPoint(c[0]+o[0],c[1]+o[1],c[2]+o[2]),a.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t.interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=function(n,r){var a=r.y-t.previousPosition.y,o=t.interactor.getView().getViewportCenter(n),i=t.motionFactor*a/o[1];e.dollyByFactor(n,Math.pow(1.1,i))},e.handleMouseWheel=function(t){var n=1-t.spinY/10;e.dollyByFactor(t.pokedRenderer,n)},e.dollyByFactor=function(e,n){if(!Number.isNaN(n)){var r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t.interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}}(e,t)}var Zm={newInstance:f.a.newInstance(Ym,"vtkInteractorStyleTrackballCamera"),extend:Ym},Qm=f.a.vtkErrorMacro,$m=[1,-1,1,-1,1,-1];var Jm={empty:!0,numberOfComponents:3,dataType:u.FLOAT,bounds:[1,-1,1,-1,1,-1]};function ev(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Qe.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=f.a.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(e){for(var n=e*t.numberOfComponents,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Qe.extend(e,t,function(e){return rv({empty:!0,numberOfComponents:1,dataType:u.UNSIGNED_INT},e)}(n)),function(e,t){t.classHierarchy.push("vtkCellArray"),e.getNumberOfCells=function(e){return void 0===t.numberOfCells||e?(t.cellSizes=ov(t.values),t.numberOfCells=t.cellSizes.length,t.numberOfCells):t.numberOfCells},e.getCellSizes=function(e){return void 0===t.cellSizes||e?(t.cellSizes=ov(t.values),t.cellSizes):t.cellSizes};var n=e.setData;e.setData=function(e){n(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=function(e){var n=e,r=t.values[n++];return t.values.subarray(n,n+r)}}(e,t)}var lv=rv({newInstance:f.a.newInstance(sv,"vtkCellArray"),extend:sv},iv);var cv={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cv,n),f.a.obj(e,t),t.points||(t.points=tv.newInstance()),f.a.get(e,t,["points","pointsIds"]),function(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;var r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=f.a.newTypedArray(e.getDataType(),3*t.pointsIds.length));var a=e.getData();t.pointsIds.forEach(function(e,t){var n=3*e,o=3*t;r[o]=a[n],r[++o]=a[++n],r[++o]=a[++n]}),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(var o=e.getNumberOfPoints()-1;o>=0;--o)t.pointsIds[o]=o}},e.getBounds=function(){var e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(var r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else we(t.bounds);return t.bounds},e.getLength2=function(){e.getBounds();for(var n=0,r=0,a=0;a<3;a++)n+=(r=t.bounds[2*a+1]-t.bounds[2*a])*r;return n},e.getParametricDistance=function(e){for(var t,n=0,r=0;r<3;r++)(t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0)>n&&(n=t);return n},e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.deepCopy=function(e){e.initialize(t.points,t.pointsIds)},e.getCellDimension=function(){},e.intersectWithLine=function(e,t,n,r,a,o,i){},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var dv={newInstance:f.a.newInstance(uv,"vtkCell"),extend:uv};function fv(e){return function(e){if(Array.isArray(e))return pv(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pv(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=function(n){var r=n.getPoints().getNumberOfPoints(),a=n.getNumberOfCells(),o=new Uint32Array(r);if(n.isA("vtkPolyData")){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map(function(){return{ncells:0,cells:null}}),t.extend=n,t.maxId=-1},e.initialize=function(){t.array=null},e.getLink=function(e){return t.array[e]},e.getNcells=function(e){return t.array[e].ncells},e.getCells=function(e){return t.array[e].cells},e.insertNextPoint=function(e){t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=function(e,n){t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=function(e){t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=function(e,n){t.array[n].cells=t.array[n].cells.filter(function(t){return t!==e}),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=function(e,n){t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=function(e,n){t.array[e].cells.length=n},e.squeeze=function(){!function(e,t){var n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=function(){t.maxId=-1},e.deepCopy=function(e){t.array=fv(e.array),t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=function(e){++t.array[e].ncells},e.allocateLinks=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sv,n),f.a.obj(e,t),f.a.get(e,t,["size","maxId","extend"]),f.a.getArray(e,t,["typeArray","locationArray"]),function(e,t){t.classHierarchy.push("vtkCellTypes"),e.allocate=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=function(e,n,r){t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=function(n,r){return e.insertCell(++t.maxId,n,r),t.maxId},e.setCellTypes=function(e,n,r){t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=function(e){return t.locationArray[e]},e.deleteCell=function(e){t.typeArray[e]=hv.VTK_EMPTY_CELL},e.getNumberOfTypes=function(){return t.maxId+1},e.isType=function(t){for(var n=e.getNumberOfTypes(),r=0;r3&&void 0!==arguments[3]?arguments[3]:null,o={t:Number.MIN_VALUE,distance:0},i=[];i[0]=n[0]-t[0],i[1]=n[1]-t[1],i[2]=n[2]-t[2];var s=i[0]*(e[0]-t[0])+i[1]*(e[1]-t[1])+i[2]*(e[2]-t[2]),l=W(i,i),c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?r=n:(r=i,i[0]=t[0]+o.t*i[0],i[1]=t[1]+o.t*i[1],i[2]=t[2]+o.t*i[2]),a&&(a[0]=r[0],a[1]=r[1],a[2]=r[2]),o.distance=q(r,e),o}function Ev(e,t,n,r,a,o){var i=[],s=[],l=[];a[0]=0,o[0]=0,i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],s[0]=r[0]-n[0],s[1]=r[1]-n[1],s[2]=r[2]-n[2],l[0]=n[0]-e[0],l[1]=n[1]-e[1],l[2]=n[2]-e[2];var c=[];c[0]=[W(i,i),-W(i,s)],c[1]=[c[0][1],W(s,s)];var u=[];if(u[0]=W(i,l),u[1]=-W(s,l),0===pe(c,u,2)){for(var d,f=Number.MAX_VALUE,p=[e,t,n,r],g=[n,n,e,e],m=[r,r,t,t],v=[o[0],o[0],a[0],a[0]],h=[a[0],a[0],o[0],o[0]],y=0;y<4;y++)(d=Rv(p[y],g[y],m[y])).distance=0&&a[0]<=1&&o[0]>=0&&o[0]<=1?Iv.YES_INTERSECTION:Iv.NO_INTERSECTION}var Dv={distanceToLine:Rv,intersection:Ev};var Vv={};function Lv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=function(){return 1},e.intersectWithLine=function(e,n,r,a,o){var i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;var s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);var u=[],d=[],f=Ev(e,n,l,c,u,d);if(i.t=u[0],i.betweenPoints=function(e){return e>=0&&e<=1}(i.t),o[0]=d[0],f===Iv.YES_INTERSECTION){for(var p=0;p<3;p++)a[p]=l[p]+o[0]*(c[p]-l[p]),s[p]=e[p]+i.t*(n[p]-e[p]);if(q(a,s)<=r*r)return i.intersect=1,i}else{var g;if(i.t<0)return(g=Rv(e,l,c,a)).distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return(g=Rv(n,l,c,a)).distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(o[0]<0)return o[0]=0,g=Rv(l,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i;if(o[0]>1)return o[0]=1,g=Rv(c,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var Nv=Mv(Mv({newInstance:f.a.newInstance(Lv,"vtkLine"),extend:Lv},Dv),xv);var Bv={};function kv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bv,n),Cn.extend(e,t,n),f.a.setGet(e,t,["points"]),function(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Object(en.a)(t.points):t.points=tv.newInstance(),e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.getBounds=function(){return t.points.getBounds()},e.computeBounds=function(){e.getBounds()};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=tv.newInstance(),t.points.shallowCopy(e.getPoints())}}(e,t)}var Fv={newInstance:f.a.newInstance(kv,"vtkPointSet"),extend:kv};function Gv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uv(e,t,n,r){var a=n[0]-t[0],o=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=o*c-i*l,r[1]=i*s-a*c,r[2]=a*l-o*s}function jv(e,t,n,r){Uv(e,t,n,r);var a=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==a&&(r[0]/=a,r[1]/=a,r[2]/=a)}var Wv={computeNormalDirection:Uv,computeNormal:jv};var zv={};function Hv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkTriangle"),e.getCellDimension=function(){return 2},e.intersectWithLine=function(n,r,a,o,i){var s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;var l=a*a,c=[],u=[],d=[];t.points.getPoint(0,c),t.points.getPoint(1,u),t.points.getPoint(2,d);var f=[];if(jv(c,u,d,f),0!==f[0]||0!==f[1]||0!==f[2]){var p=ft.intersectWithLine(n,r,c,f);if(s.betweenPoints=p.betweenPoints,s.t=p.t,o[0]=p.x[0],o[1]=p.x[1],o[2]=p.x[2],!p.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;var g=e.evaluatePosition(o,[],i,[]);if(g.evaluation>=0)return g.dist2<=l?(s.intersect=1,s):(s.intersect=g.evaluation,s)}var m=q(c,u),v=q(u,d),h=q(d,c);t.line||(t.line=Nv.newInstance()),m>v&&m>h?(t.line.getPoints().setPoint(0,c),t.line.getPoints().setPoint(1,u)):v>h&&v>m?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,c));var y=t.line.intersectWithLine(n,r,a,o,i);if(s.betweenPoints=y.betweenPoints,s.t=y.t,y.intersect){for(var b=[],T=[],C=[],S=0;S<3;S++)b[S]=c[S]-d[S],T[S]=u[S]-d[S],C[S]=o[S]-d[S];return i[0]=W(C,b)/h,i[1]=W(C,T)/v,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=function(e,n,r,a){var o,i,s,l,c,u,d,f={subId:0,dist2:0,evaluation:-1},p=[],g=[],m=[],v=[],h=[],y=[],b=[],T=0,C=[],S=[],P=[],w=[],x=[];f.subId=0,r[2]=0,t.points.getPoint(1,p),t.points.getPoint(2,g),t.points.getPoint(0,m),Uv(p,g,m,v),ft.generalizedProjectPoint(e,p,v,x);var O=0;for(o=0;o<3;o++)(s=v[o]<0?-v[o]:v[o])>O&&(O=s,T=o);for(i=0,o=0;o<3;o++)o!==T&&(C[i++]=o);for(o=0;o<2;o++)h[o]=x[C[o]]-m[C[o]],y[o]=p[C[o]]-m[C[o]],b[o]=g[C[o]]-m[C[o]];if(0===(l=Q(y,b)))return r[0]=0,r[1]=0,f.evaluation=-1,f;if(r[0]=Q(h,b)/l,r[1]=Q(y,h)/l,a[0]=1-(r[0]+r[1]),a[1]=r[0],a[2]=r[1],a[0]>=0&&a[0]<=1&&a[1]>=0&&a[1]<=1&&a[2]>=0&&a[2]<=1)n&&(f.dist2=q(x,e),n[0]=x[0],n[1]=x[1],n[2]=x[2]),f.evaluation=1;else{var M;if(n)if(a[1]<0&&a[2]<0)for(c=q(e,m),u=Nv.distanceToLine(e,p,m,M,P),d=Nv.distanceToLine(e,m,g,M,w),c1?r[a]-1:0)>n&&(n=t);return n}}(e,t)}var Kv,Xv=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$v,n),Fv.extend(e,t,n),f.a.get(e,t,["cells","links"]),f.a.setGet(e,t,["verts","lines","polys","strips"]),function(e,t){t.classHierarchy.push("vtkPolyData"),qv.forEach(function(n){e["getNumberOf".concat(function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e){return e.toUpperCase()}).replace(/\s+/g,"")}(n))]=function(){return t[n].getNumberOfCells()},t[n]?t[n]=Object(en.a)(t[n]):t[n]=lv.newInstance()}),e.getNumberOfCells=function(){return qv.reduce(function(e,n){return e+t[n].getNumberOfCells()},0)};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),qv.forEach(function(n){t[n]=lv.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})},e.buildCells=function(){var n=e.getNumberOfVerts(),r=e.getNumberOfLines(),a=e.getNumberOfPolys(),o=e.getNumberOfStrips(),i=n+r+a+o,s=new Uint8Array(i),l=s,c=new Uint32Array(i),u=c;if(n){var d=0;t.verts.getCellSizes().forEach(function(e,t){u[t]=d,l[t]=e>1?hv.VTK_POLY_VERTEX:hv.VTK_VERTEX,d+=e+1}),u=u.subarray(n),l=l.subarray(n)}if(r){var f=0;t.lines.getCellSizes().forEach(function(e,t){u[t]=f,l[t]=e>2?hv.VTK_POLY_LINE:hv.VTK_LINE,1===e&&Zv("Building VTK_LINE ",t," with only one point, but VTK_LINE needs at least two points. Check the input."),f+=e+1}),u=u.subarray(r),l=l.subarray(r)}if(a){var p=0;t.polys.getCellSizes().forEach(function(e,t){switch(u[t]=p,e){case 3:l[t]=hv.VTK_TRIANGLE;break;case 4:l[t]=hv.VTK_QUAD;break;default:l[t]=hv.VTK_POLYGON}e<3&&Zv("Building VTK_TRIANGLE ",t," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=e+1}),u+=u.subarray(a),l+=l.subarray(a)}if(o){var g=0;l.fill(hv.VTK_TRIANGLE_STRIP,0,o),t.strips.getCellSizes().forEach(function(e,t){u[t]=g,g+=e+1})}t.cells=wv.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=vv.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellPoints=function(e){var n=t.cells.getCellType(e),r=null;switch(n){case hv.VTK_VERTEX:case hv.VTK_POLY_VERTEX:r=t.verts;break;case hv.VTK_LINE:case hv.VTK_POLY_LINE:r=t.lines;break;case hv.VTK_TRIANGLE:case hv.VTK_QUAD:case hv.VTK_POLYGON:r=t.polys;break;case hv.VTK_TRIANGLE_STRIP:r=t.strips;break;default:return r=null,{type:0,cellPointIds:null}}var a=t.cells.getCellLocation(e);return{cellType:n,cellPointIds:r.getCell(a)}},e.getPointCells=function(e){return t.links.getCells(e)},e.getCellEdgeNeighbors=function(e,n,r){var a=t.links.getLink(n),o=t.links.getLink(r);return a.cells.filter(function(t){return t!==e&&-1!==o.cells.indexOf(t)})},e.getCell=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=e.getCellPoints(t),a=n||Qv[r.cellType].newInstance();return a.initialize(e.getPoints(),r.cellPointIds),a}}(e,t)}var eh={newInstance:f.a.newInstance(Jv,"vtkPolyData"),extend:Jv};function th(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nh(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rh=f.a.vtkDebugMacro;function ah(e,t){t.classHierarchy.push("vtkActor");var n=function(e){for(var t=1;t=1;return n=(n=n&&(!t.texture||!t.texture.isTranslucent()))&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque())},e.makeProperty=ju.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){rh("Recomputing bounds..."),t.mapperBounds=n.concat();var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?r:e}if(null!==t.backfaceProperty){var a=t.backfaceProperty.getMTime();e=a>e?a:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()}}var oh={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ih(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oh,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),ah(e,t)}var sh={newInstance:f.a.newInstance(ih,"vtkActor"),extend:ih};function lh(e){return function(e){if(Array.isArray(e))return ch(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ch(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ch(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ch(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uh,n),f.a.obj(e,t),f.a.get(e,t,["renderWindow","renderer","openGLRenderWindow","interactor","container"]),f.a.event(e,t,"resize"),function(e,t){var n=e.invokeResize;delete e.invokeResize,t.renderWindow=lg.newInstance(),t.renderer=dm.newInstance(),t.renderWindow.addRenderer(t.renderer),t.openGLRenderWindow=zg.newInstance(),t.renderWindow.addView(t.openGLRenderWindow),t.interactor=Im.newInstance(),t.interactor.setInteractorStyle(Zm.newInstance()),t.interactor.setView(t.openGLRenderWindow),t.interactor.initialize(),e.setBackground=t.renderer.setBackground,e.setBackground.apply(e,lh(t.background)),e.resize=function(){if(t.container){var e=t.container.getBoundingClientRect(),r=window.devicePixelRatio||1;t.openGLRenderWindow.setSize(Math.floor(e.width*r),Math.floor(e.height*r)),n(),t.renderWindow.render()}},e.setContainer=function(e){t.container&&t.interactor.unbindEvents(t.container),t.container=e,t.openGLRenderWindow.setContainer(t.container),t.container&&t.interactor.bindEvents(t.container)},e.delete=f.a.chain(e.setContainer,t.openGLRenderWindow.delete,e.delete),t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}(e,t)}var fh={newInstance:f.a.newInstance(dh),extend:dh},ph={DEFAULT:0,GEOMETRY:1,SLICE:2,VOLUME:3,YZ_PLANE:4,XZ_PLANE:5,XY_PLANE:6},gh={PICKING_BUFFER:0,FRONT_BUFFER:1},mh={ViewTypes:ph,RenderingTypes:gh,CaptureOn:{MOUSE_MOVE:0,MOUSE_RELEASE:1}},vh=.5;var hh={contextVisibility:!0,handleVisibility:!0,hasFocus:!1};function yh(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hh,n),Bi.extend(e,t,n),Fm.extend(e,t,n),f.a.setGet(e,t,["contextVisibility","handleVisibility","widgetManager"]),f.a.get(e,t,["representations","widgetState"]),f.a.event(e,t,"ActivateHandle"),function(e,t){t.classHierarchy.push("vtkAbstractWidget"),t.actorToRepresentationMap=new WeakMap,e.getBounds=t.widgetState.getBounds,e.getNestedProps=function(){return t.representations},e.activateHandle=function(n){var r=n.selectedState,a=n.representation;t.widgetState.activateOnly(r),t.activeState=r,r&&r.updateManipulator&&r.updateManipulator(),e.invokeActivateHandle({selectedState:r,representation:a}),e.updateCursor&&e.updateCursor()},e.deactivateAllHandles=function(){t.widgetState.deactivate()},e.hasActor=function(e){return t.actorToRepresentationMap.has(e)},e.grabFocus=function(){t.hasFocus=!0},e.loseFocus=function(){t.hasFocus=!1},e.hasFocus=function(){return t.hasFocus},e.placeWidget=function(e){return t.widgetState.placeWidget(e)},e.getPlaceFactor=function(){return t.widgetState.getPlaceFactor()},e.setPlaceFactor=function(e){return t.widgetState.setPlaceFactor(e)},e.getRepresentationFromActor=function(e){return t.actorToRepresentationMap.get(e)},e.updateRepresentationForRender=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Th,n),sf.extend(e,t,n),f.a.setGet(e,t,["callback","useZValues"]),function(e,t){t.classHierarchy.push("vtkPixelSpaceCallbackMapper"),t.callback||(t.callback=function(){}),e.invokeCallback=function(e,n,r,a,s){if(t.callback){var l=n.getCompositeProjectionMatrix(r,-1,1);o.transpose(l,l);for(var c=e.getPoints(),u=new Float64Array(3),d=a.usize,f=a.vsize,p=d/2,g=f/2,m=[],v=0;ve.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ih,n),Bi.extend(e,t,n),f.a.algo(e,t,1,1),f.a.get(e,t,["labels","coincidentTopologyParameters"]),f.a.set(e,t,["displayScaleParams"]),f.a.setGet(e,t,["scaleInPixels"]),function(e,t){t.classHierarchy.push("vtkWidgetRepresentation");var n={mtimes:{},states:[]};function r(e,t){e&&e.setResolveCoincidentTopologyToPolygonOffset&&(e.setResolveCoincidentTopologyToPolygonOffset(),zd.forEach(function(n){if(t[n]){var r="setRelativeCoincidentTopology".concat(n,"OffsetParameters");if(e[r]){var a=t[n],o=a.factor,i=a.offset;e[r](o,i)}}}))}e.getActors=function(){return t.actors},e.getNestedProps=e.getActors,e.setLabels=function(){for(var n=arguments.length,r=new Array(n),a=0;a0&&void 0!==arguments[0]?arguments[0]:t.inputData[0];return n.mtimes.representation===e.getMTime()&&n.mtimes.input===r.getMTime()?n.states:(n.mtimes.representation=e.getMTime(),n.mtimes.input=r.getMTime(),n.states=[],t.labels.forEach(function(e){n.states=n.states.concat(r.getStatesWithLabel(e)||[])}),n.states)},e.getSelectedState=function(t,n){var r=e.getRepresentationStates();return n0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!0;switch(t.behavior){case Ph.HANDLE:o=e===gh.PICKING_BUFFER||a;break;case Ph.CONTEXT:o=e===gh.FRONT_BUFFER&&r;break;default:o=!0}for(var i=n&&o,s=0;s1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n=i;f--)d(f)}return n}function _h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Uh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Uh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Uh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qh,n),f.a.obj(e,t),f.a.setGet(e,t,["captureOn",{type:"enum",name:"viewType",enum:jh}]),f.a.get(e,t,["selections","widgets","viewId","pickingEnabled","useSvgLayer"]),Zh(e,t)}var Jh={newInstance:f.a.newInstance($h,"vtkWidgetManager"),extend:$h,Constants:mh};function ey(e){return function(e){if(Array.isArray(e))return ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]&&arguments[2];f.a.obj(e,t),f.a.get(e,t,["widgetState"]),f.a.event(e,t,"WidgetChange"),function(e,t){t.classHierarchy.push("vtkAbstractWidgetFactory");var n={};e.getWidgetForView=function(r){var a=r.viewId,o=r.renderer,i=r.viewType,s=r.initialValues;if(!n[a]){if(!o)return null;var l=Yh(o),c=l.interactor,u=l.apiSpecificRenderWindow,d=l.camera,p={},g={onWidgetChange:e.onWidgetChange};Object.assign(p,t,{viewType:i,renderer:o,camera:d,apiSpecificRenderWindow:u,factory:e}),f.a.safeArrays(p),bh.extend(g,p,s);var m=s;p.representations=e.getRepresentationsForViewType(i).map(function(e){var t=e.builder,n=e.labels,r=e.initialValues;return t.newInstance(ry(ry({labels:n},r),m))}),p.representations.forEach(function(e){e.setInputData(p.widgetState),e.getActors().forEach(function(t){p.actorToRepresentationMap.set(t,e)})}),t.behavior(g,p),["coincidentTopologyParameters"].concat(ey(t.methodsToLink||[])).forEach(function(e){var t,n="set".concat(f.a.capitalize(e)),r="get".concat(f.a.capitalize(e)),a=(ay(t={},e,[]),ay(t,n,[]),ay(t,r,[]),t);p.representations.forEach(function(t){t[e]&&a[e].push(t[e]),t[n]&&a[n].push(t[n]),t[r]&&a[r].push(t[r])}),Object.keys(a).forEach(function(e){var t=a[e];1===t.length?g[e]=t[0]:t.length>1&&(g[e]=f.a.chain.apply(f.a,ey(t)))})}),g.delete=f.a.chain(function(){delete n[a]},g.delete),g.setInteractor(c);var v=Object.freeze(g);return n[a]=v,v}return n[a]},e.getViewIds=function(){return Object.keys(n)},e.setVisibility=function(e){for(var t=Object.keys(n),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cy,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlaneManipulator"),e.handleEvent=function(e,n){return ly(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var dy={intersectDisplayWithPlane:ly,extend:uy,newInstance:f.a.newInstance(uy,"vtkPlaneManipulator")};function fy(e,t,n,r,a,o){var i=o.displayToWorld(e,t,0,a),s=[0,0,0];G(o.displayToWorld(e,t,1,a),i,s);var l=[0,0,0];z(r,s,l),z(l,s,l);var c=W([i[0]-n[0],i[1]-n[1],i[2]-n[2]],l),u=W(l,r),d=r.slice();return U(d,c/u),F(n,d,d),d}var py={origin:[0,0,0],normal:[0,0,1]};function gy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,py,n),f.a.obj(e,t),f.a.setGetArray(e,t,["origin","normal"],3),function(e,t){t.classHierarchy.push("vtkLineManipulator"),e.handleEvent=function(e,n){return fy(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var my={projectDisplayToLine:fy,extend:gy,newInstance:f.a.newInstance(gy,"vtkLineManipulator")},vy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function by(e){return function(e){if(Array.isArray(e))return Ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),sf.extend(e,t,n),f.a.algo(e,t,2,0),t.buildTime={},f.a.obj(t.buildTime,{mtime:0}),t.boundsTime={},f.a.obj(t.boundsTime,{mtime:0}),f.a.setGet(e,t,["orient","orientationMode","orientationArray","scaleArray","scaleFactor","scaleMode","scaling"]),f.a.get(e,t,["colorArray","matrixArray","normalArray","buildTime"]),function(e,t){t.classHierarchy.push("vtkGlyph3DMapper"),e.getOrientationModeAsString=function(){return f.a.enumToString(Cy,t.orientationMode)},e.setOrientationModeToDirection=function(){return e.setOrientationMode(Cy.DIRECTION)},e.setOrientationModeToRotation=function(){return e.setOrientationMode(Cy.ROTATION)},e.setOrientationModeToMatrix=function(){return e.setOrientationMode(Cy.MATRIX)},e.getOrientationArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=function(){return f.a.enumToString(Sy,t.scaleMode)},e.setScaleModeToScaleByMagnitude=function(){return e.setScaleMode(Sy.SCALE_BY_MAGNITUDE)},e.setScaleModeToScaleByComponents=function(){return e.setScaleMode(Sy.SCALE_BY_COMPONENTS)},e.setScaleModeToScaleByConstant=function(){return e.setScaleMode(Sy.SCALE_BY_CONSTANT)},e.getScaleArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.getBounds=function(){var n=e.getInputData(0),r=e.getInputData(1);return n&&r?(e.buildArrays(),t.bounds):Ne()},e.buildArrays=function(){var n=e.getInputData(0),r=e.getInputData(1);if(t.buildTime.getMTime()t.bounds[1]&&(t.bounds[1]=p[0]),p[1]>t.bounds[3]&&(t.bounds[3]=p[1]),p[2]>t.bounds[5]&&(t.bounds[5]=p[2]);var E=new Float32Array(T,36*S,9);a.fromMat4(E,P),a.invert(E,E),a.transpose(E,E)}var D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;var V=e.getLookupTable();V&&D&&(V.build(),t.colorArray=V.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}},e.getPrimitiveCount=function(){var t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}}}(e,t)}var Oy=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},r=Ay(Ay({},Ry),n);Rh.extend(e,t,r),f.a.setGet(e,t,["activeScaleFactor","activeColor","useActiveColor"]),function(e,t){t.classHierarchy.push("vtkHandleRepresentation")}(0,t)}};var Dy={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float32Array"};function Vy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dy,n),f.a.obj(e,t),f.a.setGet(e,t,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),f.a.setGetArray(e,t,["center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkSphereSource"),e.requestData=function(e,n){if(!t.deleted){var r=n[0],a=r?r.getPoints().getDataType():"Float32Array";r=eh.newInstance();var o=0,i=t.thetaResolution,s=t.startThetat.startTheta?t.endTheta:t.startTheta;l*=Math.PI/180;var c=t.startPhit.startPhi?t.endPhi:t.startPhi;u*=Math.PI/180,Math.abs(s-l)<2*Math.PI&&++i;var d=(l-s)/t.thetaResolution,p=t.startPhi<=0?1:0,g=t.phiResolution+(t.endPhi>=180?-1:0),m=t.phiResolution*i+2,v=2*t.phiResolution*t.thetaResolution,h=0,y=f.a.newTypedArray(a,3*m),b=new Float32Array(3*m),T=0,C=new Uint32Array(5*v);t.startPhi<=0&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]+t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=1,h++,o++),t.endPhi>=180&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]-t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=-1,h++,o++);for(var S=t.phiResolution-o,P=(u-c)/(t.phiResolution-1),w=0;w=180)for(var D=S-1+o,V=0;V2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ny,n),Ey.extend(e,t,n),f.a.get(e,t,["glyph","mapper","actor"]),function(e,t){function n(n){if(t.displayCallback){for(var r=[],a=e.getRepresentationStates(),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},r=Gy(Gy({},Uy),n);Rh.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkContextRepresentation")}(0,t)}};function Wy(e){return function(e){if(Array.isArray(e))return zy(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return zy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zy(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),jy.extend(e,t,n),f.a.setGetArray(e,t,["edgeColor"],3),f.a.get(e,t,["mapper","actor"]),function(e,t){var n;t.classHierarchy.push("vtkCroppingOutlineRepresentation"),t.internalPolyData=eh.newInstance({mtime:0}),t.points=new Float32Array(24),t.internalPolyData.getPoints().setData(t.points,3),t.internalPolyData.getLines().setData(Uint16Array.from(Ky)),t.mapper=sf.newInstance({scalarVisibility:!1}),t.actor=sh.newInstance(),(n=t.actor.getProperty()).setEdgeColor.apply(n,Wy(t.edgeColor)),t.mapper.setInputConnection(e.getOutputPort()),t.actor.setMapper(t.mapper),e.addActor(t.actor),e.requestData=function(n,r){var a=e.getRepresentationStates(n[0]);if(8===a.length){for(var o=0,i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ib,n),f.a.obj(e,t),f.a.setGet(e,t,["active"]),function(e,t){t.classHierarchy.push("vtkWidgetState");var n=[];t.labels={},t.nestedStates=[],e.bindState=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[ab];if(t.nestedStates.push(r),n.push(r.onModified(e.modified)),Array.isArray(a)&&a.length)for(var o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ub,n),f.a.setGetArray(e,t,["bounds"],6),f.a.get(e,t,["placeFactor"]),f.a.event(e,t,"BoundsChange"),t.bounds=t.bounds.slice(),function(e,t){var n=[],r=lb(Jt.INIT_BOUNDS);e.containsPoint=function(e,t,n){return Array.isArray(e)?Jt.containsPoint(r,e[0],e[1],e[2]):Jt.containsPoint(r,e,t,n)},e.placeWidget=function(a){t.bounds=[];for(var o=[(a[0]+a[1])/2,(a[2]+a[3])/2,(a[4]+a[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];n[i]=a[i],t.bounds[i]=(a[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()},e.setPlaceFactor=function(a){if(t.placeFactor!==a){t.placeFactor=a,t.bounds=[];for(var o=[(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];t.bounds[i]=(n[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()}}}(e,t)}},fb={color:.5};var pb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fb,n),f.a.setGet(e,t,["color"])}};function gb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return mb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),f.a.setGetArray(e,t,["corner"],3),function(e,t){e.translate=function(t,n,r){var a=gb(e.getCornerByReference(),3),o=a[0],i=a[1],s=a[2];e.setCorner(o+t,i+n,s+r)}}(e)}};function yb(e){return function(e){if(Array.isArray(e))return bb(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bb(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]&&arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.matrix=o.identity(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=t?r.toRadian:Cb}return function(e,t,n){t&&Tb(e.prototype,t),n&&Tb(e,n)}(e,[{key:"rotateFromDirections",value:function(e,t){var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(16);i.set(n,e[0],e[1],e[2]),i.set(r,t[0],t[1],t[2]),i.normalize(n,n),i.normalize(r,r);var s=i.dot(n,r);return s>=1?this:(i.cross(this.tmp,n,r),i.length(this.tmp)<1e-6&&(i.cross(this.tmp,[1,0,0],e),i.length(this.tmp)<1e-6&&i.cross(this.tmp,[0,1,0],e)),o.fromRotation(a,Math.acos(s),this.tmp),o.multiply(this.matrix,this.matrix,a),this)}},{key:"rotate",value:function(e,t){return i.set.apply(i,[this.tmp].concat(yb(t))),i.normalize(this.tmp,this.tmp),o.rotate(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}},{key:"rotateX",value:function(e){return o.rotateX(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateY",value:function(e){return o.rotateY(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateZ",value:function(e){return o.rotateZ(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"translate",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.translate(this.matrix,this.matrix,this.tmp),this}},{key:"scale",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.scale(this.matrix,this.matrix,this.tmp),this}},{key:"multiply",value:function(e){return o.multiply(this.matrix,this.matrix,e),this}},{key:"identity",value:function(){return o.identity(this.matrix),this}},{key:"apply",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if(ae(Sb,this.matrix))return this;for(var r=-1===n?e.length:t+3*n,a=t;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),f.a.setGetArray(e,t,["direction"],3),function(e,t){var n="degree"===t.angleUnit?wb.buildFromDegree():wb.buildFromRadian();e.rotateFromDirections=function(r,a){n.identity().rotateFromDirections(r,a).apply(t.direction),e.modified()},e.rotate=function(e,r){n.identity().rotate(e,r).apply(t.direction)},e.rotateX=function(e){n.identity().rotateX(e).apply(t.direction)},e.rotateY=function(e){n.identity().rotateY(e).apply(t.direction)},e.rotateZ=function(e){n.identity().rotateZ(e).apply(t.direction)}}(e,t)}};var Mb={manipulator:null};var Ab={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mb,n),f.a.setGet(e,t,["manipulator"]),function(e,t){e.updateManipulator=function(){if(t.manipulator){var e=t.origin,n=t.normal,r=t.direction,a=t.manipulator,o=a.setOrigin,i=a.setCenter,s=a.setNormal,l=a.setDirection;e&&o?o(e):e&&i&&i(e),r&&l?l(r):r&&!n&&s?s(r):n&&l&&l(n)}}}(e,t)}},Ib={name:""};var Rb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ib,n),f.a.setGet(e,t,["name"])}};function Eb(e,t){return 3===e.length&&3===t.length&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Db(e,t){var n={o:[],p1:[],p2:[]};e.normalize=function(){K(t.up),K(t.right),K(t.direction),e.modified()},e.updateFromOriginRightUp=function(r,a,o){(function(e,t,n,r){return Eb(e,r.o)&&Eb(t,r.p1)&&Eb(n,r.p2)})(r,a,o,n)||(n.o=r.slice(),n.p1=a.slice(),n.p2=o.slice(),t.up=[o[0]-r[0],o[1]-r[1],o[2]-r[2]],t.right=[a[0]-r[0],a[1]-r[1],a[2]-r[2]],z(t.up,t.right,t.direction),z(t.direction,t.up,t.right),e.normalize(),e.modified())}}var Vb={up:[0,1,0],right:[1,0,0],direction:[0,0,1]};var Lb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vb,n),f.a.setGetArray(e,t,["up","right","direction"],3),Db(e,t)}};function Nb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Bb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kb,n),f.a.setGetArray(e,t,["origin"],3),function(e,t){e.translate=function(t,n,r){var a=Nb(e.getOriginByReference(),3),o=a[0],i=a[1],s=a[2];e.setOrigin(o+t,i+n,s+r)}}(e)}},Gb={scale1:.5};var _b={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),f.a.setGet(e,t,["scale1"])}},Ub={scale3:[1,1,1]};var jb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ub,n),f.a.setGetArray(e,t,["scale3"],3)}},Wb={text:"DefaultText"};var zb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wb,n),f.a.setGet(e,t,["text"])}},Hb={visible:!0};var Kb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hb,n),f.a.setGet(e,t,["visible"]),e.isVisible=e.getVisible}},Xb={shape:""};var qb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xb,n),f.a.setGet(e,t,["shape"])}};function Yb(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};arguments.length>4&&void 0!==arguments[4]&&arguments[4]||sb.extend(n,r,t);for(var a=0;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pT,n),sy.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkImageCroppingWidget");var n=null;function r(e,n){t.widgetState.getStatesWithLabel(e).forEach(function(e){e.setVisible(n)})}e.setFaceHandlesEnabled=function(e){return r("faces",e)},e.setEdgeHandlesEnabled=function(e){return r("edges",e)},e.setCornerHandlesEnabled=function(e){return r("corners",e)},e.copyImageDataDescription=function(n){var r,a;(r=t.widgetState).setIndexToWorldT.apply(r,uT(n.getIndexToWorld())),(a=t.widgetState).setWorldToIndexT.apply(a,uT(n.getWorldToIndex()));var o=n.getDimensions();t.widgetState.getCroppingPlanes().setPlanes([0,o[0],0,o[1],0,o[2]]),e.modified()},e.updateHandles=function(){for(var e=t.widgetState.getCroppingPlanes().getPlanes(),n=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],r=[e[0],n[0],e[1]],a=[e[2],n[1],e[3]],o=[e[4],n[2],e[5]],i=t.widgetState.getIndexToWorldT(),s=function(e){return $y[e]},l=0;l<3;l++)for(var c=0;c<3;c++)for(var u=0;u<3;u++)if(1!==l||1!==c||1!==u){var d=[l,c,u].map(s).join(""),f=Jy([r[l],a[c],o[u]],i),p=cT(t.widgetState.getStatesWithLabel(d),1)[0];p.setOrigin.apply(p,uT(f))}},e.delete=f.a.chain(e.delete,function(){n&&n.unsubscribe()}),t.behavior=rb,t.widgetState=lT(),e.getRepresentationsForViewType=function(e){switch(e){case ph.DEFAULT:case ph.GEOMETRY:case ph.SLICE:case ph.VOLUME:default:return[{builder:ky,labels:["handles"]},{builder:Yy,labels:["corners"]}]}},n=t.widgetState.getCroppingPlanes().onModified(e.updateHandles);var a=dy.newInstance(),o=my.newInstance();t.widgetState.getStatesWithLabel("corners").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("edges").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("faces").forEach(function(e){return e.setManipulator(o)})}(e,t)}var mT={newInstance:f.a.newInstance(gT,"vtkImageCroppingWidget"),extend:gT};function vT(e){return function(e){if(Array.isArray(e))return hT(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bT,n),f.a.obj(e,t),f.a.algo(e,t,1,1),f.a.setGetArray(e,t,["croppingPlanes"],6),function(e,t){t.classHierarchy.push("vtkImageCropFilter"),e.reset=function(){var t=e.getInputData();t&&e.setCroppingPlanes.apply(e,vT(t.getExtent()))},e.requestData=function(e,n){var r=e[0];if(r){var a=r.getPointData().getScalars();if(a){var o=r.getExtent(),i=6===t.croppingPlanes.length?o.map(function(e,n){return n%2==0?Math.max(e,Math.round(t.croppingPlanes[n])):Math.min(e,Math.round(t.croppingPlanes[n]))}):o.slice();if(i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&i[4]===o[4]&&i[5]===o[5]){var s=Di.newInstance();return s.shallowCopy(r),void(n[0]=s)}for(var l=0;l<3;++l)if(i[2*l]>i[2*l+1]){var c=[i[2*l+1],i[2*l]];i[2*l]=c[0],i[2*l+1]=c[1]}for(var u=0;u<6;u+=2)i[u]=Math.max(i[u],o[u]),i[u+1]=Math.min(i[u+1],o[u+1]);for(var d=a.getNumberOfComponents(),f=(i[1]-i[0]+1)*(i[3]-i[2]+1)*(i[5]-i[4]+1)*d,p=a.getData(),g=r.getDimensions(),m=d*g[0],v=d*g[0]*g[1],h=(i[0]-o[0])*d,y=(i[1]-i[0]+1)*d,b=new p.constructor(f),T=0,C=i[4];C<=i[5];++C)for(var S=i[2];S<=i[3];++S){var P=h+(S-o[2])*m+(C-o[4])*v,w=P+y,x=p.subarray(P,w);b.set(x,T),T+=x.length}var O=Di.newInstance({extent:i,origin:r.getOrigin(),direction:r.getDirection(),spacing:r.getSpacing()}),M=Qe.newInstance({name:a.getName(),numberOfComponents:d,values:b});O.getPointData().setScalars(M),n[0]=O}else yT("No scalars from input")}else yT("Invalid or missing input")},e.isResetAvailable=function(){if(0===t.croppingPlanes.length)return!1;var n=e.getInputData();return!!n&&void 0!==n.getExtent().find(function(e,n){return Math.abs(t.croppingPlanes[n]-e)>Number.EPSILON})}}(e,t)}f.a.newInstance(TT,"vtkImageCropFilter");var CT=n(13),ST=Object.create(null);CT.filter(function(e){return e.RGBPoints}).filter(function(e){return"CIELAB"!==e.ColorSpace}).forEach(function(e){ST[e.Name]=e});var PT=Object.keys(ST);PT.sort();var wT={addPreset:function(e){e.RGBPoints&&"CIELAB"!==e.ColorSpace&&(ST[e.Name]||(PT.push(e.Name),PT.sort()),ST[e.Name]=e)},removePresetByName:function(e){var t=PT.indexOf(e);t>-1&&PT.splice(t,1),delete ST[e]},getPresetByName:function(e){return ST[e]},rgbPresetNames:PT},xT=n(14),OT=n.n(xT),MT=n(15),AT=n.n(MT);function IT(){return AT()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";var n=function(){function e(e,t){for(var r=0;r1?t-1:0),o=1;o1?r-1:0),a=1;a3&&void 0!==arguments[3]?arguments[3]:[];r([l,e,t,n],o)},m=function(e,t,n){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");r([c,e,t,n])};return self.addEventListener("message",function(e){var t=e.data;Array.isArray(t)?function(e,t,r){var n=function(t){t&&t instanceof b?d(e,p,t.payload,t.transferable):d(e,p,t)},o=function(t){d(e,s,{message:t.message,stack:t.stack})};try{var i=h(e,t,r);v(i)?i.then(n).catch(o):n(i)}catch(e){o(e)}}.apply(void 0,a(t)):t&&t.eventName&&i.emitLocally.apply(i,[t.eventName].concat(a(t.args)))}),i},e.exports.TransferableResponse=b},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);o()(function(e,t){var r=e.array,n=e.min,i=e.max,a=e.component||0,u=e.numberOfComponents||1,f=e.numberOfBins,l=i-n,c=new Float32Array(f);c.fill(0);for(var s=r.length,p=a;p1?t-1:0),n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:256,n=[];n.lengtho+s||do+l?f===l?o:o+f/(f-l)*(d-o-l):-f===l?o:o-f/(f+l)*(d-o-l))-o)/f,g=Math.exp(-4*p*p),m=1-p*p,v=i*(c<1?c*m+(1-c)*g:(2-c)*m+1*(c-1));v>n[u]&&(n[u]=v)}}return n}function jT(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{lineWidth:1,strokeStyle:"#000"},a=t[3],o=t[2]/(n.length-1),i=!!r.fillStyle,s=a+t[1];e.lineWidth=r.lineWidth,e.strokeStyle=r.strokeStyle,e.beginPath(),e.moveTo(t[0],t[1]+t[3]);for(var l=0;l3&&void 0!==arguments[3]?arguments[3]:[0,1];return[r[0]+(e-n[0])/n[2]*(r[1]-r[0]),(t-n[1])/n[3]]}function zT(e,t){var n=t.map(function(t){return Math.abs(t.position-e)}),r=Math.min.apply(Math,LT(n));return n.indexOf(r)}function HT(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(n){var r=n.offsetX,a=n.offsetY;t&&n.preventDefault(),e(r,a)}}function KT(){GT.filter(function(e){return e.ready}).forEach(function(e){e.callbacks.forEach(function(t){t.touches===e.touches&&t.clicks===e.count&&t.action.apply(t,LT(e.singleTouche))}),e.ts=0,e.count=0,e.touches=0,e.ready=!1})}function XT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return function(a){var o=a.target.getBoundingClientRect(),i=Array.prototype.map.call(a.touches,function(e){return[e.pageX-o.left,e.pageY-o.top]}).reduce(function(e,t){return[e[0]+t[0],e[1]+t[1]]},[0,0]).map(function(e){return e/a.touches.length});"touchstart"===a.type?(clearTimeout(GT[e].timeout),GT[e].ts=a.timeStamp,GT[e].singleTouche=i,GT[e].touches=a.touches.length):"touchmove"===a.type?(GT[e].ts=0,GT[e].count=0,GT[e].ready=!1):"touchend"===a.type&&(a.timeStamp-GT[e].ts1&&void 0!==arguments[1]?arguments[1]:{},a=r.numberOfBinToConsiders,o=void 0===a?1:a,i=r.numberOfBinsToSkip,s=void 0===i?1:i,l=r.numberOfComponents,c=void 0===l?1:l,u=r.component,d=void 0===u?0:u;t.histogram=null,t.histogramArray=n,t.dataRange=D(n,d,c);var f=RT(t.dataRange,2),p=f[0],g=f[1],m=Math.floor(n.length/4)||1;m+=m%c;for(var v=0,h=[],y=[];vr;)a.shift();for(var l=a.reduce(function(e,t){return e+t},0)/r,c=0,u=t.histogram.length;c1){for(var s=t.style.iconSize+t.style.padding,l=s,c=0;r>l;)c+=1,l+=s;switch(c){case 0:var u=e.addGaussian(0,1,.1,0,0),d=t.gaussians[u],p=DT({},d),g=_T.adjustPosition;t.activeGaussian=u,t.selectedGaussian=u,f.a.setImmediate(function(){e.onDown(n,r),t.dragAction={originalXY:[0,0],action:g,gaussian:d,originalGaussian:p}});break;case 1:-1!==t.selectedGaussian&&e.removeGaussian(t.selectedGaussian);break;default:t.selectedGaussian=-1,t.dragAction=null}}else if(o<0||o>1||i<0||i>1)t.selectedGaussian=-1,t.dragAction=null;else{var m=zT(o,t.gaussians);m!==t.selectedGaussian&&(t.selectedGaussian=m,e.modified())}return!0},e.onHover=function(n,r){var a=20/t.canvas.height,o=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),i=o[0],s=o[1],l=RT(WT(n,r,t.graphArea),1)[0],c=i<0?t.selectedGaussian:zT(i,t.gaussians);t.canvas.style.cursor="default";var u=t.gaussians[c];if(t.enableRangeZoom&&l>=0&&rt.rangeZoom[1]-d?t.canvas.style.cursor=FT.adjustZoom:t.canvas.style.cursor=FT.adjustPosition,t.dragAction={rangeZoom:t.rangeZoom,action:_T.adjustZoom}}else if(u&&l>=0){var f=1-s,p=null;p=f>u.height+a?"adjustPosition":f>u.height-a?Math.abs(i-u.position).5*u.height+a?"adjustPosition":f>.5*u.height-a?Math.abs(i-u.position)a?"adjustPosition":"adjustWidth",t.canvas.style.cursor=FT[p];var g=_T[p],m=DT({},u);t.dragAction={originalXY:[i,s],action:g,gaussian:u,originalGaussian:m}}return c!==t.activeGaussian&&(t.activeGaussian=c,e.modified()),!0},e.onDown=function(n,r){t.mouseIsDown||e.invokeAnimation(!0),t.mouseIsDown=!0;var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);t.gaussianSide=0;var i=t.gaussians[o];return i&&(t.gaussianSide=i.position-a),o!==t.selectedGaussian&&a>0&&(t.selectedGaussian=o,e.modified()),!0},e.onDrag=function(n,r){if(t.dragAction){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];(0,t.dragAction.action)(o,i,DT({gaussianSide:t.gaussianSide,model:t,publicAPI:e},t.dragAction))&&(t.opacities=UT(t.gaussians,t.piecewiseSize),e.invokeOpacityChange(e,!0)),e.modified()}return!0},e.onUp=function(n,r){return t.mouseIsDown&&e.invokeAnimation(!1),t.mouseIsDown=!1,!0},e.onLeave=function(n,r){return e.onUp(n,r),t.canvas.style.cursor="default",t.activeGaussian=-1,e.modified(),!0},e.onAddGaussian=function(n,r){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];return o>=0&&e.addGaussian(o,1-i,.1,0,0),!0},e.onRemoveGaussian=function(n,r){var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);return a>=0&&-1!==o&&e.removeGaussian(o),!0},e.bindMouseListeners=function(){if(!t.listeners){var n=function(){return!!t.mouseIsDown},r=function(){for(var e=GT.length,t=arguments.length,n=new Array(t),r=0;r1){var l=Math.round(t.style.iconSize/2-t.style.strokeWidth),c=Math.round(l+o+t.style.strokeWidth);e.beginPath(),e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor,e.arc(c-o/2,c,l,0,2*Math.PI,!1),e.fillStyle=t.style.buttonFillColor,e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c),e.stroke(),e.moveTo(c-o/2,c-l+t.style.strokeWidth+2),e.lineTo(c-o/2,c+l-t.style.strokeWidth-2),e.stroke(),-1===t.selectedGaussian?(e.fillStyle=t.style.buttonDisableFillColor,e.lineWidth=t.style.buttonDisableStrokeWidth,e.strokeStyle=t.style.buttonDisableStrokeColor):(e.fillStyle=t.style.buttonFillColor,e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor),e.beginPath(),e.arc(c-o/2,c+o/2+t.style.iconSize,l,0,2*Math.PI,!1),e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c+o/2+t.style.iconSize),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c+o/2+t.style.iconSize),e.stroke()}if(t.histogram&&jT(e,i,YT(t.histogram,t.rangeZoom),{lineWidth:1,strokeStyle:t.style.histogramColor,fillStyle:t.style.histogramColor}),jT(e,i,YT(t.opacities,t.enableRangeZoom&&t.rangeZoom),{lineWidth:t.style.strokeWidth,strokeStyle:t.style.strokeColor}),t.colorTransferFunction&&t.colorTransferFunction.getSize()){var u=t.dataRange||t.colorTransferFunction.getMappingRange();t.colorCanvas&&t.colorCanvasMTime===t.colorTransferFunction.getMTime()||(t.colorCanvasMTime=t.colorTransferFunction.getMTime(),t.colorCanvas=function(e,t,n,r){var a=r||document.createElement("canvas");a.setAttribute("width",t),a.setAttribute("height",256);for(var o=a.getContext("2d"),i=e.getUint8Table(n[0],n[1],t,4),s=o.getImageData(0,0,t,256),l=0;l<256;l++)s.data.set(i,4*l*t);for(var c=256*t*4,u=4*t,d=3;d0&&(a=Math.min(a,i)),t.opacities[i]>0&&(o=Math.max(o,i));return[n[0]+a*r,n[0]+o*r]};var n=e.setEnableRangeZoom;e.setEnableRangeZoom=function(e){var r=n(e);return r&&(t.colorCanvasMTime=0,t.rangeZoom=[0,1]),r};var r=e.setRangeZoom;e.setRangeZoom=function(){var e=r.apply(void 0,arguments);return e&&(t.colorCanvasMTime=0),e},e.onModified(function(){return e.render()}),e.setSize.apply(e,LT(t.size))}var $T={histogram:[],numberOfBins:256,histogramArray:null,dataRange:[0,1],gaussians:[],opacities:[],size:[600,300],piecewiseSize:256,colorCanvasMTime:0,gaussianMinimumHeight:.05,style:{backgroundColor:"rgba(255, 255, 255, 1)",histogramColor:"rgba(200, 200, 200, 0.5)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(0, 0, 150)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",handleColor:"rgb(0, 150, 0)",strokeWidth:2,activeStrokeWidth:3,buttonStrokeWidth:1.5,handleWidth:3,iconSize:20,padding:10,zoomControlHeight:10,zoomControlColor:"#999"},activeGaussian:-1,selectedGaussian:-1,enableRangeZoom:!0,rangeZoom:[0,1]};function JT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$T,n),f.a.obj(e,t),f.a.setGet(e,t,["piecewiseSize","numberOfBins","colorTransferFunction","backgroundImage","enableRangeZoom","gaussianMinimumHeight"]),f.a.setGetArray(e,t,["rangeZoom"],2),f.a.get(e,t,["size","canvas","gaussians"]),f.a.event(e,t,"opacityChange"),f.a.event(e,t,"animation"),f.a.event(e,t,"zoomChange"),QT(e,t)}var eC=DT({newInstance:f.a.newInstance(JT,"vtkPiecewiseGaussianWidget"),extend:JT},ZT);var tC={center:[0,0,0],rotationFactor:1,displayCenter:[0,0]};var nC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tC,n),f.a.setGet(e,t,["rotationFactor"]),f.a.setGetArray(e,t,["displayCenter"],2),f.a.setGetArray(e,t,["center"],3),function(e,t){t.classHierarchy.push("vtkCompositeCameraManipulator"),e.computeDisplayCenter=function(e,n){var r=e.computeWorldToDisplay(n,t.center[0],t.center[1],t.center[2]);t.displayCenter[0]=r[0],t.displayCenter[1]=r[1]}}(e,t)}};var rC={button:1,shift:!1,control:!1,alt:!1,dragEnabled:!0,scrollEnabled:!1};var aC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rC,n),f.a.setGet(e,t,["button","shift","control","alt"]),f.a.set(e,t,["dragEnabled","scrollEnabled"]),function(e,t){t.classHierarchy.push("vtkCompositeMouseManipulator"),e.startInteraction=function(){},e.endInteraction=function(){},e.onButtonDown=function(e,t,n){},e.onButtonUp=function(e){},e.onMouseMove=function(e,t,n){},e.onStartScroll=function(e,t,n){},e.onScroll=function(e,t,n){},e.onEndScroll=function(e){},e.isDragEnabled=function(){return t.dragEnabled},e.isScrollEnabled=function(){return t.scrollEnabled}}(e,t)}};var oC={};function iC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballRotateManipulator");var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(3),s=new Float64Array(16),l=new Float64Array(3),c=new Float64Array(3),u=new Float64Array(3);e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,d,f){if(f){var p=d.getActiveCamera(),g=p.getPosition(),m=p.getFocalPoint();o.identity(s);var v=t.center,h=t.rotationFactor;o.translate(s,s,v);var y=t.previousPosition.x-f.x,b=t.previousPosition.y-f.y,T=e.getView().getSize(),C=p.getViewUp();o.rotate(s,s,x(360*y/T[0]*h),C),z(p.getDirectionOfProjection(),C,l),o.rotate(s,s,x(-360*b/T[1]*h),l),c[0]=-v[0],c[1]=-v[1],c[2]=-v[2],o.translate(s,s,c),i.transformMat4(n,g,s),i.transformMat4(r,m,s),u[0]=C[0]+g[0],u[1]=C[1]+g[1],u[2]=C[2]+g[2],i.transformMat4(a,u,s),p.setPosition(n[0],n[1],n[2]),p.setFocalPoint(r[0],r[1],r[2]),p.setViewUp(a[0]-n[0],a[1]-n[1],a[2]-n[2]),p.orthogonalizeViewUp(),d.resetCameraClippingRange(),e.getLightFollowCamera()&&d.updateLightsGeometryToFollowCamera(),t.previousPosition=f}}}(e,t)}var sC={newInstance:f.a.newInstance(iC,"vtkMouseCameraTrackballRotateManipulator"),extend:iC};var lC={};function cC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lC,n),f.a.obj(e,t),nC.extend(e,t,n),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballPanManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,n,r){if(r){var a=r,o=t.previousPosition;t.previousPosition=r;var i=n.getActiveCamera(),s=i.getPosition(),l=i.getFocalPoint();if(i.getParallelProjection()){i.orthogonalizeViewUp();var c=i.getViewUp(),u=[0,0,0];z(i.getViewPlaneNormal(),c,u);var d=e.getView().getSize()[1],f=(a.x-o.x)/d,p=(o.y-a.y)/d,g=i.getParallelScale();p*=2*g;var m=u[0]*(f*=2*g)+c[0]*p;s[0]+=m,l[0]+=m,m=u[1]*f+c[1]*p,s[1]+=m,l[1]+=m,m=u[2]*f+c[2]*p,s[2]+=m,l[2]+=m,i.setPosition(s[0],s[1],s[2]),i.setFocalPoint(l[0],l[1],l[2])}else{var v=t.center,h=e.getInteractorStyle(),y=h.computeWorldToDisplay(n,v[0],v[1],v[2])[2],b=h.computeDisplayToWorld(n,a.x,a.y,y),T=h.computeDisplayToWorld(n,o.x,o.y,y),C=[s[0]+(T[0]-b[0]),s[1]+(T[1]-b[1]),s[2]+(T[2]-b[2])],S=[l[0]+(T[0]-b[0]),l[1]+(T[1]-b[1]),l[2]+(T[2]-b[2])];i.setPosition(C[0],C[1],C[2]),i.setFocalPoint(S[0],S[1],S[2])}n.resetCameraClippingRange(),e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()}}}(e,t)}var uC={newInstance:f.a.newInstance(cC,"vtkMouseCameraTrackballPanManipulator"),extend:cC};var dC={zoomScale:0,flipDirection:!1};function fC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),f.a.setGet(e,t,["flipDirection"]),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballZoomManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView().getSize(),o=n.getActiveCamera(),i=t.flipDirection?-1:1;if(o.getParallelProjection())t.zoomScale=1.5/a[1]*i;else{var s=o.getClippingRange();t.zoomScale=s[1]/a[1]*1.5*i}},e.onMouseMove=function(e,n,r){if(r){var a=t.previousPosition.y-r.y,o=n.getActiveCamera();if(o.getParallelProjection()){var i=a*t.zoomScale;o.setParallelScale((1-i)*o.getParallelScale())}else{var s=o.getPosition(),l=o.getFocalPoint(),c=o.getDirectionOfProjection(),u=a*t.zoomScale,d=u*c[0];s[0]+=d,l[0]+=d,d=u*c[1],s[1]+=d,l[1]+=d,d=u*c[2],s[2]+=d,l[2]+=d,o.getFreezeFocalPoint()||o.setFocalPoint(l[0],l[1],l[2]),o.setPosition(s[0],s[1],s[2]),n.resetCameraClippingRange()}e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera(),t.previousPosition=r}},e.onScroll=function(e,t,n){if(n){var r=t.getActiveCamera(),a=1-n/10;r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/a):(r.dolly(a),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}}(e,t)}var pC={newInstance:f.a.newInstance(fC,"vtkMouseCameraTrackballZoomManipulator"),extend:fC};var gC={horizontalListener:null,verticalListener:null,scrollListener:null};function mC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gC,n),f.a.obj(e,t),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseRangeManipulator");var n=new Map;function r(e,t){return t*((e.max-e.min)/(e.step+1))}function a(e,t){var r=e.getValue(),a=t*e.scale+n.get(e),o=r+a,i=o-e.min,s=Math.round(i/e.step);o=e.min+e.step*s,o=Math.max(o,e.min),(o=Math.min(o,e.max))!==r?(e.setValue(o),n.set(e,0)):o===e.min&&a<0||o===e.max&&a>0?n.set(e,0):n.set(e,a)}e.setHorizontalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.horizontalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.horizontalListener,0),e.modified()},e.setVerticalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.verticalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.verticalListener,0),e.modified()},e.setScrollListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.scrollListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.scrollListener,0),e.modified()},e.removeHorizontalListener=function(){t.verticalListener&&(n.delete(t.verticalListener),delete t.verticalListener,e.modified())},e.removeVerticalListener=function(){t.horizontalListener&&(n.delete(t.horizontalListener),delete t.horizontalListener,e.modified())},e.removeScrollListener=function(){t.scrollListener&&(n.delete(t.scrollListener),delete t.scrollListener,e.modified())},e.removeAllListeners=function(){e.removeHorizontalListener(),e.removeVerticalListener(),e.removeScrollListener()},e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView(),o=a.getContainerSize()[0]/a.getSize()[0],i=a.getViewportSize(n);t.containerSize=i.map(function(e){return e*o})},e.onMouseMove=function(e,n,o){if((t.verticalListener||t.horizontalListener)&&o){if(t.horizontalListener){var i=(o.x-t.previousPosition.x)/t.containerSize[0],s=r(t.horizontalListener,i);a(t.horizontalListener,s)}if(t.verticalListener){var l=(o.y-t.previousPosition.y)/t.containerSize[1],c=r(t.verticalListener,l);a(t.verticalListener,c)}t.previousPosition=o}},e.onScroll=function(e,n,r){t.scrollListener&&r&&a(t.scrollListener,r*t.scrollListener.step)},e.onStartScroll=e.onScroll}(e,t)}var vC={newInstance:f.a.newInstance(mC,"vtkMouseRangeManipulator"),extend:mC};function hC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bC=f.a.vtkDebugMacro,TC=Km.States,CC={type:"StartInteractionEvent"},SC={type:"InteractionEvent"},PC={type:"EndInteractionEvent"};function wC(e,t,n,r,a,o){var i=e.getActiveCamera(),s=i.getFocalPoint(),l=(s=t.getInteractorStyle().computeWorldToDisplay(e,s[0],s[1],s[2]))[2],c=t.getInteractorStyle().computeDisplayToWorld(e,n,r,l),u=t.getInteractorStyle().computeDisplayToWorld(e,a,o,l),d=[u[0]-c[0],u[1]-c[1],u[2]-c[2]];s=i.getFocalPoint();var f=i.getPosition();i.setFocalPoint(d[0]+s[0],d[1]+s[1],d[2]+s[2]),i.setPosition(d[0]+f[0],d[1]+f[1],d[2]+f[2])}var xC={dollyToPosition:function(e,t,n,r){var a=n.getActiveCamera();if(a.getParallelProjection()){var o=r.getView().getSize(),i=o[0]/2,s=o[1]/2,l=t.x,c=t.y;wC(n,r,i,s,l,c),a.setParallelScale(a.getParallelScale()/e),wC(n,r,l,c,i,s)}else{var u=a.getFocalPoint(),d=a.getViewPlaneNormal();u=r.getInteractorStyle().computeWorldToDisplay(n,u[0],u[1],u[2]);var f=r.getInteractorStyle().computeDisplayToWorld(n,t.x,t.y,u[2]);a.setFocalPoint(f[0],f[1],f[2]),a.dolly(e),n.resetCameraClippingRange();var p=a.getPosition();u=a.getFocalPoint();var g=[0,0,0],m=d[0]*(u[0]-p[0])+d[1]*(u[1]-p[1])+d[2]*(u[2]-p[2]);m/=Math.pow(d[0],2)+Math.pow(d[1],2)+Math.pow(d[2],2),g[0]=p[0]+d[0]*m,g[1]=p[1]+d[1]*m,g[2]=p[2]+d[2]*m,a.setFocalPoint(g[0],g[1],g[2]),n.resetCameraClippingRange()}},translateCamera:wC,dollyByFactor:function(e,t,n){if(!Number.isNaN(n)){var r=t.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}};var OC={cachedMousePosition:null,currentManipulator:null,currentWheelManipulator:null,centerOfRotation:[0,0,0],rotationFactor:1};function MC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,OC,n),Km.extend(e,t,n),f.a.setGet(e,t,["rotationFactor"]),f.a.get(e,t,["mouseManipulators","keyboardManipulators","vrManipulators","gestureManipulators"]),f.a.setGetArray(e,t,["centerOfRotation"],3),function(e,t){t.classHierarchy.push("vtkInteractorStyleManipulator"),t.mouseManipulators=[],t.keyboardManipulators=[],t.vrManipulators=[],t.gestureManipulators=[],t.currentManipulator=null,t.currentWheelManipulator=null,t.centerOfRotation=[0,0,0],t.rotationFactor=1,e.removeAllManipulators=function(){e.removeAllMouseManipulators(),e.removeAllKeyboardManipulators(),e.removeAllVRManipulators(),e.removeAllGestureManipulators()},e.removeAllMouseManipulators=function(){t.mouseManipulators=[]},e.removeAllKeyboardManipulators=function(){t.keyboardManipulators=[]},e.removeAllVRManipulators=function(){t.vrManipulators=[]},e.removeAllGestureManipulators=function(){t.gestureManipulators=[]};var n=function(t,n){var r=n.indexOf(t);return-1!==r&&(n.splice(r,1),e.modified(),!0)};e.removeMouseManipulator=function(e){return n(e,t.mouseManipulators)},e.removeKeyboardManipulator=function(e){return n(e,t.keyboardManipulators)},e.removeVRManipulator=function(e){return n(e,t.vrManipulators)},e.removeGestureManipulator=function(e){return n(e,t.gestureManipulators)};var r=function(t,n){return-1===n.indexOf(t)&&(n.push(t),e.modified(),!0)};e.addMouseManipulator=function(e){return r(e,t.mouseManipulators)},e.addKeyboardManipulator=function(e){return r(e,t.keyboardManipulators)},e.addVRManipulator=function(e){return r(e,t.vrManipulators)},e.addGestureManipulator=function(e){return r(e,t.gestureManipulators)},e.getNumberOfMouseManipulators=function(){return t.mouseManipulators.length},e.getNumberOfKeyboardManipulators=function(){return t.keyboardManipulators.length},e.getNumberOfVRManipulators=function(){return t.vrManipulators.length},e.getNumberOfGestureManipulators=function(){return t.gestureManipulators.length},e.resetCurrentManipulator=function(){t.currentManipulator=null,t.currentWheelManipulator=null},e.handleLeftButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(1,n)},e.handleMiddleButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(2,n)},e.handleRightButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(3,n)},e.handleButton3D=function(n){n&&(t.currentManipulator=e.findVRManipulator(n.device,n.input,n.pressed),t.currentManipulator?(t.currentManipulator.onButton3D(e,n.pokedRenderer,t.state,n.device,n.input,n.pressed),n.pressed?e.startCameraPose():e.endCameraPose()):bC("No manipulator found"))},e.handleMove3D=function(n){t.currentManipulator&&t.state===TC.IS_CAMERA_POSE&&t.currentManipulator.onMove3D(e,n.pokedRenderer,t.state,n)},e.onButtonDown=function(n,r){t.currentManipulator||(t.currentManipulator=e.findMouseManipulator(n,r.shiftKey,r.controlKey,r.altKey),t.currentManipulator?(t.currentManipulator.setCenter&&t.currentManipulator.setCenter(t.centerOfRotation),t.currentManipulator.setRotationFactor&&t.currentManipulator.setRotationFactor(t.rotationFactor),t.currentManipulator.startInteraction(),t.currentManipulator.onButtonDown(t.interactor,r.pokedRenderer,r.position),t.interactor.requestAnimation(e.onButtonDown),e.invokeStartInteractionEvent(CC)):bC("No manipulator found"))},e.findMouseManipulator=function(e,n,r,a){for(var o=null,i=t.mouseManipulators.length;i--;){var s=t.mouseManipulators[i];s&&s.getButton()===e&&s.getShift()===n&&s.getControl()===r&&s.getAlt()===a&&s.isDragEnabled()&&(o=s)}return o},e.findVRManipulator=function(e,n){for(var r=null,a=t.vrManipulators.length;a--;){var o=t.vrManipulators[a];o&&o.getDevice()===e&&o.getInput()===n&&(r=o)}return r},e.handleLeftButtonRelease=function(){e.onButtonUp(1)},e.handleMiddleButtonRelease=function(){e.onButtonUp(2)},e.handleRightButtonRelease=function(){e.onButtonUp(3)},e.onButtonUp=function(n){t.currentManipulator&&t.currentManipulator.getButton&&t.currentManipulator.getButton()===n&&(t.currentManipulator.onButtonUp(t.interactor),t.currentManipulator.endInteraction(),t.currentManipulator=null,t.interactor.cancelAnimation(e.onButtonDown),e.invokeEndInteractionEvent(PC))},e.handleStartMouseWheel=function(n){if(!t.currentWheelManipulator){for(var r=null,a=t.mouseManipulators.length;a--;){var o=t.mouseManipulators[a];o&&o.isScrollEnabled()&&o.getShift()===n.shiftKey&&o.getControl()===n.controlKey&&o.getAlt()===n.altKey&&(r=o)}r?(t.currentWheelManipulator=r,t.currentWheelManipulator.onStartScroll(t.interactor,n.pokedRenderer,n.spinY),t.currentWheelManipulator.startInteraction(),t.interactor.requestAnimation(e.handleStartMouseWheel),e.invokeStartInteractionEvent(CC)):bC("No manipulator found")}},e.handleEndMouseWheel=function(){t.currentWheelManipulator&&t.currentWheelManipulator.onEndScroll&&(t.currentWheelManipulator.onEndScroll(t.interactor),t.currentWheelManipulator.endInteraction(),t.currentWheelManipulator=null,t.interactor.cancelAnimation(e.handleStartMouseWheel),e.invokeEndInteractionEvent(PC))},e.handleMouseWheel=function(n){t.currentWheelManipulator&&t.currentWheelManipulator.onScroll&&(t.currentWheelManipulator.onScroll(t.interactor,n.pokedRenderer,n.spinY,t.cachedMousePosition),e.invokeInteractionEvent(SC))},e.handleMouseMove=function(n){t.cachedMousePosition=n.position,t.currentManipulator&&t.currentManipulator.onMouseMove&&(t.currentManipulator.onMouseMove(t.interactor,n.pokedRenderer,n.position),e.invokeInteractionEvent(SC))},e.handleKeyPress=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyPress}).forEach(function(r){r.onKeyPress(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyDown=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyDown}).forEach(function(r){r.onKeyDown(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyUp=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyUp}).forEach(function(r){r.onKeyUp(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleStartPinch=function(n){e.startDolly();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPinchEnabled()&&(a.onStartPinch(t.interactor,n.scale),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPinch),e.invokeStartInteractionEvent(CC)},e.handleEndPinch=function(){e.endDolly();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPinchEnabled()&&(r.onEndPinch(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPinch),e.invokeEndInteractionEvent(PC)},e.handleStartRotate=function(n){e.startRotate();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isRotateEnabled()&&(a.onStartRotate(t.interactor,n.rotation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartRotate),e.invokeStartInteractionEvent(CC)},e.handleEndRotate=function(){e.endRotate();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isRotateEnabled()&&(r.onEndRotate(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartRotate),e.invokeEndInteractionEvent(PC)},e.handleStartPan=function(n){e.startPan();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPanEnabled()&&(a.onStartPan(t.interactor,n.translation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPan),e.invokeStartInteractionEvent(CC)},e.handleEndPan=function(){e.endPan();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPanEnabled()&&(r.onEndPan(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPan),e.invokeEndInteractionEvent(PC)},e.handlePinch=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPinchEnabled()&&(o.onPinch(t.interactor,n.pokedRenderer,n.scale),a++)}a&&e.invokeInteractionEvent(SC)},e.handlePan=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPanEnabled()&&(o.onPan(t.interactor,n.pokedRenderer,n.translation),a++)}a&&e.invokeInteractionEvent(SC)},e.handleRotate=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isRotateEnabled()&&(o.onRotate(t.interactor,n.pokedRenderer,n.rotation),a++)}a&&e.invokeInteractionEvent(SC)}}(e,t)}var AC=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,IC,n),f.a.obj(e,t),f.a.get(e,t,["renderer"]),f.a.getArray(e,t,["selectionPoint","pickPosition"]),f.a.setGet(e,t,["pickFromList","pickList"]),function(e,t){t.classHierarchy.push("vtkAbstractPicker"),e.initialize=function(){t.renderer=null,t.selectionPoint[0]=0,t.selectionPoint[1]=0,t.selectionPoint[2]=0,t.pickPosition[0]=0,t.pickPosition[1]=0,t.pickPosition[2]=0},e.initializePickList=function(){t.pickList=[]},e.addPickList=function(e){t.pickList.push(e)},e.deletePickList=function(e){var n=t.pickList.indexOf(e);-1!==n&&t.pickList.splice(n,1)}}(e,t)}var EC={newInstance:f.a.newInstance(RC,"vtkAbstractPicker"),extend:RC};function DC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var LC=f.a.vtkErrorMacro,NC=f.a.vtkWarningMacro;function BC(e,t){t.classHierarchy.push("vtkPicker");var n=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kC,n),EC.extend(e,t,n),f.a.setGet(e,t,["tolerance"]),f.a.setGetArray(e,t,["mapperPosition"],3),f.a.get(e,t,["mapper","dataSet","actors","pickedPositions"]),f.a.event(e,t,"pickChange"),BC(e,t)}var GC={newInstance:f.a.newInstance(FC,"vtkPicker"),extend:FC},_C=f.a.vtkErrorMacro;var UC={pointId:-1,pointIJK:[],useCells:!1};function jC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,UC,n),GC.extend(e,t,n),f.a.getArray(e,t,["pointIJK"]),f.a.get(e,t,["pointId"]),f.a.setGet(e,t,["useCells"]),function(e,t){t.classHierarchy.push("vtkPointPicker"),e.intersectWithLine=function(n,r,a,o){var i=Number.MAX_VALUE;if(o.isA("vtkImageMapper")){var s=o.intersectWithLineForPointPicking(n,r);s&&(i=s.t,t.pointIJK=s.ijk)}else o.isA("vtkMapper")&&(i=e.intersectActorWithLine(n,r,a,o));return i},e.intersectActorWithLine=function(e,n,r,a){var o=a.getInputData(),i=0,s=o.getPoints().getNumberOfPoints();if(s<=i)return 2;for(var l=[],c=0;c<3;c++)l[c]=n[c]-e[c];var u,d=W(l,l);if(0===d)return _C("Cannot process points"),2;var f=-1,p=Number.MAX_VALUE,g=Number.MAX_VALUE,m=[],v=[],h=[],y=o.getPoints();if(t.useCells)for(var b=o.getPolys().getData(),T=b[0],C=o.getPolys().getNumberOfCells(),S=0;S=0&&u<=1&&u<=p+t.tolerance){for(var M=0,A=0;A<3;A++){m[A]=e[A]+u*l[A];var I=Math.abs(h[A]-m[A]);I>M&&(M=I)}M<=r&&M=0&&u<=1&&u<=p+t.tolerance){for(var R=0,E=0;E<3;E++){m[E]=e[E]+u*l[E];var D=Math.abs(h[E]-m[E]);D>R&&(R=D)}R<=r&&Re.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qC,n),t.normal=[0,0,1],t.center=[0,0,0],f.a.obj(e,t),f.a.setGet(e,t,["xResolution","yResolution"]),f.a.setGetArray(e,t,["origin"],3),f.a.getArray(e,t,["point1","point2","normal","center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkPlaneSource"),e.requestData=function(n,r){if(!t.deleted){var a=r[0],o=a?a.getPoints().getDataType():"Float32Array",i=eh.newInstance(),s=new Float32Array(3),l=new Float32Array(3);if(G(t.point1,t.origin,s),G(t.point2,t.origin,l),e.updatePlane(s,l)){var c=t.xResolution,u=t.yResolution,d=(c+1)*(u+1),p=c*u,g=f.a.newTypedArray(o,3*d);i.getPoints().setData(g,3);var m=new Uint32Array(5*p);i.getPolys().setData(m,1);var v=new Float32Array(3*d),h=Qe.newInstance({numberOfComponents:3,values:v,name:"Normals"});i.getPointData().setNormals(h);var y=new Float32Array(2*d),b=Qe.newInstance({numberOfComponents:2,values:y,name:"TextureCoordinates"});i.getPointData().setTCoords(b);for(var T=new Float32Array(2),C=0,S=0;S2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nS,n),f.a.obj(e,t),f.a.set(e,t,["property"]),f.a.get(e,t,["value"]),f.a.setGet(e,t,["coordinateSystem","referenceCoordinate","renderer"]),f.a.getArray(e,t,["value"],3),function(e,t){t.classHierarchy.push("vtkCoordinate"),e.setValue=function(){if(t.deleted)return tS("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1?1e3*e:1e3;this.actor.getMapper().setMaximumSamplesPerRay(t),this.renderWindow.render()}get resolution(){return Math.round(1/this._raysDistance)}get presetsList(){return wT.rgbPresetNames}set widgetElement(e){this.PGwidgetElement=e;let t=e.offsetHeight?e.offsetHeight-5:100,n=e.offsetWidth?e.offsetWidth-5:300;this.PGwidget.setSize(n,t),this.PGwidget.setContainer(this.PGwidgetElement),this.PGwidget.render()}set rescaleLUT(e){let t;this._rescaleLUT=e,t=this._rescaleLUT&&this.PGwidget?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),this.ctfun.setMappingRange(...t),this.ctfun.updateRange()}set rangeLUT([e,t]){this._rangeLUT=[e,t],this.actor.getProperty().getRGBTransferFunction(0).setMappingRange(e,t)}set cropWidget(e){this._cropWidget||this.setupCropWidget(),this._cropWidget.setVisibility(e),this._widgetManager.renderWidgets(),this.renderWindow.render()}set lut(e){const t=vs.newInstance();let n;t.applyColorMap(wT.getPresetByName(e)),n=this._rescaleLUT&&this._PGwidgetLoaded?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),t.setMappingRange(...n),t.updateRange(),this.actor.getProperty().setRGBTransferFunction(0,t);const r=Ts.newInstance();this.actor.getProperty().setScalarOpacity(0,r),this.ctfun=t,this.ofun=r,this.updateWidget()}set blurOnInteraction(e){this._blurOnInteraction=e;let t=this.renderWindow.getInteractor(),n=this.actor.getMapper();e?(t.onLeftButtonPress(()=>{n.setSampleDistance(5*this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()})):(t.onLeftButtonPress(()=>{n.setSampleDistance(this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()}))}initVR(){const e=fh.newInstance();e.setContainer(this.element),e.setBackground([0,0,0]),e.onResize(()=>{let t=[e.getContainer().getBoundingClientRect().width,e.getContainer().getBoundingClientRect().height];e.getRenderWindow().getViews()[0].setSize(t),this.VERBOSE&&console.log("resize",t)}),window.addEventListener("resize",t=>{e.resize()}),e.resize(),this.renderer=e.getRenderer(),this.renderWindow=e.getRenderWindow(),this._genericRenderWindow=e,this.setupPGwidget()}setImage(e){this.renderer.removeAllVolumes();let t=Ys(e);this.actor=t,this.lut="Grayscale",this.resolution=2,this.renderer.addVolume(t),this.setCamera(t.getCenter()),this.PGwidget&&(this.updateWidget(),this.setWidgetCallbacks()),this.setActorProperties(),this.setupInteractor(),this.blurOnInteraction=!0,this._genericRenderWindow.resize(),this.renderer.resetCamera(),this.renderWindow.render()}setCamera(e){this.renderer.resetCamera(),this.renderer.getActiveCamera().zoom(1.5),this.renderer.getActiveCamera().elevation(70),this.renderer.getActiveCamera().setViewUp(0,0,1),this.renderer.getActiveCamera().setFocalPoint(e[0],e[1],e[2]),this.renderer.getActiveCamera().setPosition(e[0],e[1]-2e3,e[2]),this.renderer.getActiveCamera().setThickness(1e4),this.renderer.getActiveCamera().setParallelProjection(!0)}getLutList(){return wT.rgbPresetNames}setActorProperties(){this.actor.getProperty().setScalarOpacityUnitDistance(0,30),this.actor.getProperty().setInterpolationTypeToLinear(),this.actor.getProperty().setUseGradientOpacity(0,!0),this.actor.getProperty().setGradientOpacityMinimumValue(0,2),this.actor.getProperty().setGradientOpacityMinimumOpacity(0,0),this.actor.getProperty().setGradientOpacityMaximumValue(0,20),this.actor.getProperty().setGradientOpacityMaximumOpacity(0,2),this.actor.getProperty().setShade(!0),this.actor.getProperty().setAmbient(.3),this.actor.getProperty().setDiffuse(.7),this.actor.getProperty().setSpecular(.3),this.actor.getProperty().setSpecularPower(.8)}setupCropWidget(){const e=Jh.newInstance();e.setRenderer(this.renderer);const t=mT.newInstance(),n=(e.addWidget(t),t.getWidgetState().getCroppingPlanes());n.onModified(()=>{const e=function(e,t){const n=l.create();o.getRotation(n,e.getIndexToWorld());const r=e=>{const t=[0,0,0];return i.transformQuat(t,e,n),t},[a,s,c,u,d,f]=t,p=e.indexToWorld([a,c,d]),g=e.indexToWorld([s,u,f]);return[ft.newInstance({normal:r([1,0,0]),origin:p}),ft.newInstance({normal:r([-1,0,0]),origin:g}),ft.newInstance({normal:r([0,1,0]),origin:p}),ft.newInstance({normal:r([0,-1,0]),origin:g}),ft.newInstance({normal:r([0,0,1]),origin:p}),ft.newInstance({normal:r([0,0,-1]),origin:g})]}(a,n.getPlanes());r.removeAllClippingPlanes(),e.forEach(e=>{r.addClippingPlane(e)}),r.modified()});let r=this.actor.getMapper(),a=r.getInputData();t.copyImageDataDescription(a),t.set({faceHandlesEnabled:!0,edgeHandlesEnabled:!0,cornerHandlesEnabled:!0}),e.enablePicking(),this._widgetManager=e,this._cropWidget=t,this.renderWindow.render()}setupPGwidget(){let e=this.PGwidgetElement?this.PGwidgetElement.offsetWidth-5:300,t=this.PGwidgetElement?this.PGwidgetElement.offsetHeight-5:100;const n=eC.newInstance({numberOfBins:256,size:[e,t]});n.updateStyle({backgroundColor:"rgba(255, 255, 255, 0.6)",histogramColor:"rgba(50, 50, 50, 0.8)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(255, 255, 255)",handleColor:"rgb(50, 150, 50)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",strokeWidth:1,activeStrokeWidth:1.5,buttonStrokeWidth:1,handleWidth:1,iconSize:0,padding:1}),n.setContainer(this.PGwidgetElement),window.addEventListener("resize",e=>{n.setSize(this.PGwidgetElement.offsetWidth-5,this.PGwidgetElement.offsetHeight-5),n.render()}),this.PGwidget=n}updateWidget(){const e=this.actor.getMapper().getInputData().getPointData().getScalars();this.PGwidget.setDataArray(e.getData());let t=this.PGwidget.getGaussians();if(t.length>0){let e=t[0];e.position=this.wl,e.width=this.ww,this.PGwidget.setGaussians([e])}else{const e=1,t=0,n=1.8;this.PGwidget.addGaussian(this.wl,e,this.ww,t,n)}this.PGwidget.applyOpacity(this.ofun),this.PGwidget.setColorTransferFunction(this.ctfun),this.ctfun.onModified(()=>{this.PGwidget.render(),this.renderWindow.render()}),this._PGwidgetLoaded=!0}setWidgetCallbacks(){this.PGwidget.bindMouseListeners(),this.PGwidget.onAnimation(e=>{e?this.renderWindow.getInteractor().requestAnimation(this.PGwidget):this.renderWindow.getInteractor().cancelAnimation(this.PGwidget)}),this.PGwidget.onOpacityChange(e=>{if(this.PGwidget=e,this.gaussians=e.getGaussians().slice(),this.PGwidget.applyOpacity(this.ofun),this.renderWindow.getInteractor().isAnimating()||this.renderWindow.render(),this._rescaleLUT&&this.PGwidget){const e=this.PGwidget.getOpacityRange();this.ctfun.setMappingRange(...e),this.ctfun.updateRange()}})}setupInteractor(){const e=sC.newInstance({button:1}),t=uC.newInstance({button:3,control:!0}),n=pC.newInstance({button:3,scrollEnabled:!0}),r=vC.newInstance({button:1,shift:!0});let a=this;r.setVerticalListener(-1,1,.001,function(){return a.wl},function(e){let t=a.wl+(e-a.wl)/25;a.wl=t;let n=a.PGwidget.getGaussians().slice();n[0].position=a.wl,a.PGwidget.setGaussians(n)}),r.setHorizontalListener(.1,2.1,.001,function(){return a.ww},function(e){let t=a.ww+(e-a.ww)/5;a.ww=t;let n=a.PGwidget.getGaussians().slice();n[0].width=a.ww,a.PGwidget.setGaussians(n)});const o=AC.newInstance();o.addMouseManipulator(r),o.addMouseManipulator(e),o.addMouseManipulator(t),o.addMouseManipulator(n),o.setCenterOfRotation(this.actor.getCenter()),this.renderWindow.getInteractor().setInteractorStyle(o),this.renderWindow.getInteractor().onMouseWheel(()=>this.resetMeasurementState()),this.renderWindow.getInteractor().onRightButtonPress(()=>this.resetMeasurementState())}resetMeasurementState(e){this._measurementState?(this._measurementState.p1=new Array(2),this._measurementState.p2=new Array(2),this._measurementState.p3=new Array(2),this._measurementState.p1_world=new Array(2),this._measurementState.p2_world=new Array(2),this._measurementState.p3_world=new Array(2),this._measurementState.label=null):e&&(e.p1=new Array(2),e.p2=new Array(2),e.p3=new Array(2),e.p1_world=new Array(2),e.p2_world=new Array(2),e.p3_world=new Array(2),e.label=null)}setTool(e,t,n){switch(this._leftButtonCb&&this._leftButtonCb.unsubscribe(),e){case"Length":case"Angle":this._initPicker(n,e);break;case"Rotation":this.resetMeasurementState(n),this.setupInteractor();break;default:console.warn("No tool found for",e)}}_initPicker(e,t){this.blurOnInteraction=!1;let n=this.renderWindow.getInteractor().getInteractorStyle().getMouseManipulators().filter(e=>"vtkMouseCameraTrackballRotateManipulator"==e.getClassName()).pop();this.renderWindow.getInteractor().getInteractorStyle().removeMouseManipulator(n);const r=WC.newInstance();if(r.setPickFromList(1),r.initializePickList(),!this._pickingPlane){const e=ZC.newInstance({xResolution:1e3,yResolution:1e3});let t=this.renderer.getActiveCamera();e.setPoint1(0,0,1e3),e.setPoint2(1e3,0,0),e.setCenter(this.actor.getCenter()),e.setNormal(t.getDirectionOfProjection());const n=sf.newInstance();n.setInputConnection(e.getOutputPort());const r=sh.newInstance();r.setMapper(n),r.getProperty().setOpacity(.01),this.renderer.addActor(r),this._pickingPlane=e,this._planeActor=r}r.addPickList(this._planeActor),this._leftButtonCb=this.renderWindow.getInteractor().onLeftButtonPress(n=>{if(this.renderer!==n.pokedRenderer)return;const a=n.position,o=[a.x,a.y,0];if(r.pick(o,this.renderer),0===r.getActors().length){const e=r.getPickPosition();this.VERBOSE&&console.log(`No point picked, default: ${e}`)}else{const n=r.getPickedPositions()[0];this.VERBOSE&&console.log(`Picked: ${n}`);const a=aS.newInstance();a.setCoordinateSystemToWorld(),a.setValue(...n);const o=a.getComputedDisplayValue(this.renderer);!function(e,t,n,r){oS[r](e,t,n)}(e,o,n,t),this.VERBOSE&&console.log(e),this._measurementState=e}this.renderWindow.render()})}resetView(){let e=this.actor.getCenter();console.log(e),this.setCamera(e),this.renderWindow.render()}resize(){this._genericRenderWindow.resize()}destroy(){this.element=null,this._genericRenderWindow.delete(),this._genericRenderWindow=null,this.actor&&(this.actor.getMapper().delete(),this.actor.delete(),this.actor=null),this._planeActor&&(this._planeActor.getMapper().delete(),this._planeActor.delete(),this._planeActor=null),this.PGwidgetElement&&(this.PGwidgetElement=null,this.PGwidget.getCanvas().remove(),this.PGwidget.delete(),this.PGwidget=null,this.gaussians=null),this._cropWidget&&(this._cropWidget.delete(),this._cropWidget=null)}}function uS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRSlice"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulator=uC.newInstance({button:1,shift:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n={sliceNormal:[0,0,0],sliceRange:[0,0],slicePosition:[0,0,0]};function r(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}let a=null,o=null;const i=e.setInteractor;e.setInteractor=(n=>{if(i(n),a&&(a.unsubscribe(),a=null),o&&(o.unsubscribe(),o=null),n){const i=n.getCurrentRenderer().getActiveCamera();a=i.onModified(()=>{r(),e.modified()}),o=n.onAnimation(()=>{const{slabThickness:e}=t,n=i.getDistance(),r=n-e/2,a=n+e/2;i.setClippingRange(r,a)})}}),e.handleMouseMove=f.a.chain(e.handleMouseMove,()=>{const e=t.interactor.getCurrentRenderer(),{slabThickness:n}=t,r=e.getActiveCamera(),a=r.getDistance(),o=a-n/2,i=a+n/2;r.setClippingRange(o,i)});const s=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(s(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.getSlice=(()=>{const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=e.getSliceNormal(),a=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]),o=n.getFocalPoint();return a.apply(o),o[0]}),e.setSlice=(n=>{const r=t.interactor.getCurrentRenderer().getActiveCamera();if(t.volumeMapper){const a=e.getSliceRange(),o=t.volumeMapper.getBounds(),i=function(e,t,n){return en?n:e}(n,...a),s=[(o[0]+o[1])/2,(o[2]+o[3])/2,(o[4]+o[5])/2],l=r.getDistance(),c=r.getDirectionOfProjection();Fe.normalize(c);const u=(a[1]+a[0])/2,d=[s[0]-c[0]*u,s[1]-c[1]*u,s[2]-c[2]*u],f=[d[0]+c[0]*i,d[1]+c[1]*i,d[2]+c[2]*i],p=[f[0]-c[0]*l,f[1]-c[1]*l,f[2]-c[2]*l];r.setPosition(...p),r.setFocalPoint(...f);const g=e.getOnScroll();g&&g(f)}}),e.getSliceRange=(()=>{if(t.volumeMapper){const r=e.getSliceNormal();if(r[0]===n.sliceNormal[0]&&r[1]===n.sliceNormal[1]&&r[2]===n.sliceNormal[2])return n.sliceRange;const a=function(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}(t.volumeMapper.getBounds()),o=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);a.forEach(e=>o.apply(e));let i=1/0,s=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>s&&(s=t),t{if(t.volumeMapper&&t.interactor){return t.interactor.getCurrentRenderer().getActiveCamera().getDirectionOfProjection()}return[0,0,0]}),e.setSliceNormal=((n,r=[0,1,0])=>{const a=t.interactor.getCurrentRenderer().getActiveCamera();t.sliceNormal=[...n],t.viewUp=[...r];const o=[...n],i=[...r];if(t.volumeMapper){Fe.normalize(o);let n=t.volumeMapper;!t.volumeMapper.getInputData&&t.volumeMapper.getMapper&&(n=t.volumeMapper.getMapper());let r=function(e){if(9!==e.length)throw Error("Array not length 9");return[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]]]}(n.getInputData().getDirection());Fe.transpose3x3(r,r),Fe.multiply3x3_vect3(r,o,o);let s=a.getFocalPoint(),l=a.getDistance(),c=a.getViewAngle();if(Number.isNaN(l)||void 0===l){const e=t.volumeMapper.getBounds(),n=Math.sqrt(Fe.distance2BetweenPoints([e[0],e[2],e[4]],[e[1],e[3],e[5]]));s=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],c=90,l=n/(2*Math.tan(c/360*Math.PI))}const u=[s[0]-o[0]*l,s[1]-o[1]*l,s[2]-o[2]*l];Fe.multiply3x3_vect3(r,i,i);const{slabThickness:d}=t;a.setPosition(...u),a.setDistance(l),a.setDirectionOfProjection(...o),a.setViewUp(...i),a.setViewAngle(c),a.setClippingRange(l-d/2,l+d/2),e.setCenterOfRotation(s)}}),e.setSlabThickness=(e=>{t.slabThickness=e;const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=n.getDistance();n.setClippingRange(r-e/2,r+e/2)}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulator),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),r()}const dS={slabThickness:.1};function fS(e,t,n={}){Object.assign(t,dS,n),AC.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onScroll"]),f.a.get(e,t,["slabThickness","viewUp"]),uS(e,t)}const pS=f.a.newInstance(fS,"vtkInteractorStyleMPRSlice");var gS=Object.assign({newInstance:pS,extend:fS});const{States:mS}=Gm;function vS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRWindowLevel"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n=e.handleMouseMove;e.handleMouseMove=(r=>{const a=[r.position.x,r.position.y];t.state===mS.IS_WINDOW_LEVEL&&(e.windowLevelFromMouse(a),e.invokeInteractionEvent({type:"InteractionEvent"})),n&&n(r)});const r=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(r(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.windowLevelFromMouse=(([n,r])=>{const a=t.volumeMapper.getMapper().getInputData().getPointData().getScalars().getRange(),o=(a[1]-a[0])/1024*t.levelScale,i=(n-t.wlStartPos[0])*o,s=(r-t.wlStartPos[1])*o*.5;let{windowWidth:l,windowCenter:c}=e.getWindowLevel();l=Math.max(1,Math.round(l+i)),c=Math.round(c+s),e.setWindowLevel(l,c),t.wlStartPos=[n,r];const u=e.getOnLevelsChanged();u&&u({windowCenter:c,windowWidth:l})}),e.getWindowLevel=(()=>{return function(e,t){const n=Math.abs(e-t);return{windowWidth:n,windowCenter:e+n/2}}(...t.volumeMapper.getProperty().getRGBTransferFunction(0).getMappingRange().slice())}),e.setWindowLevel=((e,n)=>{const r=function(e,t){return{lower:t-e/2,upper:t+e/2}}(e,n);t.volumeMapper.getProperty().getRGBTransferFunction(0).setMappingRange(r.lower,r.upper)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(n=>{t.wlStartPos=[n.position.x,n.position.y],n.shiftKey||n.controlKey?a&&a(n):e.startWindowLevel()}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case mS.IS_WINDOW_LEVEL:e.endWindowLevel();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const hS={wlStartPos:[0,0],levelScale:1};function yS(e,t,n={}){Object.assign(t,hS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onLevelsChanged","levelScale"]),vS(e,t)}const bS=f.a.newInstance(yS,"vtkInteractorStyleMPRWindowLevel");var TS=Object.assign({newInstance:bS,extend:yS});const{States:CS}=Gm;function SS(e,t){function n(t){const n=[t.position.x,t.position.y],r=t.pokedRenderer,a=e.getOnClickCallback(),o=aS.newInstance();o.setCoordinateSystemToDisplay(),o.setValue(n[0],n[1],0);const i=o.getComputedWorldValue(r);i.length&&a({worldPos:i,displayPos:n}),e.invokeInteractionEvent({type:"InteractionEvent"})}t.classHierarchy.push("vtkInteractorStyleMPRCrosshairs"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const r=e.handleMouseMove;e.handleMouseMove=(e=>{t.state===CS.IS_SLICE&&n(e),r&&r(e)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(r=>{r.shiftKey||r.controlKey?a&&a(r):t.volumeMapper&&(n(r),e.startSlice())});const o=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(o(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case CS.IS_SLICE:e.endSlice();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const PS={};function wS(e,t,n={}){Object.assign(t,PS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onClickCallback"]),SS(e,t)}const xS=f.a.newInstance(wS,"vtkInteractorStyleMPRCrosshairs");var OS=Object.assign({newInstance:xS,extend:wS});const{States:MS}=Gm;function AS(e,t){function n(){e.removeAllMouseManipulators(),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),e.addMouseManipulator(t.leftManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}t.classHierarchy.push("vtkInteractorStyleMPRPanZoom"),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1}),e.setLeftButton=(e=>{"zoom"==e?t.leftManipulator=pC.newInstance({button:1}):"pan"==e?t.leftManipulator=uC.newInstance({button:1}):console.error("No tool found for",e),n()}),t.leftButtonTool||(t.leftButtonTool="pan"),e.setLeftButton(t.leftButtonTool),n();const r=e.setInteractor;e.setInteractor=(n=>{if(r(n),null===n)return;let a="pan"==t.leftButtonTool?e.getOnPanChanged():e.getOnZoomChanged();n.onAnimation(a)})}const IS={wlStartPos:[0,0],levelScale:1};function RS(e,t,n={}){Object.assign(t,IS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onPanChanged","onZoomChanged","levelScale"]),AS(e,t)}const ES=f.a.newInstance(RS,"vtkInteractorStyleMPRPanZoom");var DS=Object.assign({newInstance:ES,extend:RS});const VS=[[0,0,1],[-1,0,0],[0,1,0]],LS=[[0,-1,0],[0,0,1],[0,0,1]];class NS{constructor(e,t,n){this.VERBOSE=!1,this._key=e,this._element=n,this._volume=null,this._renderer=null,this._parallel=!0,this.slicePlaneNormal=VS[t],this.sliceViewUp=LS[t],this.slicePlaneXRotation=0,this.slicePlaneYRotation=0,this.viewRotation=0,this._sliceThickness=.1,this._blendMode="MIP",this.window={width:0,center:0},this._cachedSlicePlane=[...this.slicePlaneNormal],this._cachedSliceViewUp=[...this.sliceViewUp],this._genericRenderWindow=fh.newInstance({background:[0,0,0]}),this._genericRenderWindow.setContainer(n),this._renderWindow=this._genericRenderWindow.getRenderWindow(),this._renderer=this._genericRenderWindow.getRenderer(),this._parallel&&this._renderer.getActiveCamera().setParallelProjection(!0),this._genericRenderWindow.getOpenGLRenderWindow().buildPass(!0),this.onResize()}set blendMode(e){this._blendMode=e,this.updateBlendMode(this._sliceThickness,this._blendMode)}set sliceThickness(e){this._sliceThickness=e;const t=this._renderWindow.getInteractor().getInteractorStyle();t.setSlabThickness&&t.setSlabThickness(this._sliceThickness),this.updateBlendMode(this._sliceThickness,this._blendMode)}set wwwl([e,t]){this.window.center=t,this.window.width=e,this._genericRenderWindow.getRenderWindow().render()}get camera(){return this._genericRenderWindow.getRenderer().getActiveCamera()}initView(e,t,n,r){this._volume=e;const a=gS.newInstance();a.setOnScroll(n),this._renderWindow.getInteractor().setInteractorStyle(a),this.VERBOSE&&console.log(this._volumes);const o=this._volume.getMapper();a.setVolumeMapper(o);const i=a.getSliceRange();a.setSlice((i[0]+i[1])/2),this.updateVolumesForRendering(),this.VERBOSE&&console.log("view data",this._key,t.views[this.key]),this.updateSlicePlane(t.views[this._key]),this.fill2DView(this._genericRenderWindow,this._key),r()}updateVolumesForRendering(){this._renderer.removeAllVolumes(),this._volume&&(this._volume.isA("vtkVolume")?this._renderer.addVolume(this._volume):console.warn("Data to is not vtkVolume data")),this._renderWindow.render()}updateSlicePlane(e){let t=this._cachedSlicePlane,n=this._cachedSliceViewUp;this.VERBOSE&&console.log(e);let r=[];i.cross(r,e.sliceViewUp,e.slicePlaneNormal),i.normalize(r,r);let a=e.sliceViewUp;const s=o.create();o.rotate(s,s,Xs(e.slicePlaneYRotation),a),o.rotate(s,s,Xs(e.slicePlaneXRotation),r),this.VERBOSE&&console.log(t,e.slicePlaneNormal,s),i.transformMat4(t,e.slicePlaneNormal,s);const c=l.create();l.setAxisAngle(c,t,Xs(-e.viewRotation)),l.normalize(c,c);const u=l.create();l.setAxisAngle(u,r,Xs(e.slicePlaneXRotation)),l.normalize(u,u);const d=l.create();l.add(d,u,c),i.transformQuat(n,e.sliceViewUp,c);const f=this._genericRenderWindow.getRenderWindow(),p=f.getInteractor().getInteractorStyle();p&&p.setSliceNormal&&p.setSliceNormal(t,n),f.render()}fill2DView(){const e=this._renderer.computeVisiblePropBounds(),t=[(e[1]-e[0])/2,(e[3]-e[2])/2,(e[5]-e[4])/2],n=this._genericRenderWindow.getContainer().clientWidth/this._genericRenderWindow.getContainer().clientHeight;let r,a;"left"===this._key?(r=t[1],a=t[2]):"front"===this._key?(r=t[0],a=t[2]):"top"===this._key&&(r=t[0],a=t[1]),n>=r/a?this._renderer.getActiveCamera().setParallelScale(a+1):this._renderer.getActiveCamera().setParallelScale(r/n+1),this.onResize()}onResize(){this._genericRenderWindow.resize()}updateBlendMode(e,t){if(e>=1)switch(t){case"MIP":this._volume.getMapper().setBlendModeToMaximumIntensity();break;case"MINIP":this._volume.getMapper().setBlendModeToMinimumIntensity();break;case"AVG":this._volume.getMapper().setBlendModeToAverageIntensity();break;case"none":default:this._volume.getMapper().setBlendModeToComposite()}else this._volume.getMapper().setBlendModeToComposite();this._renderWindow.render()}setInteractor(e){const t=this._genericRenderWindow.getRenderWindow(),n=t.getInteractor().getInteractorStyle();t.getInteractor().setInteractorStyle(e),e.setInteractor(t.getInteractor()),t.getInteractor().setInteractorStyle(e),e.setSliceNormal&&n.getSliceNormal()&&e.setSliceNormal(n.getSliceNormal(),n.getViewUp()),e.setSlabThickness&&n.getSlabThickness()&&e.setSlabThickness(n.getSlabThickness()),e.setVolumeMapper(this._volume)}destroy(){this.VERBOSE&&console.log("DESTROY",this._key),this.VERBOSE=null,this._key=null,this._element=null,this._volume.getMapper()&&this._volume.getMapper().delete(),this._volume.delete(),this._volume=null,this._renderer.delete(),this._renderer=null,this._parallel=null,this.slicePlaneNormal=null,this.sliceViewUp=null,this.slicePlaneXRotation=null,this.slicePlaneYRotation=null,this.viewRotation=null,this._sliceThickness=null,this._blendMode=null,this.window=null,this._cachedSlicePlane=null,this._cachedSliceViewUp=null,this._genericRenderWindow.delete()}}class BS{constructor(e){this.VERBOSE=!1,this.syncWindowLevels=!0,this._activeTool=null,this.elements=e,this.volume=null,this.sliceIntersection=[0,0,0],this.mprViews={},this.initMPR()}set wwwl([e,t]){const n=t-e/2,r=t+e/2;this.volume.getProperty().getRGBTransferFunction(0).setMappingRange(n,r),Object.keys(this.elements).forEach((n,r)=>{this.mprViews[n].wwwl=[e,t]})}initMPR(){Object.keys(this.elements).forEach((e,t)=>{try{this.mprViews[e]=new NS(e,t,this.elements[e].element)}catch(t){console.error("Error creating MPRView",e),console.error(t)}}),this.VERBOSE&&console.log("initialized")}getInitialState(){let e=Object.keys(this.mprViews).reduce((e,t)=>{let{slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,_sliceThickness:s,_blendMode:l,window:c}=e[t];return e[t]={slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,sliceThickness:s,blendMode:l,window:c},e},Object.assign({},this.mprViews));return{interactorCenters:Object.keys(this.elements).reduce((e,t)=>({...e,[t]:[0,0]}),{}),sliceIntersection:[...this.sliceIntersection],views:e}}setImage(e,t){let n=Ys(t);this.volume=n,this.sliceIntersection=function(e){const t=e.getBounds();return[(t[0]+t[1])/2,(t[2]+t[3])/2,(t[4]+t[5])/2]}(n.getMapper()),e.sliceIntersection=[...this.sliceIntersection],Object.keys(this.elements).forEach(t=>{this.mprViews[t].initView(n,e,()=>{this.onScrolled.call(this,e)},()=>{this.onScrolled.call(this,e)})}),this._activeTool&&this.setTool(this._activeTool,e)}setTool(e,t){switch(e){case"level":this.setLevelTool(t);break;case"crosshair":this.setCrosshairTool(t);break;case"zoom":this.setZoomTool(t);break;case"pan":this.setPanTool(t)}}setPanTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"pan"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnPanChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="pan"}setZoomTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"zoom"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnZoomChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="zoom"}setLevelTool(e){Object.entries(e.views).forEach(([t])=>{const n=TS.newInstance();n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnLevelsChanged(n=>{this.updateLevels({...n,srcKey:t},e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="level"}setCrosshairTool(e){let t=this;Object.entries(e.views).forEach(([n])=>{const r=OS.newInstance();r.setOnScroll(()=>{t.onScrolled(e)}),r.setOnClickCallback(({worldPos:r})=>{t.onCrosshairPointSelected({worldPos:r,srcKey:n},e)}),this.mprViews[n].setInteractor(r)}),this._activeTool="crosshair"}onCrosshairPointSelected({srcKey:e,worldPos:t},n){Object.keys(this.elements).forEach(r=>{if(r!==e){const e=this.mprViews[r]._genericRenderWindow.getRenderWindow(),n=e.getInteractor().getInteractorStyle(),a=n.getSliceNormal(),o=wb.buildFromDegree().identity().rotateFromDirections(a,[1,0,0]),i=t.slice();o.apply(i);const s=i[0];n.setSlice(s),e.render()}this.updateInteractorCenters(n)}),this.sliceIntersection=[...t],n.sliceIntersection=[...t]}updateLevels({windowCenter:e,windowWidth:t,srcKey:n},r){r.views[n].window.center=e,r.views[n].window.width=t,this.syncWindowLevels&&Object.keys(this.elements).filter(e=>e!==n).forEach(n=>{this.mprViews[n].wwwl=[t,e]})}onScrolled(e){let t=[];Object.keys(this.elements).forEach(e=>{const n=this.mprViews[e].camera;t.push({position:n.getFocalPoint(),normal:n.getDirectionOfProjection()})});const n=qs(...t);return Number.isNaN(n)||n.some(e=>Number.isNaN(e))||(this.sliceIntersection=[...n],e.sliceIntersection=[...n],this.VERBOSE&&console.log("updating slice intersection",n)),this.updateInteractorCenters(e),n}onRotate(e,t,n,r){switch(e){case"top":"x"===t?r.views.front.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneYRotation=n);break;case"left":"x"===t?r.views.top.slicePlaneXRotation=n:"y"===t&&(r.views.front.slicePlaneXRotation=n);break;case"front":"x"===t?r.views.top.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneXRotation=n)}Object.keys(this.elements).filter(t=>t!==e).forEach(e=>{this.mprViews[e].updateSlicePlane(r.views[e])}),this.VERBOSE&&console.log("afterOnRotate",r)}onThickness(e,t,n,r){const a=n>1;let o;switch(e){case"top":"x"===t?o="front":"y"===t&&(o="left");break;case"left":"x"===t?o="top":"y"===t&&(o="front");break;case"front":"x"===t?o="top":"y"===t&&(o="left")}a&&"none"===this.mprViews[o].blendMode&&(this.mprViews[o].blendMode="MIP",r.mprViews[o].blendMode="MIP"),this.mprViews[o].sliceThickness=n,r.views[o].sliceThickness=n}updateInteractorCenters(e){Object.keys(this.elements).forEach(t=>{const n=this.mprViews[t]._genericRenderWindow.getRenderer(),r=aS.newInstance();r.setCoordinateSystemToWorld(),r.setValue(...this.sliceIntersection);const a=r.getComputedDisplayValue(n);this.VERBOSE&&console.log("interactor center",t,a),e.interactorCenters[t]=a})}resize(e,t){t?this.mprViews[t].onResize():Object.values(this.mprViews).forEach(e=>{e.onResize()}),this.updateInteractorCenters(e)}destroy(){Object.keys(this.elements).forEach(e=>{this.mprViews[e].destroy()})}}n.d(t,"MPRManager",function(){return BS}),n.d(t,"VRView",function(){return cS}),n.d(t,"loadDemoSerieWithLarvitar",function(){return Ks}),n.d(t,"buildVtkVolume",function(){return zs}),console.groupCollapsed("%c** dtk **","background: #0aa658; color: #000000; line-height: 1.6"),console.log(`Version ${c.a}`),console.log("Detected graphic card:"),console.log(function(){const e=document.createElement("canvas").getContext("webgl");if(!e)return{error:"no webgl"};const t=e.getExtension("WEBGL_debug_renderer_info");return t?{vendor:e.getParameter(t.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:{error:"no WEBGL_debug_renderer_info"}}()),console.groupEnd("dtk")}])}); \ No newline at end of file diff --git a/docs/examples/diglettk.js b/docs/examples/diglettk.js index 6be8410..48cefa7 100644 --- a/docs/examples/diglettk.js +++ b/docs/examples/diglettk.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.diglettk=t():e.diglettk=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=30)}([function(e,t,n){"use strict";(function(e){n.d(t,"k",function(){return b}),n.d(t,"l",function(){return T}),n.d(t,"m",function(){return C}),n.d(t,"e",function(){return w}),n.d(t,"f",function(){return x}),n.d(t,"g",function(){return R}),n.d(t,"b",function(){return E}),n.d(t,"h",function(){return L}),n.d(t,"i",function(){return N}),n.d(t,"c",function(){return B}),n.d(t,"j",function(){return F}),n.d(t,"d",function(){return _});var r=n(1);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){"@babel/helpers - typeof";return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};M(t);var n=[];function r(e){n[e]=null}return Number.isInteger(t.mtime)||(t.mtime=++g),t.classHierarchy=["vtkObject"],e.isDeleted=function(){return!!t.deleted},e.modified=function(r){t.deleted?T("instance deleted - cannot call any method"):r&&r0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1;return Object.keys(n).forEach(function(i){var s=a?null:e["set".concat(O(i))];s&&Array.isArray(n[i])&&s.length>1?o=s.apply(void 0,c(n[i]))||o:s?o=s(n[i])||o:(-1!==["mtime"].indexOf(i)||r||C("Warning: Set value to model directly ".concat(i,", ").concat(n[i])),t[i]=n[i],o=!0)}),o},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error("Cannot ShallowCopy ".concat(n.getClassName()," into ").concat(e.getClassName()));var a=n.get(),o=Object.keys(t).sort();Object.keys(a).sort().forEach(function(e){var n=o.indexOf(e);-1===n?r&&b("add ".concat(e," in shallowCopy")):o.splice(n,1),t[e]=a[e]}),o.length&&r&&b("Untouched keys: ".concat(o.join(", "))),e.modified()},e}function E(e,t,n){n.forEach(function(n){"object"===o(n)?e["get".concat(O(n.name))]=function(){return t[n.name]}:e["get".concat(O(n))]=function(){return t[n]}})}P.Float32Array=Float32Array,P.Float64Array=Float64Array,P.Uint8Array=Uint8Array,P.Int8Array=Int8Array,P.Uint16Array=Uint16Array,P.Int16Array=Int16Array,P.Uint32Array=Uint32Array,P.Int32Array=Int32Array,P.Uint8ClampedArray=Uint8ClampedArray;var D={enum:function(e,t,n){return function(r){if("string"==typeof r){if(void 0!==n.enum[r])return t[n.name]!==n.enum[r]&&(t[n.name]=n.enum[r],e.modified(),!0);throw T("Set Enum with invalid argument ".concat(n,", ").concat(r)),new RangeError("Set Enum with invalid string argument")}if("number"==typeof r){if(t[n.name]!==r){if(-1!==Object.keys(n.enum).map(function(e){return n.enum[e]}).indexOf(r))return t[n.name]=r,e.modified(),!0;throw T("Set Enum outside numeric range ".concat(n,", ").concat(r)),new RangeError("Set Enum outside numeric range")}return!1}throw T("Set Enum with invalid argument (String/Number) ".concat(n,", ").concat(r)),new TypeError("Set Enum with invalid argument (String/Number)")}}};function V(e){if("object"===o(e)){var t=D[e.type];if(t)return function(n,r){return t(n,r,e)};throw T("No setter for field ".concat(e)),new TypeError("No setter for field")}return function(t,n){return function(r){return n.deleted?(T("instance deleted - cannot call any method"),!1):n[e]!==r&&(n[e]=r,t.modified(),!0)}}}function L(e,t,n){n.forEach(function(n){"object"===o(n)?e["set".concat(O(n.name))]=V(n)(e,t):e["set".concat(O(n))]=V(n)(e,t)})}function N(e,t,n){E(e,t,n),L(e,t,n)}function B(e,t,n){n.forEach(function(n){e["get".concat(O(n))]=function(){return[].concat(t[n])},e["get".concat(O(n),"ByReference")]=function(){return t[n]}})}function k(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach(function(n){e["set".concat(O(n))]=function(){if(t.deleted)return T("instance deleted - cannot call any method"),!1;for(var o=arguments.length,i=new Array(o),s=0;s4&&void 0!==arguments[4]?arguments[4]:void 0;B(e,t,n),k(e,t,n,r,a)}var G=Symbol("Event abort");function _(e,t){var n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={};return e(n,{},t),Object.freeze(n)};return t&&r.a.register(t,n),n}function U(e){return e&&e.isA&&e.isA("vtkObject")}function j(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=function(e,n){t.keystore[e]=n},e.getKey=function(e){return t.keystore[e]},e.getAllKeys=function(){return Object.keys(t.keystore)},e.deleteKey=function(e){return delete t.keystore[e]},e.clearKeystore=function(){return e.getAllKeys().forEach(function(e){return delete t.keystore[e]})}}var W=1,z="__root__";var H=10,K=40,X=800;t.a={algo:function(e,t,n,a){function o(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?T("instance deleted - cannot call any method"):r>=t.numberOfInputs?T("algorithm ".concat(e.getClassName()," only has ").concat(t.numberOfInputs," input ports. To add more input ports, use addInputData()")):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function i(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)T("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){var a="algorithm ".concat(e.getClassName()," only has ");return a+="".concat(t.numberOfInputs),void T(a+=" input ports. To add more input ports, use addInputConnection()")}t.inputData[r]=null,t.inputConnection[r]=n}}function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(T("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(r.a):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(r.a):t.inputConnection=[],t.output?t.output=t.output.map(r.a):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(r.a):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=function(){for(var n=e.getMTime(),r=a,o=1/0;r--;){if(!t.output[r])return!0;var i=t.output[r].getMTime();if(io)return!0;return!1},t.numberOfInputs){for(var l=t.numberOfInputs;l--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=i,e.addInputData=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,o(e,t.numberOfInputs-1))},e.addInputConnection=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,i(e,t.numberOfInputs-1))},e.getInputData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}a&&(e.getOutputData=s,e.getOutputPort=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function(){return s(t)};return n.filter=e,n}),e.update=function(){var n=[];if(t.numberOfInputs)for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:"Scalars";t.inputArrayToProcess.length1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error("Invalid callback for event ".concat(n)),null;if(t.deleted)return T("instance deleted - cannot call any method"),null;var o=i++;return r.push([o,e,a]),r.sort(function(e,t){return t[2]-e[2]}),function(e){return Object.freeze({unsubscribe:function(){s(e)}})}(o)},e.delete=function(){o(),r.forEach(function(e){return s(a(e,1)[0])})}},EVENT_ABORT:G,formatBytesToProperUnit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,r=["TB","GB","MB","KB"],a=Number(e),o="B";a>n;)a/=n,o=r.pop();return"".concat(a.toFixed(t)," ").concat(o)},formatNumbersWithThousandSeparator:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[],r=e;r>1e3;)n.push("000".concat(r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)},get:E,getArray:B,getCurrentGlobalMTime:function(){return g},getStateArrayMapFunc:A,isVtkObject:U,keystore:j,newInstance:_,newTypedArray:w,newTypedArrayFrom:x,normalizeWheel:function(e){var t=0,n=0,r=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*H,a=n*H,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(1===e.deltaMode?(r*=K,a*=K):(r*=X,a*=X)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:a}},obj:R,proxy:function(e,t){j(e,t);var n=e.delete;t.proxyId="".concat(W++),t.ui=JSON.parse(JSON.stringify(t.ui||[])),E(e,t,["proxyId","proxyGroup","proxyName"]),N(e,t,["proxyManager"]);var r={},a={};function o(e,t){a[t]||(a[t]=[]);for(var n=a[t],i=0;i0&&void 0!==arguments[0]?arguments[0]:z,r=[],o=t.proxyId,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:z;return a[e]}(n)||[],l=0;l1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];var r=null,a=[],o=0,i=!1;function s(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;var c=[],u=null;for(o=a.length;o--;){var d=a[o];d.instance===n?u=d:c.push(d)}if(!u)return null;var f=u.instance["get".concat(O(u.propertyName))]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=n.onModified(s),u=a[0];return a.push({instance:n,propertyName:r,subscription:i}),o&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set(l({},r,t.propertyLinkMap[e].value)):u&&s(u.instance,!0)),{unsubscribe:function(){return c(n,r)}}},unbind:c,unsubscribe:function(){for(;a.length;)a.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=u,u},e.listPropertyNames=function(){return i().map(function(e){return e.name})},e.getPropertyByName=function(e){return i().find(function(t){return t.name===e})},e.getPropertyDomainByName=function(e){return(r[e]||{}).domain},e.getProxySection=function(){return{id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}},e.delete=function(){for(var r=Object.keys(t.propertyLinkMap),a=r.length;a--;)t.propertyLinkMap[r[a]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},I(function(){if(t.links)for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.this=e;for(var a=Object.keys(r),o=a.length,i=function(){var i=a[o];t[i]=r[i];var s=n[i];e["set".concat(O(i))]=function(n){n!==t[i]&&(t[i]=n,function(e){for(var n=Object.keys(e),r=n.length;r--;){var a=n[r];t[a].set(e[a])}}(s[n]),e.modified())}};o--;)i();a.length&&E(e,t,a)},safeArrays:M,set:L,setArray:k,setGet:N,setGetArray:F,setImmediate:I,setLoggerFunction:function(e,t){y[e]&&(y[e]=t||h)},throttle:function(e,t){var n=!1,r=null;function a(){n=!1,null!==r&&(o.apply(void 0,c(r)),r=null)}function o(){for(var o=arguments.length,i=new Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(U(t)){if(a.indexOf(t)>=0)return r;a.push(t);var o=n(t);void 0!==o&&r.push(o);var i=t.get();Object.keys(i).forEach(function(t){var o=i[t];Array.isArray(o)?o.forEach(function(t){e(t,n,r,a)}):e(o,n,r,a)})}return r},TYPED_ARRAYS:P,uncapitalize:function(e){return e.charAt(0).toLowerCase()+e.slice(1)},VOID:m,vtkDebugMacro:b,vtkErrorMacro:T,vtkInfoMacro:function(){y.info.apply(y,arguments)},vtkLogMacro:function(){y.log.apply(y,arguments)},vtkOnceErrorMacro:function(e){S[e]||(y.error(e),S[e]=!0)},vtkWarningMacro:C}}).call(this,n(7))},function(e,t,n){"use strict";(function(e){function r(e){"@babel/helpers - typeof";return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return s});var i={vtkObject:function(){return null}};function s(t){if(null===t||void 0===t)return t;if(t.isA)return t;if(!t.vtkClass)return e.console&&e.console.error&&e.console.error("Invalid VTK object"),null;var n=i[t.vtkClass];if(!n)return e.console&&e.console.error&&e.console.error("No vtk class found for Object of type ".concat(t.vtkClass)),null;var l=function(e){for(var t=1;t 0\nuniform float vSpecularPower;\nuniform float vAmbient;\nuniform float vDiffuse;\nuniform float vSpecular;\n//VTK::Light::Dec\n#endif\n\n// possibly define vtkGradientOpacityOn\n//VTK::GradientOpacityOn\n#ifdef vtkGradientOpacityOn\nuniform float goscale0;\nuniform float goshift0;\nuniform float gomin0;\nuniform float gomax0;\n#if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\nuniform float goscale1;\nuniform float goshift1;\nuniform float gomin1;\nuniform float gomax1;\n#if vtkNumComponents >= 3\nuniform float goscale2;\nuniform float goshift2;\nuniform float gomin2;\nuniform float gomax2;\n#endif\n#if vtkNumComponents >= 4\nuniform float goscale3;\nuniform float goshift3;\nuniform float gomin3;\nuniform float gomax3;\n#endif\n#endif\n#endif\n\n// if you want to see the raw tiled\n// data in webgl1 uncomment the following line\n// #define debugtile\n\n// camera values\nuniform float camThick;\nuniform float camNear;\nuniform float camFar;\nuniform int cameraParallel;\n\n// values describing the volume geometry\nuniform vec3 vOriginVC;\nuniform vec3 vSpacing;\nuniform ivec3 volumeDimensions; // 3d texture dimensions\nuniform vec3 vPlaneNormal0;\nuniform float vPlaneDistance0;\nuniform vec3 vPlaneNormal1;\nuniform float vPlaneDistance1;\nuniform vec3 vPlaneNormal2;\nuniform float vPlaneDistance2;\nuniform vec3 vPlaneNormal3;\nuniform float vPlaneDistance3;\nuniform vec3 vPlaneNormal4;\nuniform float vPlaneDistance4;\nuniform vec3 vPlaneNormal5;\nuniform float vPlaneDistance5;\n\n//VTK::ClipPlane::Dec\n\n// opacity and color textures\nuniform sampler2D otexture;\nuniform float oshift0;\nuniform float oscale0;\nuniform sampler2D ctexture;\nuniform float cshift0;\nuniform float cscale0;\n\n// jitter texture\nuniform sampler2D jtexture;\n\n// some 3D texture values\nuniform float sampleDistance;\nuniform vec3 vVCToIJK;\n\n// the heights defined below are the locations\n// for the up to four components of the tfuns\n// the tfuns have a height of 2XnumComps pixels so the\n// values are computed to hit the middle of the two rows\n// for that component\n#ifdef vtkIndependentComponentsOn\n#if vtkNumComponents == 2\nuniform float mix0;\nuniform float mix1;\n#define height0 0.25\n#define height1 0.75\n#endif\n#if vtkNumComponents == 3\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\n#define height0 0.17\n#define height1 0.5\n#define height2 0.83\n#endif\n#if vtkNumComponents == 4\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\nuniform float mix3;\n#define height0 0.125\n#define height1 0.375\n#define height2 0.625\n#define height3 0.875\n#endif\n#endif\n\n#if vtkNumComponents >= 2\nuniform float oshift1;\nuniform float oscale1;\nuniform float cshift1;\nuniform float cscale1;\n#endif\n#if vtkNumComponents >= 3\nuniform float oshift2;\nuniform float oscale2;\nuniform float cshift2;\nuniform float cscale2;\n#endif\n#if vtkNumComponents >= 4\nuniform float oshift3;\nuniform float oscale3;\nuniform float cshift3;\nuniform float cscale3;\n#endif\n\n// declaration for intermixed geometry\n//VTK::ZBuffer::Dec\n\n// Lighting values\n//VTK::Light::Dec\n\n//=======================================================================\n// Webgl2 specific version of functions\n#if __VERSION__ == 300\n\nuniform highp sampler3D texture1;\n\nvec4 getTextureValue(vec3 pos)\n{\n vec4 tmp = texture(texture1, pos);\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.a = tmp.g;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n return tmp;\n}\n\n//=======================================================================\n// WebGL1 specific version of functions\n#else\n\nuniform sampler2D texture1;\n\nuniform float texWidth;\nuniform float texHeight;\nuniform int xreps;\nuniform int xstride;\nuniform int ystride;\n\n// if computing triliear values from multiple z slices\n#ifdef vtkTriliearOn\nvec4 getTextureValue(vec3 ijk)\n{\n float zoff = 1.0/float(volumeDimensions.z);\n vec4 val1 = getOneTextureValue(ijk);\n vec4 val2 = getOneTextureValue(vec3(ijk.xy, ijk.z + zoff));\n\n float indexZ = float(volumeDimensions)*ijk.z;\n float zmix = indexZ - floor(indexZ);\n\n return mix(val1, val2, zmix);\n}\n\nvec4 getOneTextureValue(vec3 ijk)\n#else // nearest or fast linear\nvec4 getTextureValue(vec3 ijk)\n#endif\n{\n vec3 tdims = vec3(volumeDimensions);\n\n#ifdef debugtile\n vec2 tpos = vec2(ijk.x, ijk.y);\n vec4 tmp = texture2D(texture1, tpos);\n tmp.a = 1.0;\n\n#else\n int z = int(ijk.z * tdims.z);\n int yz = z / xreps;\n int xz = z - yz*xreps;\n\n int tileWidth = volumeDimensions.x/xstride;\n int tileHeight = volumeDimensions.y/ystride;\n\n xz *= tileWidth;\n yz *= tileHeight;\n\n float ni = float(xz) + (ijk.x*float(tileWidth));\n float nj = float(yz) + (ijk.y*float(tileHeight));\n\n vec2 tpos = vec2(ni/texWidth, nj/texHeight);\n\n vec4 tmp = texture2D(texture1, tpos);\n\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.g = tmp.a;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n#endif\n\n return tmp;\n}\n\n// End of Webgl1 specific code\n//=======================================================================\n#endif\n\n//=======================================================================\n// compute the normal and gradient magnitude for a position\nvec4 computeNormal(vec3 pos, float scalar, vec3 tstep)\n{\n vec4 result;\n\n result.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a - scalar;\n result.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a - scalar;\n result.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a - scalar;\n\n // divide by spacing\n result.xyz /= vSpacing;\n\n result.w = length(result.xyz);\n\n // rotate to View Coords\n result.xyz =\n result.x * vPlaneNormal0 +\n result.y * vPlaneNormal2 +\n result.z * vPlaneNormal4;\n\n if (result.w > 0.0)\n {\n result.xyz /= result.w;\n }\n return result;\n}\n\n#ifdef vtkImageLabelOutlineOn\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\n vec4 pcPos = vec4(\n (fragCoord.x / vpWidth - 0.5) * 2.0,\n (fragCoord.y / vpHeight - 0.5) * 2.0,\n (fragCoord.z - 0.5) * 2.0,\n 1.0);\n\n vec4 worldCoord = PCWCMatrix * pcPos;\n vec4 vertex = (worldCoord/worldCoord.w);\n\n return (vWCtoIDX * vertex).xyz / vec3(volumeDimensions);\n}\n#endif\n\n//=======================================================================\n// compute the normals and gradient magnitudes for a position\n// for independent components\nmat4 computeMat4Normal(vec3 pos, vec4 tValue, vec3 tstep)\n{\n mat4 result;\n vec4 distX = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)) - tValue;\n vec4 distY = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)) - tValue;\n vec4 distZ = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)) - tValue;\n\n // divide by spacing\n distX /= vSpacing.x;\n distY /= vSpacing.y;\n distZ /= vSpacing.z;\n\n mat3 rot;\n rot[0] = vPlaneNormal0;\n rot[1] = vPlaneNormal2;\n rot[2] = vPlaneNormal4;\n\n#if !defined(vtkComponent0Proportional)\n result[0].xyz = vec3(distX.r, distY.r, distZ.r);\n result[0].a = length(result[0].xyz);\n result[0].xyz *= rot;\n if (result[0].w > 0.0)\n {\n result[0].xyz /= result[0].w;\n }\n#endif\n\n// optionally compute the 2nd component\n#if vtkNumComponents >= 2 && !defined(vtkComponent1Proportional)\n result[1].xyz = vec3(distX.g, distY.g, distZ.g);\n result[1].a = length(result[1].xyz);\n result[1].xyz *= rot;\n if (result[1].w > 0.0)\n {\n result[1].xyz /= result[1].w;\n }\n#endif\n\n// optionally compute the 3rd component\n#if vtkNumComponents >= 3 && !defined(vtkComponent2Proportional)\n result[2].xyz = vec3(distX.b, distY.b, distZ.b);\n result[2].a = length(result[2].xyz);\n result[2].xyz *= rot;\n if (result[2].w > 0.0)\n {\n result[2].xyz /= result[2].w;\n }\n#endif\n\n// optionally compute the 4th component\n#if vtkNumComponents >= 4 && !defined(vtkComponent3Proportional)\n result[3].xyz = vec3(distX.a, distY.a, distZ.a);\n result[3].a = length(result[3].xyz);\n result[3].xyz *= rot;\n if (result[3].w > 0.0)\n {\n result[3].xyz /= result[3].w;\n }\n#endif\n\n return result;\n}\n\n//=======================================================================\n// Given a normal compute the gradient opacity factors\n//\nfloat computeGradientOpacityFactor(\n vec4 normal, float goscale, float goshift, float gomin, float gomax)\n{\n#if defined(vtkGradientOpacityOn)\n return clamp(normal.a*goscale + goshift, gomin, gomax);\n#else\n return 1.0;\n#endif\n}\n\n#if vtkLightComplexity > 0\nvoid applyLighting(inout vec3 tColor, vec4 normal)\n{\n vec3 diffuse = vec3(0.0, 0.0, 0.0);\n vec3 specular = vec3(0.0, 0.0, 0.0);\n //VTK::Light::Impl\n tColor.rgb = tColor.rgb*(diffuse*vDiffuse + vAmbient) + specular*vSpecular;\n}\n#endif\n\n//=======================================================================\n// Given a texture value compute the color and opacity\n//\nvec4 getColorForValue(vec4 tValue, vec3 posIS, vec3 tstep)\n{\n#ifdef vtkImageLabelOutlineOn\n vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\n vec4 centerValue = getTextureValue(centerPosIS);\n bool pixelOnBorder = false;\n vec4 tColor = texture2D(ctexture, vec2(centerValue.r * cscale0 + cshift0, 0.5));\n\n // Get alpha of segment from opacity function.\n tColor.a = texture2D(otexture, vec2(centerValue.r * oscale0 + oshift0, 0.5)).r;\n\n // Only perform outline check on fragments rendering voxels that aren't invisible.\n // Saves a bunch of needless checks on the background.\n // TODO define epsilon when building shader?\n if (float(tColor.a) > 0.01) {\n for (int i = -outlineThickness; i <= outlineThickness; i++) {\n for (int j = -outlineThickness; j <= outlineThickness; j++) {\n if (i == 0 || j == 0) {\n continue;\n }\n\n vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\n gl_FragCoord.y + float(j),\n gl_FragCoord.z, gl_FragCoord.w);\n\n vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\n vec4 value = getTextureValue(neighborPosIS);\n\n // If any of my neighbours are not the same value as I\n // am, this means I am on the border of the segment.\n // We can break the loops\n if (any(notEqual(value, centerValue))) {\n pixelOnBorder = true;\n break;\n }\n }\n\n if (pixelOnBorder == true) {\n break;\n }\n }\n\n // If I am on the border, I am displayed at full opacity\n if (pixelOnBorder == true) {\n tColor.a = 1.0;\n }\n }\n\n#else\n // compute the normal and gradient magnitude if needed\n // We compute it as a vec4 if possible otherwise a mat4\n //\n vec4 goFactor = vec4(1.0,1.0,1.0,1.0);\n\n // compute the normal vectors as needed\n #if (vtkLightComplexity > 0) || defined(vtkGradientOpacityOn)\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n mat4 normalMat = computeMat4Normal(posIS, tValue, tstep);\n #if !defined(vtkComponent0Proportional)\n vec4 normal0 = normalMat[0];\n #endif\n #if !defined(vtkComponent1Proportional)\n vec4 normal1 = normalMat[1];\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n vec4 normal2 = normalMat[2];\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n vec4 normal3 = normalMat[3];\n #endif\n #endif\n #endif\n #else\n vec4 normal0 = computeNormal(posIS, tValue.a, tstep);\n #endif\n #endif\n\n // compute gradient opacity factors as needed\n #if defined(vtkGradientOpacityOn)\n #if !defined(vtkComponent0Proportional)\n goFactor.x =\n computeGradientOpacityFactor(normal0, goscale0, goshift0, gomin0, gomax0);\n #endif\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n #if !defined(vtkComponent1Proportional)\n goFactor.y =\n computeGradientOpacityFactor(normal1, goscale1, goshift1, gomin1, gomax1);\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n goFactor.z =\n computeGradientOpacityFactor(normal2, goscale2, goshift2, gomin2, gomax2);\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n goFactor.w =\n computeGradientOpacityFactor(normal3, goscale3, goshift3, gomin3, gomax3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n // single component is always independent\n #if vtkNumComponents == 1\n vec4 tColor = texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, 0.5));\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n vec4 tColor = mix0*texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, height0));\n #if !defined(vtkComponent0Proportional)\n tColor.a = goFactor.x*mix0*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n tColor *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix0));\n #endif\n\n vec3 tColor1 = mix1*texture2D(ctexture, vec2(tValue.g * cscale1 + cshift1, height1)).rgb;\n #if !defined(vtkComponent1Proportional)\n tColor.a += goFactor.y*mix1*texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n tColor1 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix1));\n #endif\n\n #if vtkNumComponents >= 3\n vec3 tColor2 = mix2*texture2D(ctexture, vec2(tValue.b * cscale2 + cshift2, height2)).rgb;\n #if !defined(vtkComponent2Proportional)\n tColor.a += goFactor.z*mix2*texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n tColor2 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix2));\n #endif\n\n #if vtkNumComponents >= 4\n vec3 tColor3 = mix3*texture2D(ctexture, vec2(tValue.a * cscale3 + cshift3, height3)).rgb;\n #if !defined(vtkComponent3Proportional)\n tColor.a += goFactor.w*mix3*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n tColor3 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix3));\n #endif\n #endif\n #endif\n #else // then not independent\n\n #if vtkNumComponents == 2\n float lum = tValue.r * cscale0 + cshift0;\n float alpha = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale1 + oshift1, 0.5)).r;\n vec4 tColor = vec4(lum, lum, lum, alpha);\n #endif\n #if vtkNumComponents == 3\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale0 + oshift0, 0.5)).r;\n #endif\n #if vtkNumComponents == 4\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, 0.5)).r;\n #endif\n #endif // dependent\n\n // apply lighting if requested as appropriate\n #if vtkLightComplexity > 0\n #if !defined(vtkComponent0Proportional)\n applyLighting(tColor.rgb, normal0);\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n #if !defined(vtkComponent1Proportional)\n applyLighting(tColor1, normal1);\n #endif\n #if vtkNumComponents >= 3\n #if !defined(vtkComponent2Proportional)\n applyLighting(tColor2, normal2);\n #endif\n #if vtkNumComponents >= 4\n #if !defined(vtkComponent3Proportional)\n applyLighting(tColor3, normal3);\n #endif\n #endif\n #endif\n #endif\n#endif\n\n// perform final independent blend as needed\n#if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n tColor.rgb += tColor1;\n#if vtkNumComponents >= 3\n tColor.rgb += tColor2;\n#if vtkNumComponents >= 4\n tColor.rgb += tColor3;\n#endif\n#endif\n#endif\n\n#endif\n\n\n\n\n\n\n\nreturn tColor;\n}\n\n\n\n//=======================================================================\n// Apply the specified blend mode operation along the ray's path.\n//\nvoid applyBlend(vec3 posIS, vec3 endIS, float sampleDistanceIS, vec3 tdims)\n{\n vec3 tstep = 1.0/tdims;\n\n // start slightly inside and apply some jitter\n vec3 delta = endIS - posIS;\n vec3 stepIS = normalize(delta)*sampleDistanceIS;\n float raySteps = length(delta)/sampleDistanceIS;\n\n // avoid 0.0 jitter\n float jitter = 0.01 + 0.99*texture2D(jtexture, gl_FragCoord.xy/32.0).r;\n float stepsTraveled = jitter;\n\n // local vars for the loop\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n vec4 tValue;\n vec4 tColor;\n\n // if we have less than one step then pick the middle point\n // as our value\n // if (raySteps <= 1.0)\n // {\n // posIS = (posIS + endIS)*0.5;\n // }\n\n // Perform initial step at the volume boundary\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n #if vtkBlendMode == 0 // COMPOSITE_BLEND\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps);\n gl_FragData[0] = tColor;\n return;\n }\n\n tColor.a = 1.0 - pow(1.0 - tColor.a, jitter);\n color = vec4(tColor.rgb*tColor.a, tColor.a);\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n float mix = (1.0 - color.a);\n\n // this line should not be needed but nvidia seems to not handle\n // the break correctly on windows/chrome 58 angle\n //mix = mix * sign(max(raySteps - stepsTraveled - 1.0, 0.0));\n\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n stepsTraveled++;\n posIS += stepIS;\n if (color.a > 0.99) { color.a = 1.0; break; }\n }\n\n if (color.a < 0.99 && (raySteps - stepsTraveled) > 0.0)\n {\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\n\n float mix = (1.0 - color.a);\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n }\n\n gl_FragData[0] = vec4(color.rgb/color.a, color.a);\n #endif\n #if vtkBlendMode == 1 || vtkBlendMode == 2\n // MAXIMUM_INTENSITY_BLEND || MINIMUM_INTENSITY_BLEND\n // Find maximum/minimum intensity along the ray.\n\n // Define the operation we will use (min or max)\n #if vtkBlendMode == 1\n #define OP max\n #else\n #define OP min\n #endif\n\n // If the clipping range is shorter than the sample distance\n // we can skip the sampling loop along the ray.\n if (raySteps <= 1.0)\n {\n gl_FragData[0] = getColorForValue(tValue, posIS, tstep);\n return;\n }\n\n vec4 value = tValue;\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // Update the maximum value if necessary\n value = OP(tValue, value);\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n tValue = getTextureValue(posIS);\n value = OP(tValue, value);\n\n // Now map through opacity and color\n gl_FragData[0] = getColorForValue(value, posIS, tstep);\n #endif\n #if vtkBlendMode == 3 //AVERAGE_INTENSITY_BLEND\n vec4 averageIPScalarRangeMin = vec4 (\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n 1.0);\n vec4 averageIPScalarRangeMax = vec4(\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n 1.0);\n\n vec4 sum = vec4(0.);\n\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n }\n\n if (raySteps <= 1.0) {\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n return;\n }\n\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation.\n // Notes:\n // - We are comparing all values in the texture to see if any of them\n // are outside of the scalar range. In the future we might want to allow\n // scalar ranges for each component.\n // - We are setting the alpha channel for averageIPScalarRangeMin and\n // averageIPScalarRangeMax so that we do not trigger this 'continue'\n // based on the alpha channel comparison.\n // - There might be a better way to do this. I'm not sure if there is an\n // equivalent of 'any' which only operates on RGB, though I suppose\n // we could write an 'anyRGB' function and see if that is faster.\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n if (any(lessThan(tValue, averageIPScalarRangeMin)) ||\n any(greaterThan(tValue, averageIPScalarRangeMax))) {\n continue;\n }\n\n // Sum the values across each step in the path\n sum += tValue;\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n\n stepsTraveled++;\n }\n\n sum /= vec4(stepsTraveled, stepsTraveled, stepsTraveled, 1.0);\n\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n #endif\n}\n\n//=======================================================================\n// Compute a new start and end point for a given ray based\n// on the provided bounded clipping plane (aka a rectangle)\nvoid getRayPointIntersectionBounds(\n vec3 rayPos, vec3 rayDir,\n vec3 planeDir, float planeDist,\n inout vec2 tbounds, vec3 vPlaneX, vec3 vPlaneY,\n float vSize1, float vSize2)\n{\n float result = dot(rayDir, planeDir);\n if (result == 0.0)\n {\n return;\n }\n result = -1.0 * (dot(rayPos, planeDir) + planeDist) / result;\n vec3 xposVC = rayPos + rayDir*result;\n vec3 vxpos = xposVC - vOriginVC;\n vec2 vpos = vec2(\n dot(vxpos, vPlaneX),\n dot(vxpos, vPlaneY));\n\n // on some apple nvidia systems this does not work\n // if (vpos.x < 0.0 || vpos.x > vSize1 ||\n // vpos.y < 0.0 || vpos.y > vSize2)\n // even just\n // if (vpos.x < 0.0 || vpos.y < 0.0)\n // fails\n // so instead we compute a value that represents in and out\n //and then compute the return using this value\n float xcheck = max(0.0, vpos.x * (vpos.x - vSize1)); // 0 means in bounds\n float check = sign(max(xcheck, vpos.y * (vpos.y - vSize2))); // 0 means in bounds, 1 = out\n\n tbounds = mix(\n vec2(min(tbounds.x, result), max(tbounds.y, result)), // in value\n tbounds, // out value\n check); // 0 in 1 out\n}\n\n//=======================================================================\n// given a\n// - ray direction (rayDir)\n// - starting point (vertexVCVSOutput)\n// - bounding planes of the volume\n// - optionally depth buffer values\n// - far clipping plane\n// compute the start/end distances of the ray we need to cast\nvec2 computeRayDistances(vec3 rayDir, vec3 tdims)\n{\n vec2 dists = vec2(100.0*camFar, -1.0);\n\n vec3 vSize = vSpacing*(tdims - 1.0);\n\n // all this is in View Coordinates\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal0, vPlaneDistance0, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal1, vPlaneDistance1, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal2, vPlaneDistance2, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal3, vPlaneDistance3, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal4, vPlaneDistance4, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal5, vPlaneDistance5, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n\n //VTK::ClipPlane::Impl\n\n // do not go behind front clipping plane\n dists.x = max(0.0,dists.x);\n\n // do not go PAST far clipping plane\n float farDist = -camThick/rayDir.z;\n dists.y = min(farDist,dists.y);\n\n // Do not go past the zbuffer value if set\n // This is used for intermixing opaque geometry\n //VTK::ZBuffer::Impl\n\n return dists;\n}\n\n//=======================================================================\n// Compute the index space starting position (pos) and end\n// position\n//\nvoid computeIndexSpaceValues(out vec3 pos, out vec3 endPos, out float sampleDistanceIS, vec3 rayDir, vec2 dists)\n{\n // compute starting and ending values in volume space\n pos = vertexVCVSOutput + dists.x*rayDir;\n pos = pos - vOriginVC;\n // convert to volume basis and origin\n pos = vec3(\n dot(pos, vPlaneNormal0),\n dot(pos, vPlaneNormal2),\n dot(pos, vPlaneNormal4));\n\n endPos = vertexVCVSOutput + dists.y*rayDir;\n endPos = endPos - vOriginVC;\n endPos = vec3(\n dot(endPos, vPlaneNormal0),\n dot(endPos, vPlaneNormal2),\n dot(endPos, vPlaneNormal4));\n\n float delta = length(endPos - pos);\n\n pos *= vVCToIJK;\n endPos *= vVCToIJK;\n\n float delta2 = length(endPos - pos);\n sampleDistanceIS = sampleDistance*delta2/delta;\n}\n\nvoid main()\n{\n\n vec3 rayDirVC;\n\n if (cameraParallel == 1)\n {\n // Camera is parallel, so the rayDir is just the direction of the camera.\n rayDirVC = vec3(0.0, 0.0, -1.0);\n } else {\n // camera is at 0,0,0 so rayDir for perspective is just the vc coord\n rayDirVC = normalize(vertexVCVSOutput);\n }\n\n vec3 tdims = vec3(volumeDimensions);\n\n // compute the start and end points for the ray\n vec2 rayStartEndDistancesVC = computeRayDistances(rayDirVC, tdims);\n\n // do we need to composite? aka does the ray have any length\n // If not, bail out early\n if (rayStartEndDistancesVC.y <= rayStartEndDistancesVC.x)\n {\n discard;\n }\n\n // IS = Index Space\n vec3 posIS;\n vec3 endIS;\n float sampleDistanceIS;\n computeIndexSpaceValues(posIS, endIS, sampleDistanceIS, rayDirVC, rayStartEndDistancesVC);\n\n // Perform the blending operation along the ray\n applyBlend(posIS, endIS, sampleDistanceIS, tdims);\n}\n"},function(e,t,n){var r;!function(a){"use strict";function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function i(e,t,n,r,a,i){return o(function(e,t){return e<>>32-t}(o(o(t,e),o(r,i)),a),n)}function s(e,t,n,r,a,o,s){return i(t&n|~t&r,e,t,a,o,s)}function l(e,t,n,r,a,o,s){return i(t&r|n&~r,e,t,a,o,s)}function c(e,t,n,r,a,o,s){return i(t^n^r,e,t,a,o,s)}function u(e,t,n,r,a,o,s){return i(n^(t|~r),e,t,a,o,s)}function d(e,t){var n,r,a,i,d;e[t>>5]|=128<>>9<<4)]=t;var f=1732584193,p=-271733879,g=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+"0123456789abcdef".charAt(15&t);return r}function m(e){return unescape(encodeURIComponent(e))}function v(e){return function(e){return f(d(p(e),8*e.length))}(m(e))}function h(e,t){return function(e,t){var n,r,a=p(e),o=[],i=[];for(o[15]=i[15]=void 0,a.length>16&&(a=d(a,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^a[n],i[n]=1549556828^a[n];return r=d(o.concat(p(t)),512+8*t.length),f(d(i.concat(r),640))}(m(e),m(t))}function y(e,t,n){return t?n?h(t,e):function(e,t){return g(h(e,t))}(t,e):n?v(e):function(e){return g(v(e))}(e)}void 0===(r=function(){return y}.call(t,n,t,e))||(e.exports=r)}()},function(e){e.exports=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,7.54296e-7,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,1.11641e-7,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,3.63578e-7,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,4.05298e-7,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4.264e-8,0,6.20844e-7,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,3.3216e-7,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,4.05432e-7,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,4.55569e-8]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,4.55569e-8,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}]},function(e,t,n){"use strict";var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments[3];return new Promise(function(o,i){var s=n._messageId++;n._messages.set(s,[o,i,a]),n._worker.postMessage([s,t,e],r||[])})}},{key:"postMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];return new Promise(function(a,o){var i=t._messageId++;t._messages.set(i,[a,o,r]),t._worker.postMessage([i,e],n||[])})}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)}}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&s(r,n),a.state=function(){return s(n,{})}),a}a&&a.exports?a.exports=l:n(2)&&n(4)?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new function(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor128=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorwow=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorshift7=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,o=t.i;return t.w=r=r+1640531527|0,n=a[o+34&127],e=a[o=o+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[o]=n^e,t.i=o,n+(r^r>>>16)|0},function(e,t){var n,r,a,o,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,o=-32;o>>15,r^=r<<4,r^=r>>>13,o>=0&&(i=i+1640531527|0,a=0==(n=s[127&o]^=r+i)?a+1:0);for(a>=128&&(s[127&(t&&t.length||0)]=-1),a=127,o=512;o>0;--o)r=s[a+34&127],n=s[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[a]=r^n;e.w=i,e.X=s,e.i=a}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor4096=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.tychei=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){var r;!function(a,o,i){var s,l=256,c=6,u="random",d=i.pow(l,c),f=i.pow(2,52),p=2*f,g=l-1;function m(e,t,n){var r=[],m=h(function e(t,n){var r,a=[],o=typeof t;if(n&&"object"==o)for(r in t)try{a.push(e(t[r],n-1))}catch(e){}return a.length?a:"string"==o?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,y(o)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(a.crypto||a.msCrypto).getRandomValues(e)),y(e)}catch(e){var t=a.navigator,n=t&&t.plugins;return[+new Date,a,n,a.screen,y(o)]}}():e,3),r),b=new function(e){var t,n=e.length,r=this,a=0,o=r.i=r.j=0,i=r.S=[];n||(e=[n++]);for(;a=p;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|b.g(4)},T.quick=function(){return b.g(4)/4294967296},T.double=T,h(y(b.S),o),(t.pass||n||function(e,t,n,r){return r&&(r.S&&v(r,b),e.state=function(){return v(b,{})}),n?(i[u]=e,t):e})(T,m,"global"in t?t.global:this==i,t.state)}function v(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function h(e,t){for(var n,r=e+"",a=0;a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;M(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:I(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:3,t=[];t.length1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=-1/0,o=t,i=e.length;o1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var n=0,r=0;r2&&void 0!==arguments[2]?arguments[2]:1e-6;if(e.length!==t.length)return!1;return e.every(function(e,r){return Math.abs(e-t[r])<=n})}var ae=re;function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!"".concat(e).includes("e"))return+"".concat(Math.round("".concat(e,"e+").concat(t)),"e-").concat(t);var n="".concat(e).split("e"),r="";return+n[1]+t>0&&(r="+"),+"".concat(Math.round("".concat(+n[0],"e").concat(r).concat(+n[1]+t)),"e-").concat(t)}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=oe(e[0],n),t[1]=oe(e[1],n),t[2]=oe(e[2],n),t}function se(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g,m,v,h,b,C,S=w(t),P=w(t),x=function(e,t,n,r,a){h=e[t][n],v=e[r][a],e[t][n]=h-m*(v+h*p),e[r][a]=v+m*(h-v*p)};for(l=0;l3&&Math.abs(n[l])+h===Math.abs(n[l])&&Math.abs(n[s])+h===Math.abs(n[s]))e[l][s]=0;else if(Math.abs(e[l][s])>u){for(v=n[s]-n[l],Math.abs(v)+h===Math.abs(v)?f=e[l][s]/v:(d=.5*v/e[l][s],f=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(f=-f)),b=1/Math.sqrt(1+f*f),p=(m=f*b)/(1+b),v=f*e[l][s],P[l]-=v,P[s]+=v,n[l]-=v,n[s]+=v,e[l][s]=0,o=0;o<=l-1;o++)x(e,o,l,o,s);for(o=l+1;o<=s-1;o++)x(e,l,o,o,s);for(o=s+1;o=T)return y("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=C&&(C=n[i=a]);if(i!==o)for(n[i]=n[o],n[o]=C,a=0;a>1)+(1&t);for(o=0;o=0&&c++;if(c(r=l>s?l:s)?c:r,a[i]=1,0!==r&&(a[i]/=r)}var u=Math.abs(t[0][0])*a[0],d=Math.abs(t[1][0])*a[1],f=Math.abs(t[2][0])*a[2];o[0]=0,d>=(r=u)&&(r=d,o[0]=1),f>=r&&(o[0]=2),0!==o[0]&&(P(t[o[0]],t[0]),a[o[0]]=a[0]);var p=Math.abs(t[1][1])*a[1],g=Math.abs(t[2][1])*a[2];o[1]=1,g>=(r=p)&&(o[1]=2,P(t[2],t[1])),o[2]=2;var m=0;if(te(t)<0){m=1;for(var v=0;v<3;v++)t[0][v]=-t[0][v],t[1][v]=-t[1][v],t[2][v]=-t[2][v]}var h=w(4);if(le(t,h),ne(h,t),m)for(var y=0;y<3;y++)t[0][y]=-t[0][y],t[1][y]=-t[1][y],t[2][y]=-t[2][y];1!==o[1]&&P(t[o[1]],t[1]),0!==o[0]&&P(t[o[0]],t[0])}function ue(e,t,n){var r,a,o,i,s,l,c=[w(3),w(3),w(3)],u=w(3),d=w(3);for(r=0;r<3;r++)c[r][0]=e[r][0],c[r][1]=e[r][1],c[r][2]=e[r][2],u[r]=c[r],d[r]=n[r];if(se(u,3,t,d),t[0]!==t[1]||t[0]!==t[2]){for(J(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[r][0]),i=0,a=1;a<3;a++)l<(s=Math.abs(n[r][a]))&&(l=s,i=a);return i!==r&&(s=t[i],t[i]=t[r],t[r]=s,P(n[r],n[i])),n[i][i]<0&&(n[i][0]=-n[i][0],n[i][1]=-n[i][1],n[i][2]=-n[i][2]),o=(i+2)%3,n[a=(i+1)%3][0]=0,n[a][1]=0,n[a][2]=0,n[a][a]=1,z(n[i],n[a],n[o]),K(n[o]),z(n[o],n[i],n[a]),void J(n,n)}for(l=Math.abs(n[0][0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[r][0]))&&(l=s,i=r);for(0!==i&&(s=t[i],t[i]=t[0],t[0]=s,P(n[i],n[0])),Math.abs(n[1][1])i&&(i=c);if(0===i)return y("Unable to factor linear system"),0;d[r]=1/i}for(a=0;a=i&&(i=l,u=r)}if(a!==u){for(o=0;o=0)for(o=i;o<=a-1;o++)l-=e[a][o]*n[o];else 0!==l&&(i=a);n[a]=l}for(a=r-1;a>=0;a--){for(l=n[a],o=a+1;o3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=r||w(n),i=a||w(n);if(0===de(e,o,n))return 0;for(var s=0;sl?l=i:il?l=s:s0?(l-c)/l:0)>0?(n=o===l?1/6*(i-s)/(l-c):i===l?1/3+1/6*(s-o)/(l-c):2/3+1/6*(o-i)/(l-c))<0&&(n+=1):n=0,t[0]=n,t[1]=r,t[2]=u}function he(e,t){var n,r,a,o=m(e,3),i=o[0],s=o[1],l=o[2];i>1/6&&i<=1/3?(r=1,n=(1/3-i)/(1/6),a=0):i>1/3&&i<=.5?(r=1,a=(i-1/3)/(1/6),n=0):i>.5&&i<=2/3?(a=1,r=(2/3-i)/(1/6),n=0):i>2/3&&i<=5/6?(a=1,n=(i-2/3)/(1/6),r=0):i>5/6&&i<=1?(n=1,a=(1-i)/(1/6),r=0):(n=1,r=i/(1/6),a=0),n=s*n+(1-s),r=s*r+(1-s),a=s*a+(1-s),n*=l,r*=l,a*=l,t[0]=n,t[1]=r,t[2]=a}function ye(e,t){var n=m(e,3),r=(n[0]+16)/116,a=n[1]/500+r,o=r-n[2]/200;r=Math.pow(r,3)>.008856?Math.pow(r,3):(r-16/116)/7.787,a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,o=Math.pow(o,3)>.008856?Math.pow(o,3):(o-16/116)/7.787;t[0]=.9505*a,t[1]=1*r,t[2]=1.089*o}function be(e,t){var n=m(e,3),r=n[0]/.9505,a=n[1]/1,o=n[2]/1.089;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,t[0]=116*a-16,t[1]=500*(r-a),t[2]=200*(a-o)}function Te(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2],i=3.2406*r+-1.5372*a+-.4986*o,s=-.9689*r+1.8758*a+.0415*o,l=.0557*r+-.204*a+1.057*o;i>.0031308?i=1.055*Math.pow(i,1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,l>.0031308?l=1.055*Math.pow(l,1/2.4)-.055:l*=12.92;var c=i;c1&&(i/=c,s/=c,l/=c),i<0&&(i=0),s<0&&(s=0),l<0&&(l=0),t[0]=i,t[1]=s,t[2]=l}function Ce(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2];r>.04045?r=Math.pow((r+.055)/1.055,2.4):r/=12.92,a>.04045?a=Math.pow((a+.055)/1.055,2.4):a/=12.92,o>.04045?o=Math.pow((o+.055)/1.055,2.4):o/=12.92,t[0]=.4124*r+.3576*a+.1805*o,t[1]=.2126*r+.7152*a+.0722*o,t[2]=.0193*r+.1192*a+.9505*o}function Se(e,t){var n=[0,0,0];Ce(e,n),be(n,t)}function Pe(e,t){var n=[0,0,0];ye(e,n),Te(n,t)}function we(e){e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1}function xe(e){return!(e[1]-e[0]<0)}function Oe(e,t,n){n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2])}function Me(e,t,n){return en?n:e}function Ae(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return r[0]=Me(e[0],t[0],n[0]),r[1]=Me(e[1],t[1],n[1]),r[2]=Me(e[2],t[2],n[2]),r}var Ie=S("GetScalarTypeFittingRange"),Re=S("GetAdjustedScalarRange");var Ee=function(e){return!Number.isFinite(e)},De=Number.isFinite,Ve=Number.isNaN,Le=Ve;function Ne(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Be(e){var t=Math.floor(255*e);return t>15?t.toString(16):"0".concat(t.toString(16))}function ke(e){return Math.round(255*e)}var Fe={Pi:function(){return Math.PI},radiansFromDegrees:x,degreesFromRadians:O,round:M,floor:A,ceil:I,ceilLog2:V,min:R,max:E,arrayMin:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=t,o=e.length;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0,a=t,o=e.length;a=0;--a)if(n[a]0&&void 0!==arguments[0]?arguments[0]:0;return e+((arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)-e)*Math.random()},gaussian:k,add:F,subtract:G,multiplyScalar:U,multiplyScalar2D:j,multiplyAccumulate:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r},multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:W,outer:function(e,t,n){for(var r=0;r<3;r++)for(var a=0;a<3;a++)n[r][a]=e[r]*t[a]},cross:z,norm:H,normalize:K,perpendiculars:function(e,t,n,r){var a,o,i,s=e[0]*e[0],l=e[1]*e[1],c=e[2]*e[2],u=Math.sqrt(s+l+c);s>l&&s>c?(a=0,o=1,i=2):l>c?(a=1,o=2,i=0):(a=2,o=0,i=1);var d=e[a]/u,f=e[o]/u,p=e[i]/u,g=Math.sqrt(d*d+p*p);if(0!==r){var m=Math.sin(r),v=Math.cos(r);t&&(t[a]=(p*v-d*f*m)/g,t[o]=m*g,t[i]=(-d*v-f*p*m)/g),n&&(n[a]=(-p*m-d*f*v)/g,n[o]=v*g,n[i]=(d*m-f*p*v)/g)}else t&&(t[a]=p/g,t[o]=0,t[i]=-d/g),n&&(n[a]=-d*f/g,n[o]=g,n[i]=-f*p/g)},projectVector:function(e,t,n){var r=W(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;for(var a=W(e,t)/r,o=0;o<3;o++)n[o]=t[o];return U(n,a),!0},projectVector2D:function(e,t,n){var r=X(t,t);if(0===r)return n[0]=0,n[1]=0,!1;for(var a=X(e,t)/r,o=0;o<2;o++)n[o]=t[o];return j(n,a),!0},distance2BetweenPoints:q,angleBetweenVectors:Y,gaussianAmplitude:function(e,t,n){var r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-Math.pow(r,2)/(2*t))},gaussianWeight:function(e,t,n){var r=Math.abs(e-n);return Math.exp(-Math.pow(r,2)/(2*t))},dot2D:X,outer2D:function(e,t,n){for(var r=0;r<2;r++)for(var a=0;a<2;a++)n[r][a]=e[r]*t[a]},norm2D:Z,normalize2D:function(e){var t=Z(e);return 0!==t&&(e[0]/=t,e[1]/=t),t},determinant2x2:Q,LUFactor3x3:function(e,t){for(var n,r,a,o=[0,0,0],i=0;i<3;i++)a=Math.abs(e[i][0]),(r=Math.abs(e[i][1]))>a&&(a=r),(r=Math.abs(e[i][2]))>a&&(a=r),o[i]=1/a;a=o[0]*Math.abs(e[0][0]),n=0,(r=o[1]*Math.abs(e[1][0]))>=a&&(a=r,n=1),(r=o[2]*Math.abs(e[2][0]))>=a&&(n=2),0!==n&&(P(e[n],e[0]),o[n]=o[0]),t[0]=n,e[1][0]/=e[0][0],e[2][0]/=e[0][0],e[1][1]-=e[1][0]*e[0][1],e[2][1]-=e[2][0]*e[0][1],a=o[1]*Math.abs(e[1][1]),n=1,(r=o[2]*Math.abs(e[2][1]))>=a&&(n=2,P(e[2],e[1]),o[2]=o[1]),t[1]=n,e[2][1]/=e[1][1],e[1][2]-=e[1][0]*e[0][2],e[2][2]-=e[2][0]*e[0][2]+e[2][1]*e[1][2],t[2]=2},LUSolve3x3:function(e,t,n){var r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[1][0]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[2][0]*n[0]-e[2][1]*n[1],n[2]/=e[2][2],n[1]=(n[1]-e[1][2]*n[2])/e[1][1],n[0]=(n[0]-e[0][1]*n[1]-e[0][2]*n[2])/e[0][0]},linearSolve3x3:function(e,t,n){var r=e[0][0],a=e[0][1],o=e[0][2],i=e[1][0],s=e[1][1],l=e[1][2],c=e[2][0],u=e[2][1],d=e[2][2],f=+Q(s,u,l,d),p=-Q(i,c,l,d),g=+Q(i,c,s,u),m=-Q(a,u,o,d),v=+Q(r,c,o,d),h=-Q(r,c,a,u),y=+Q(a,s,o,l),b=-Q(r,i,o,l),T=+Q(r,i,a,s),C=r*f+a*p+o*g,S=f*t[0]+m*t[1]+y*t[2],P=p*t[0]+v*t[1]+b*t[2],w=g*t[0]+h*t[1]+T*t[2];n[0]=S/C,n[1]=P/C,n[2]=w/C},multiply3x3_vect3:function(e,t,n){var r=e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],a=e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],o=e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2];n[0]=r,n[1]=a,n[2]=o},multiply3x3_mat3:$,multiplyMatrix:function(e,t,n,r,a,o,i){r!==a&&h("Number of columns of A must match number of rows of B.");for(var s=0;sE&&(r=Math.abs(e[a][o]));for(var i=0;i6&&void 0!==arguments[6])||arguments[6];if(eC&&(f=0,d[c]=0);if(f&&1===a)return y("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),me(e,t,n,o);if(f)g=1;else for(c=0;c1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:ve,hsv2rgb:he,lab2xyz:ye,xyz2lab:be,xyz2rgb:Te,rgb2xyz:Ce,rgb2lab:Se,lab2rgb:Pe,uninitializeBounds:we,areBoundsInitialized:xe,computeBoundsFromPoints:Oe,clampValue:Me,clampVector:Ae,clampAndNormalizeValue:function(e,t){var n=0;return t[0]!==t[1]&&(n=((n=et[1]?t[1]:e)-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Ie,getAdjustedScalarRange:Re,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(var n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(var r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(var r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){for(var a=w(3),o=w(3),i=w(3),s=w(3),l=w(3),c=w(3),u=0;u<3;++u)a[u]=e[u]-t[u],o[u]=t[u]-n[u],i[u]=n[u]-e[u],s[u]=-a[u],l[u]=-o[u],c[u]=-i[u];var d=H(s),f=H(l),p=H(i),g=w(3);z(a,o,g);for(var m=H(g),v=d*f*p/(2*m),h=2*m*m,y=f*f*W(a,c)/h,b=p*p*W(s,o)/h,T=d*d*W(i,l)/h,C=0;C<3;++C)r[C]=y*e[C]+b*t[C]+T*n[C];return v},inf:1/0,negInf:-1/0,isInf:Ee,isNan:Ve,isNaN:Ve,isFinite:De,createUninitializedBounds:Ne,getMajorAxisIndex:function(e){for(var t=-1,n=-1,r=0;rt&&(n=r,t=a)}return n},floatToHex2:Be,floatRGB2HexCode:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";return"".concat(t).concat(e.map(Be).join(""))},float2CssRGBA:function(e){return 3===e.length?"rgb(".concat(e.map(ke).join(", "),")"):"rgba(".concat(ke(e[0]||0),", ").concat(ke(e[1]||0),", ").concat(ke(e[2]||0),", ").concat(e[3]||0,")")}};function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _e(e){for(var t=1;ta&&(e=a),t1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=We(),a=e.length,o=0;if(t<0&&n>1){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=e||[];n.length<=t;)n.push(null);return n}function Ke(e){return Object.prototype.toString.call(e).slice(8,-1)}var Xe={computeRange:ze,createRangeHelper:We,getDataType:Ke,getMaxNorm:function(e){for(var t=e.getNumberOfComponents(),n=0,r=0;rn&&(n=a)}return n}};var qe={name:"",numberOfComponents:1,size:0,dataType:d.DefaultDataType,rangeTuple:[0,0]};function Ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,qe,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");t.values?Array.isArray(t.values)&&(t.values=f.f(t.dataType,t.values)):t.values=f.e(t.dataType,t.size),t.values&&(t.size=t.values.length,t.dataType=Ke(t.values)),f.g(e,t),f.h(e,t,["name","numberOfComponents"]),function(e,t){function n(){t.ranges=null,e.modified()}t.classHierarchy.push("vtkDataArray"),e.getElementComponentSize=function(){return t.values.BYTES_PER_ELEMENT},e.getComponent=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=function(e,r,a){a!==t.values[e*t.numberOfComponents+r]&&(t.values[e*t.numberOfComponents+r]=a,n())},e.getData=function(){return t.values},e.getRange=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=e<0?t.numberOfComponents:e,r=null;return t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents)),(r=t.ranges[n])?(t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple):(r=ze(t.values,e,t.numberOfComponents),t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple)},e.setRange=function(e,n){t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents));var r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=function(e,n){for(var r=e*t.numberOfComponents,a=0;a1&&void 0!==arguments[1]?arguments[1]:je,r=t.numberOfComponents||1;n.length!==r&&(n.length=r);var a=e*r;if(1===r)n[0]=t.values[a];else if(2===r)n[0]=t.values[a],n[1]=t.values[a+1];else if(3===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2];else if(4===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2],n[3]=t.values[a+3];else for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=function(){return t.numberOfComponents},e.getNumberOfValues=function(){return t.values.length},e.getNumberOfTuples=function(){return t.values.length/t.numberOfComponents},e.getDataType=function(){return t.dataType},e.newClone=function(){return Ze({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents})},e.getName=function(){return t.name||(e.modified(),t.name="vtkDataArray".concat(e.getMTime())),t.name},e.setData=function(e,r){t.values=e,t.size=e.length,t.dataType=Ke(e),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),n()},e.getState=function(){var n=_e(_e({},t),{},{vtkClass:e.getClassName()});n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(function(e){n[e]||delete n[e]});var r={};return Object.keys(n).sort().forEach(function(e){r[e]=n[e]}),r.mtime&&delete r.mtime,r}}(e,t)}var Ze=f.d(Ye,"vtkDataArray"),Qe=_e(_e({newInstance:Ze,extend:Ye},Xe),d);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var et=1e-6,tt="coincide",nt="disjoint";function rt(e,t,n){var r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function at(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a);r[0]=e[0]-o*n[0],r[1]=e[1]-o*n[1],r[2]=e[2]-o*n[2]}function ot(e,t,n){var r=W(e,t),a=W(t,t);return 0===a&&(a=1),n[0]=e[0]-r*t[0]/a,n[1]=e[1]-r*t[1]/a,n[2]=e[2]-r*t[2]/a,n}function it(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a),i=W(n,n);0!==i?(r[0]=e[0]-o*n[0]/i,r[1]=e[1]-o*n[1]/i,r[2]=e[2]-o*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function st(e,t,n,r){var a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],i=[];G(t,e,o),G(n,e,i);var s=W(r,i),l=W(r,o);return(l<0?-l:l)<=(s<0?-s*et:s*et)?a:(a.t=s/l,a.x[0]=e[0]+a.t*o[0],a.x[1]=e[1]+a.t*o[1],a.x[2]=e[2]+a.t*o[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1,a)}function lt(e,t,n,r){var a={intersection:!1,l0:[],l1:[],error:null},o=[];z(t,r,o);var i,s=o.map(function(e){return Math.abs(e)});if(s[0]+s[1]+s[2]s[1]&&s[0]>s[2]?"x":s[1]>s[2]?"y":"z";var c=[],u=-W(t,e),d=-W(r,n);switch(i){case"x":c[0]=0,c[1]=(d*t[2]-u*r[2])/o[0],c[2]=(u*r[1]-d*t[1])/o[0];break;case"y":c[0]=(u*r[2]-d*t[2])/o[1],c[1]=0,c[2]=(d*t[0]-u*r[0])/o[1];break;case"z":c[0]=(d*t[1]-u*r[1])/o[2],c[1]=(u*r[0]-d*t[0])/o[2],c[2]=0}return a.l0=c,F(c,o,a.l1),a.intersection=!0,a}var ct={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:rt,projectPoint:at,projectVector:ot,generalizedProjectPoint:it,intersectWithLine:st,intersectWithPlane:lt,DISJOINT:nt,COINCIDE:tt};var ut={normal:[0,0,1],origin:[0,0,0]};function dt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ut,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=function(e){return rt(e,t.origin,t.normal)},e.projectPoint=function(e,n){at(e,t.origin,t.normal,n)},e.projectVector=function(e,n){return ot(e,t.normal,n)},e.push=function(e){if(0!==e)for(var n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=function(e,n){it(e,t.origin,t.normal,n)},e.evaluateFunction=function(e,n,r){return Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2])},e.evaluateGradient=function(e){return[t.normal[0],t.normal[1],t.normal[2]]},e.intersectWithLine=function(e,n){return st(e,n,t.origin,t.normal)},e.intersectWithPlane=function(e,n){return lt(e,n,t.origin,t.normal)}}(e,t)}var ft=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n(arguments.length<=1?void 0:arguments[1])?r:arguments.length<=1?void 0:arguments[1],e[2]=a<(arguments.length<=2?void 0:arguments[2])?a:arguments.length<=2?void 0:arguments[2],e[3]=o>(arguments.length<=2?void 0:arguments[2])?o:arguments.length<=2?void 0:arguments[2],e[4]=i<(arguments.length<=3?void 0:arguments[3])?i:arguments.length<=3?void 0:arguments[3],e[5]=s>(arguments.length<=3?void 0:arguments[3])?s:arguments.length<=3?void 0:arguments[3]}function Ot(e,t,n,r,a,o,i){var s=ht(e,6),l=s[0],c=s[1],u=s[2],d=s[3],f=s[4],p=s[5];void 0===i?(e[0]=Math.min(t[0],l),e[1]=Math.max(t[1],c),e[2]=Math.min(t[2],u),e[3]=Math.max(t[3],d),e[4]=Math.min(t[4],f),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,l),e[1]=Math.max(n,c),e[2]=Math.min(r,u),e[3]=Math.max(a,d),e[4]=Math.min(o,f),e[5]=Math.max(i,p))}function Mt(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t,e[1]=t>i?t:i,e[2]=n,e[3]=n>l?n:l,e[4]=r,e[5]=r>u?r:u,o!==t||s!==n||c!==r}function At(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Et(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function Dt(e,t){return e[2*t+1]-e[2*t]}function Vt(e){return[Dt(e,0),Dt(e,1),Dt(e,2)]}function Lt(e){return e.slice(0,2)}function Nt(e){return e.slice(2,4)}function Bt(e){return e.slice(4,6)}function kt(e){var t=Vt(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function Ft(e){if(St(e)){var t=Vt(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function Gt(e){return[e[0],e[2],e[4]]}function _t(e){return[e[1],e[3],e[5]]}function Ut(e,t){return e<=0&&t>=0||e>=0&&t<=0}function jt(e,t){for(var n=0,r=0;r<2;r++)for(var a=2;a<4;a++)for(var o=4;o<6;o++)t[n]=[e[r],e[a],e[o]],n++}function Wt(e,t,n){t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5]}function zt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Et(e);return t[0]=e[1]-n[0],t[1]=e[3]-n[1],t[2]=e[5]-n[2],t}function Ht(e,t,n,r){for(var a=[].concat(Tt),o=e.getData(),i=0;ie[2*u+1]?(i[u]=0,c[u]=e[2*u+1],o=!1):i[u]=2;if(o)return r[0]=t[0],r[1]=t[1],r[2]=t[2],a[0]=0,1;for(var d=0;d<3;d++)2!==i[d]&&0!==n[d]?l[d]=(c[d]-t[d])/n[d]:l[d]=-1;for(var f=0;f<3;f++)l[s]1||l[s]<0)return 0;a[0]=l[s];for(var p=0;p<3;p++)if(s!==p){if(r[p]=t[p]+l[s]*n[p],r[p]e[2*p+1])return 0}else r[p]=c[p];return 1}function Xt(e,t,n){for(var r=[],a=0,o=1,i=1,s=4;s<=5;++s){r[2]=e[s];for(var l=2;l<=3;++l){r[1]=e[l];for(var c=0;c<=1;++c)if(r[0]=e[c],a=ft.evaluate(n,t,r),i&&(o=a>=0?1:-1,i=0),0===a||o>0&&a<0||o<0&&a>0)return 1}}return 0}function qt(e,t){if(!St(e)||!St(t))return!1;for(var n,r=[0,0,0,0,0,0],a=0;a<3;a++)if(n=!1,t[2*a]>=e[2*a]&&t[2*a]<=e[2*a+1]?(n=!0,r[2*a]=t[2*a]):e[2*a]>=t[2*a]&&e[2*a]<=t[2*a+1]&&(n=!0,r[2*a]=e[2*a]),t[2*a+1]>=e[2*a]&&t[2*a+1]<=e[2*a+1]?(n=!0,r[2*a+1]=t[2*a+1]):e[2*a+1]>=t[2*a]&&e[2*a+1]<=t[2*a+1]&&(n=!0,r[2*a+1]=e[2*a+1]),!n)return!1;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],!0}function Yt(e,t){if(!St(e)||!St(t))return!1;for(var n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Zt(e,t,n,r){return!(te[1])&&(!(ne[3])&&!(re[5]))}function Qt(e,t,n){for(var 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],o=0,i=0;i<2;i++)for(var s=2;s<4;s++)for(var l=4;l<6;l++){var c=[e[i],e[s],e[l]];a[o++]=ft.evaluate(n,t,c)}for(var u=2;u--&&!(Ut(a[r[u][0]],a[r[u][4]])&&Ut(a[r[u][1]],a[r[u][5]])&&Ut(a[r[u][2]],a[r[u][6]])&&Ut(a[r[u][3]],a[r[u][7]])););if(u<0)return!1;for(var d=Math.sign(n[u]),f=Math.abs((e[2*u+1]-e[2*u])*n[u]),p=d>0?1:0,g=0;g<4;g++)if(0!==f){var m=Math.abs(a[r[u][g]])/f;d>0&&mp&&(p=m)}var v=(1-p)*e[2*u]+p*e[2*u+1];return d>0?e[2*u]=v:e[2*u+1]=v,!0}var $t=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bounds=t,this.bounds||(this.bounds=new Float64Array(6),Pt(this.bounds,Tt))}return function(e,t,n){t&&mt(e.prototype,t),n&&mt(e,n)}(e,[{key:"getBounds",value:function(){return this.bounds}},{key:"equals",value:function(e){return Ct(this.bounds,e)}},{key:"isValid",value:function(){return St(this.bounds)}},{key:"setBounds",value:function(e){return Pt(this.bounds,e)}},{key:"reset",value:function(){return wt(this.bounds)}},{key:"addPoint",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tn,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkFieldData");var n=e.getState;t.arrays&&(t.arrays=t.arrays.map(function(e){return{data:Object(en.a)(e.data)}})),e.initialize=function(){e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=function(){t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=function(n){e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map(function(e){return e}),t.arrays=n.arrays().map(function(e){return{array:e}})},e.getNumberOfArrays=function(){return t.arrays.length},e.getNumberOfActiveArrays=function(){return t.arrays.length},e.addArray=function(e){return t.arrays=[].concat(t.arrays,{data:e}),t.arrays.length-1},e.removeAllArrays=function(){t.arrays=[]},e.removeArray=function(e){t.arrays=t.arrays.filter(function(t){return e!==t.data.getName()})},e.removeArrayByIndex=function(e){t.arrays=t.arrays.filter(function(t,n){return n!==e})},e.getArrays=function(){return t.arrays.map(function(e){return e.data})},e.getArray=function(t){return"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t)},e.getArrayByName=function(e){return t.arrays.reduce(function(t,n,r){return n.data.getName()===e?n.data:t},null)},e.getArrayWithIndex=function(e){return t.arrays.reduce(function(t,n,r){return n.data&&n.data.getName()===e?{array:n.data,index:r}:t},{array:null,index:-1})},e.getArrayByIndex=function(e){return e>=0&&e=0},e.getArrayName=function(e){var n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=function(){return t.copyFieldFlags},e.getFlag=function(e){return t.copyFieldFlags[e]},e.passData=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach(function(n){var o=e.getFlag(n.getName());if(!1!==o&&(!t.doCopyAllOff||!0===o)&&n){var i=e.getArrayByName(n.getName());if(i){if(n.getNumberOfComponents()===i.getNumberOfComponents())if(r>-1&&r-1?a:r;i.setTuple(s,n.getTuple(r))}else for(var l=0;ln.getNumberOfTuples())e.addArray(n);else{var c=n.getNumberOfComponents(),u=n.getNumberOfValues(),d=a>-1?a:r;ue?t.data.getMTime():e},t.mtime)},e.getNumberOfComponents=function(){return t.arrays.reduce(function(e,t){return e+t.data.getNumberOfComponents()},0)},e.getNumberOfTuples=function(){return t.arrays.length>0?t.arrays[0].getNumberOfTuples():0},e.getState=function(){var e=n();return e.arrays=t.arrays.map(function(e){return{data:e.data.getState()}}),e}}(e,t)}var rn={newInstance:f.a.newInstance(nn,"vtkFieldData"),extend:nn},an={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln=an.AttributeTypes,cn=an.AttributeCopyOperations,un=f.a.vtkWarningMacro;var dn={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function fn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dn,n),rn.extend(e,t,n),f.a.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),function(e,t){var n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){var t=n.find(function(t){return ln[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()});return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes"),e.checkNumberOfComponents=function(e){return!0},e.setAttribute=function(n,a){var o=r(a);if(n&&"PEDIGREEIDS"===o.toUpperCase()&&!n.isA("vtkDataArray"))return un("Cannot set attribute ".concat(o,". The attribute must be a vtkDataArray.")),-1;if(n&&!e.checkNumberOfComponents(n,o))return un("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1;var i=t["active".concat(o)];if(i>=0&&i=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),f.a.obj(e,t),f.a.setGet(e,t,yn),function(e,t){t.classHierarchy.push("vtkDataSet"),yn.forEach(function(e){t[e]?t[e]=Object(en.a)(t[e]):t[e]=pn.newInstance()});var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),yn.forEach(function(n){t[n]=pn.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})}}(e,t)}var Cn=function(e){for(var t=1;te[1]||e[2]>e[3]||e[4]>e[5]?On.EMPTY:3===t?On.XYZ_GRID:2===t?e[0]===e[1]?On.YZ_PLANE:e[2]===e[3]?On.XZ_PLANE:On.XY_PLANE:1===t?e[0]0?(n[0]=2*(s*i+u*r+l*o-c*a)/d,n[1]=2*(l*i+u*a+c*r-s*o)/d,n[2]=2*(c*i+u*o+s*a-l*r)/d):(n[0]=2*(s*i+u*r+l*o-c*a),n[1]=2*(l*i+u*a+c*r-s*o),n[2]=2*(c*i+u*o+s*a-l*r)),Br(e,t,n),e}function Fr(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Gr(e,t){var n=t[0],r=t[1],a=t[2],o=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,a),e[1]=Math.hypot(o,i,s),e[2]=Math.hypot(l,c,u),e}function _r(e,t){var n=new In(3);Gr(n,t);var r=1/n[0],a=1/n[1],o=1/n[2],i=t[0]*r,s=t[1]*a,l=t[2]*o,c=t[4]*r,u=t[5]*a,d=t[6]*o,f=t[8]*r,p=t[9]*a,g=t[10]*o,m=i+u+g,v=0;return m>0?(v=2*Math.sqrt(m+1),e[3]=.25*v,e[0]=(d-p)/v,e[1]=(f-l)/v,e[2]=(s-c)/v):i>u&&i>g?(v=2*Math.sqrt(1+i-u-g),e[3]=(d-p)/v,e[0]=.25*v,e[1]=(s+c)/v,e[2]=(f+l)/v):u>g?(v=2*Math.sqrt(1+u-i-g),e[3]=(f-l)/v,e[0]=(s+c)/v,e[1]=.25*v,e[2]=(d+p)/v):(v=2*Math.sqrt(1+g-i-u),e[3]=(s-c)/v,e[0]=(f+l)/v,e[1]=(d+p)/v,e[2]=.25*v),e}function Ur(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3],l=a+a,c=o+o,u=i+i,d=a*l,f=a*c,p=a*u,g=o*c,m=o*u,v=i*u,h=s*l,y=s*c,b=s*u,T=r[0],C=r[1],S=r[2];return e[0]=(1-(g+v))*T,e[1]=(f+b)*T,e[2]=(p-y)*T,e[3]=0,e[4]=(f-b)*C,e[5]=(1-(d+v))*C,e[6]=(m+h)*C,e[7]=0,e[8]=(p+y)*S,e[9]=(m-h)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function jr(e,t,n,r,a){var o=t[0],i=t[1],s=t[2],l=t[3],c=o+o,u=i+i,d=s+s,f=o*c,p=o*u,g=o*d,m=i*u,v=i*d,h=s*d,y=l*c,b=l*u,T=l*d,C=r[0],S=r[1],P=r[2],w=a[0],x=a[1],O=a[2],M=(1-(m+h))*C,A=(p+T)*C,I=(g-b)*C,R=(p-T)*S,E=(1-(f+h))*S,D=(v+y)*S,V=(g+b)*P,L=(v-y)*P,N=(1-(f+m))*P;return e[0]=M,e[1]=A,e[2]=I,e[3]=0,e[4]=R,e[5]=E,e[6]=D,e[7]=0,e[8]=V,e[9]=L,e[10]=N,e[11]=0,e[12]=n[0]+w-(M*w+R*x+V*O),e[13]=n[1]+x-(A*w+E*x+L*O),e[14]=n[2]+O-(I*w+D*x+N*O),e[15]=1,e}function Wr(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n+n,s=r+r,l=a+a,c=n*i,u=r*i,d=r*s,f=a*i,p=a*s,g=a*l,m=o*i,v=o*s,h=o*l;return e[0]=1-d-g,e[1]=u+h,e[2]=f-v,e[3]=0,e[4]=u-h,e[5]=1-c-g,e[6]=p+m,e[7]=0,e[8]=f+v,e[9]=p-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zr(e,t,n,r,a,o,i){var s=1/(n-t),l=1/(a-r),c=1/(o-i);return e[0]=2*o*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*o*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(a+r)*l,e[10]=(i+o)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*o*2*c,e[15]=0,e}function Hr(e,t,n,r,a){var o,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(o=1/(r-a),e[10]=(a+r)*o,e[14]=2*a*r*o):(e[10]=-1,e[14]=-2*r),e}function Kr(e,t,n,r){var a=Math.tan(t.upDegrees*Math.PI/180),o=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(a+o);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(a-o)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function Xr(e,t,n,r,a,o,i){var s=1/(t-n),l=1/(r-a),c=1/(o-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(a+r)*l,e[14]=(i+o)*c,e[15]=1,e}function qr(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g=t[0],m=t[1],v=t[2],h=r[0],y=r[1],b=r[2],T=n[0],C=n[1],S=n[2];return Math.abs(g-T)0&&(u*=p=1/Math.sqrt(p),d*=p,f*=p);var g=l*f-c*d,m=c*u-s*f,v=s*d-l*u;return(p=g*g+m*m+v*v)>0&&(g*=p=1/Math.sqrt(p),m*=p,v*=p),e[0]=g,e[1]=m,e[2]=v,e[3]=0,e[4]=d*v-f*m,e[5]=f*g-u*v,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=f,e[11]=0,e[12]=a,e[13]=o,e[14]=i,e[15]=1,e}function Zr(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Qr(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function $r(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Jr(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function ea(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function ta(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function na(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[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]}function ra(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=e[9],f=e[10],p=e[11],g=e[12],m=e[13],v=e[14],h=e[15],y=t[0],b=t[1],T=t[2],C=t[3],S=t[4],P=t[5],w=t[6],x=t[7],O=t[8],M=t[9],A=t[10],I=t[11],R=t[12],E=t[13],D=t[14],V=t[15];return Math.abs(n-y)<=An*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-b)<=An*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(a-T)<=An*Math.max(1,Math.abs(a),Math.abs(T))&&Math.abs(o-C)<=An*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(i-S)<=An*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-P)<=An*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(l-w)<=An*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(c-x)<=An*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(u-O)<=An*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-M)<=An*Math.max(1,Math.abs(d),Math.abs(M))&&Math.abs(f-A)<=An*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(p-I)<=An*Math.max(1,Math.abs(p),Math.abs(I))&&Math.abs(g-R)<=An*Math.max(1,Math.abs(g),Math.abs(R))&&Math.abs(m-E)<=An*Math.max(1,Math.abs(m),Math.abs(E))&&Math.abs(v-D)<=An*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(h-V)<=An*Math.max(1,Math.abs(h),Math.abs(V))}var aa=Pr,oa=Jr;function ia(){var e=new In(3);return In!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function sa(e){var t=new In(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function la(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function ca(e,t,n){var r=new In(3);return r[0]=e,r[1]=t,r[2]=n,r}function ua(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function da(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function fa(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function pa(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function ga(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function ma(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function va(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ha(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function ya(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function ba(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Ta(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function Ca(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Sa(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Pa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return Math.hypot(n,r,a)}function wa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return n*n+r*r+a*a}function xa(e){var t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function Oa(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ma(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Aa(e,t){var n=t[0],r=t[1],a=t[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function Ia(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ra(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2];return e[0]=a*l-o*s,e[1]=o*i-r*l,e[2]=r*s-a*i,e}function Ea(e,t,n,r){var a=t[0],o=t[1],i=t[2];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e}function Da(e,t,n,r,a,o){var i=o*o,s=i*(2*o-3)+1,l=i*(o-2)+o,c=i*(o-1),u=i*(3-2*o);return e[0]=t[0]*s+n[0]*l+r[0]*c+a[0]*u,e[1]=t[1]*s+n[1]*l+r[1]*c+a[1]*u,e[2]=t[2]*s+n[2]*l+r[2]*c+a[2]*u,e}function Va(e,t,n,r,a,o){var i=1-o,s=i*i,l=o*o,c=s*i,u=3*o*s,d=3*l*i,f=l*o;return e[0]=t[0]*c+n[0]*u+r[0]*d+a[0]*f,e[1]=t[1]*c+n[1]*u+r[1]*d+a[1]*f,e[2]=t[2]*c+n[2]*u+r[2]*d+a[2]*f,e}function La(e,t){t=t||1;var n=2*Rn()*Math.PI,r=2*Rn()-1,a=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(n)*a,e[1]=Math.sin(n)*a,e[2]=r*t,e}function Na(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,e[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,e[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,e}function Ba(e,t,n){var r=t[0],a=t[1],o=t[2];return e[0]=r*n[0]+a*n[3]+o*n[6],e[1]=r*n[1]+a*n[4]+o*n[7],e[2]=r*n[2]+a*n[5]+o*n[8],e}function ka(e,t,n){var r=n[0],a=n[1],o=n[2],i=n[3],s=t[0],l=t[1],c=t[2],u=a*c-o*l,d=o*s-r*c,f=r*l-a*s,p=a*f-o*d,g=o*u-r*f,m=r*d-a*u,v=2*i;return u*=v,d*=v,f*=v,p*=2,g*=2,m*=2,e[0]=s+u+p,e[1]=l+d+g,e[2]=c+f+m,e}function Fa(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0],o[1]=a[1]*Math.cos(r)-a[2]*Math.sin(r),o[2]=a[1]*Math.sin(r)+a[2]*Math.cos(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ga(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[2]*Math.sin(r)+a[0]*Math.cos(r),o[1]=a[1],o[2]=a[2]*Math.cos(r)-a[0]*Math.sin(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function _a(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0]*Math.cos(r)-a[1]*Math.sin(r),o[1]=a[0]*Math.sin(r)+a[1]*Math.cos(r),o[2]=a[2],e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ua(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2],l=Math.sqrt(n*n+r*r+a*a)*Math.sqrt(o*o+i*i+s*s),c=l&&Ia(e,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function ja(e){return e[0]=0,e[1]=0,e[2]=0,e}function Wa(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function za(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ha(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2];return Math.abs(n-o)<=An*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-i)<=An*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-s)<=An*Math.max(1,Math.abs(a),Math.abs(s))}var Ka=pa,Xa=ga,qa=ma,Ya=Pa,Za=wa,Qa=la,$a=xa,Ja=function(){var e=ia();return function(t,n,r,a,o,i){var s,l;for(n||(n=3),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;s0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=a*i,e[3]=o*i,e}function wo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function xo(e,t,n,r){var a=n[0]*r[1]-n[1]*r[0],o=n[0]*r[2]-n[2]*r[0],i=n[0]*r[3]-n[3]*r[0],s=n[1]*r[2]-n[2]*r[1],l=n[1]*r[3]-n[3]*r[1],c=n[2]*r[3]-n[3]*r[2],u=t[0],d=t[1],f=t[2],p=t[3];return e[0]=d*c-f*l+p*s,e[1]=-u*c+f*i-p*o,e[2]=u*l-d*i+p*a,e[3]=-u*s+d*o-f*a,e}function Oo(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e[3]=s+r*(n[3]-s),e}function Mo(e,t){var n,r,a,o,i,s;t=t||1;do{i=(n=2*Rn()-1)*n+(r=2*Rn()-1)*r}while(i>=1);do{s=(a=2*Rn()-1)*a+(o=2*Rn()-1)*o}while(s>=1);var l=Math.sqrt((1-i)/s);return e[0]=t*n,e[1]=t*r,e[2]=t*a*l,e[3]=t*o*l,e}function Ao(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3];return e[0]=n[0]*r+n[4]*a+n[8]*o+n[12]*i,e[1]=n[1]*r+n[5]*a+n[9]*o+n[13]*i,e[2]=n[2]*r+n[6]*a+n[10]*o+n[14]*i,e[3]=n[3]*r+n[7]*a+n[11]*o+n[15]*i,e}function Io(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2],c=n[3],u=c*r+s*o-l*a,d=c*a+l*r-i*o,f=c*o+i*a-s*r,p=-i*r-s*a-l*o;return e[0]=u*c+p*-i+d*-l-f*-s,e[1]=d*c+p*-s+f*-i-u*-l,e[2]=f*c+p*-l+u*-s-d*-i,e[3]=t[3],e}function Ro(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Eo(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Do(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Vo(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=t[0],s=t[1],l=t[2],c=t[3];return Math.abs(n-i)<=An*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=An*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-l)<=An*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(o-c)<=An*Math.max(1,Math.abs(o),Math.abs(c))}var Lo=io,No=so,Bo=lo,ko=ho,Fo=yo,Go=bo,_o=To,Uo=function(){var e=eo();return function(t,n,r,a,o,i){var s,l;for(n||(n=4),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;sAn?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Ko(e,t){var n=mi(e,t);return Math.acos(2*n*n-1)}function Xo(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+a*c-o*l,e[1]=a*u+i*l+o*s-r*c,e[2]=o*u+i*c+r*l-a*s,e[3]=i*u-r*s-a*l-o*c,e}function qo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+i*s,e[1]=a*l+o*s,e[2]=o*l-a*s,e[3]=i*l-r*s,e}function Yo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l-o*s,e[1]=a*l+i*s,e[2]=o*l+r*s,e[3]=i*l-a*s,e}function Zo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+a*s,e[1]=a*l-r*s,e[2]=o*l+i*s,e[3]=i*l-o*s,e}function Qo(e,t){var n=t[0],r=t[1],a=t[2];return e[0]=n,e[1]=r,e[2]=a,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-a*a)),e}function $o(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=Math.exp(o),l=i>0?s*Math.sin(i)/i:0;return e[0]=n*l,e[1]=r*l,e[2]=a*l,e[3]=s*Math.cos(i),e}function Jo(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=i>0?Math.atan2(i,o)/i:0;return e[0]=n*s,e[1]=r*s,e[2]=a*s,e[3]=.5*Math.log(n*n+r*r+a*a+o*o),e}function ei(e,t,n){return Jo(e,t),gi(e,e,n),$o(e,e),e}function ti(e,t,n,r){var a,o,i,s,l,c=t[0],u=t[1],d=t[2],f=t[3],p=n[0],g=n[1],m=n[2],v=n[3];return(o=c*p+u*g+d*m+f*v)<0&&(o=-o,p=-p,g=-g,m=-m,v=-v),1-o>An?(a=Math.acos(o),i=Math.sin(a),s=Math.sin((1-r)*a)/i,l=Math.sin(r*a)/i):(s=1-r,l=r),e[0]=s*c+l*p,e[1]=s*u+l*g,e[2]=s*d+l*m,e[3]=s*f+l*v,e}function ni(e){var t=Rn(),n=Rn(),r=Rn(),a=Math.sqrt(1-t),o=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*n),e[1]=a*Math.cos(2*Math.PI*n),e[2]=o*Math.sin(2*Math.PI*r),e[3]=o*Math.cos(2*Math.PI*r),e}function ri(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n*n+r*r+a*a+o*o,s=i?1/i:0;return e[0]=-n*s,e[1]=-r*s,e[2]=-a*s,e[3]=o*s,e}function ai(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function oi(e,t){var n,r=t[0]+t[4]+t[8];if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var o=(a+1)%3,i=(a+2)%3;n=Math.sqrt(t[3*a+a]-t[3*o+o]-t[3*i+i]+1),e[a]=.5*n,n=.5/n,e[3]=(t[3*o+i]-t[3*i+o])*n,e[o]=(t[3*o+a]+t[3*a+o])*n,e[i]=(t[3*i+a]+t[3*a+i])*n}return e}function ii(e,t,n,r){var a=.5*Math.PI/180;t*=a,n*=a,r*=a;var o=Math.sin(t),i=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(r),u=Math.cos(r);return e[0]=o*l*u-i*s*c,e[1]=i*s*u+o*l*c,e[2]=i*l*c-o*s*u,e[3]=i*l*u+o*s*c,e}function si(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var li=to,ci=no,ui=ro,di=ao,fi=oo,pi=Xo,gi=mo,mi=wo,vi=Oo,hi=bo,yi=hi,bi=To,Ti=bi,Ci=Po,Si=Do,Pi=Vo,wi=function(){var e=ia(),t=ca(1,0,0),n=ca(0,1,0);return function(r,a,o){var i=Ia(a,o);return i<-.999999?(Ra(e,t,a),Qa(e)<1e-6&&Ra(e,n,a),Aa(e,e),zo(r,e,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Ra(e,a,o),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+i,Ci(r,r))}}(),xi=function(){var e=jo(),t=jo();return function(n,r,a,o,i,s){return ti(e,r,i,s),ti(t,a,o,s),ti(n,e,t,2*s*(1-s)),n}}(),Oi=function(){var e=Nn();return function(t,n,r,a){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=a[0],e[4]=a[1],e[7]=a[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Ci(t,oi(t,e))}}();function Mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ai(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ai(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ri,n),Cn.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=a.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),f.a.get(e,t,["direction","indexToWorld","worldToIndex"]),f.a.setGetArray(e,t,["origin","spacing"],3),f.a.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&(n*=t[r]-1)}return n},e.getNumberOfPoints=function(){var t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=function(n){var r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return Ii("Requesting a point from an empty image."),null;var a=new Float64Array(3);switch(t.dataDescription){case Sn.EMPTY:return null;case Sn.SINGLE_POINT:break;case Sn.X_LINE:a[0]=n;break;case Sn.Y_LINE:a[1]=n;break;case Sn.Z_LINE:a[2]=n;break;case Sn.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Sn.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Sn.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Sn.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:Ii("Invalid dataDescription")}var o=[0,0,0];return e.indexToWorld(a,o),o},e.getBounds=function(){return e.extentToBounds(t.extent)},e.extentToBounds=function(t){var n=[t[0],t[2],t[4],t[1],t[2],t[4],t[0],t[3],t[4],t[1],t[3],t[4],t[0],t[2],t[5],t[1],t[2],t[5],t[0],t[3],t[5],t[1],t[3],t[5]],r=new Float64Array([n[0],n[1],n[2]]),a=new Float64Array(3);e.indexToWorld(r,a);for(var o=[a[0],a[0],a[1],a[1],a[2],a[2]],s=3;s<24;s+=3)i.set(r,n[s],n[s+1],n[s+2]),e.indexToWorld(r,a),a[0]o[1]&&(o[1]=a[0]),a[1]>o[3]&&(o[3]=a[1]),a[2]>o[5]&&(o[5]=a[2]);return o},e.computeTransforms=function(){o.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],o.scale(t.indexToWorld,t.indexToWorld,t.spacing),o.invert(t.worldToIndex,t.indexToWorld)},e.setDirection=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.indexToWorld),i.transformMat4(s,a,t.indexToWorld),Oe(o,s,n),n},e.worldToIndexBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.worldToIndex),i.transformMat4(s,a,t.worldToIndex),Oe(o,s,n),n},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=function(){for(var t=e.getBounds(),n=[],r=0;r<3;r++)n[r]=(t[2*r+1]+t[2*r])/2;return n},e.computeHistogram=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);var a=[0,0,0],o=[0,0,0];Jt.computeCornerPoints(r,a,o),ie(a,a),ie(o,o);var i=e.getDimensions();Ae(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a),Ae(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o);for(var s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData(),u=-1/0,d=1/0,f=0,p=0,g=0,m=a[2];m<=o[2];m++)for(var v=a[1];v<=o[1];v++)for(var h=a[0]+v*s+m*l,y=a[0];y<=o[0];y++){if(!n||n([y,v,m],r)){var b=c[h];b>u&&(u=b),b0?p/g:0,C=f-T*T;return{minimum:d,maximum:u,average:T,variance:C,sigma:Math.sqrt(C)}},e.computeIncrements=function(e){for(var t=[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=0;r<3;++r)t[r]=n,n*=e[2*r+1]-e[2*r]+1;return t},e.computeOffsetIndex=function(t){var n=Mi(t,3),r=n[0],a=n[1],o=n[2],i=e.getExtent(),s=e.getPointData().getScalars().getNumberOfComponents(),l=e.computeIncrements(i,s);return Math.floor((Math.round(r)-i[0])*l[0]+(Math.round(a)-i[2])*l[1]+(Math.round(o)-i[4])*l[2])},e.getOffsetIndexFromWorld=function(t){for(var n=e.getExtent(),r=e.worldToIndex(t),a=0;a<3;++a)if(r[a]n[2*a+1])return Ii("GetScalarPointer: Pixel ".concat(r," is not in memory. Current extent = ").concat(n)),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return Ii("GetScalarPointer: Scalar Component ".concat(n," is not within bounds. Current Scalar numberOfComponents: ").concat(r)),NaN;var a=e.getOffsetIndexFromWorld(t);return Number.isNaN(a)?a:e.getPointData().getScalars().getComponent(a,n)}}(e,t)}var Di={newInstance:f.a.newInstance(Ei,"vtkImageData"),extend:Ei};function Vi(e){return function(){return f.a.vtkErrorMacro("vtkProp::".concat(e," - NOT IMPLEMENTED"))}}var Li={visibility:!0,pickable:!0,dragable:!0,useBounds:!0,allocatedRenderTime:10,estimatedRenderTime:0,savedEstimatedRenderTime:0,renderTimeMultiplier:1,paths:null,textures:[]};function Ni(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Li,n),f.a.obj(e,t),f.a.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),f.a.setGet(e,t,["visibility","pickable","dragable","useBounds","renderTimeMultiplier"]),function(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=function(){for(var e=t.mtime,n=0;ne&&(e=r)}return e},e.getNestedProps=function(){return null},e.getActors=function(){return[]},e.getActors2D=function(){return[]},e.getVolumes=function(){return[]},e.pick=Vi("pick"),e.hasKey=Vi("hasKey"),e.getRedrawMTime=function(){return t.mtime},e.setEstimatedRenderTime=function(e){t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=function(){t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=function(e){t.estimatedRenderTime+=e},e.setAllocatedRenderTime=function(e){t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=function(){return!1},e.getTextures=function(){return t.textures},e.hasTexture=function(e){return-1!==t.textures.indexOf(e)},e.addTexture=function(n){n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=function(n){var r=t.textures.filter(function(e){return e!==n});t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=function(){t.textures=[],e.modified()}}(e,t)}var Bi={newInstance:f.a.newInstance(Ni,"vtkProp"),extend:Ni};var ki={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 Fi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ki,n),Bi.extend(e,t,n),t.matrixMTime={},f.a.obj(t.matrixMTime),f.a.get(e,t,["bounds","isIdentity"]),f.a.getArray(e,t,["orientation"]),f.a.setGetArray(e,t,["origin","position","scale"],3),t.matrix=o.identity(new Float64Array(16)),t.rotation=o.identity(new Float64Array(16)),t.userMatrix=o.identity(new Float64Array(16)),t.transform=null,function(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=function(n){t.position=t.position.map(function(e,t){return e+n[t]}),e.modified()},e.getOrientationWXYZ=function(){var e=l.create();o.getRotation(e,t.rotation);var n=new Float64Array(3);return[O(l.getAxisAngle(n,e)),n[0],n[1],n[2]]},e.rotateX=function(n){0!==n&&(o.rotateX(t.rotation,t.rotation,x(n)),e.modified())},e.rotateY=function(n){0!==n&&(o.rotateY(t.rotation,t.rotation,x(n)),e.modified())},e.rotateZ=function(n){0!==n&&(o.rotateZ(t.rotation,t.rotation,x(n)),e.modified())},e.rotateWXYZ=function(n,r,a,i){if(0!==n&&(0!==r||0!==a||0!==i)){var s=x(n),c=l.create();l.setAxisAngle(c,[r,a,i],s);var u=new Float64Array(16);o.fromQuat(u,c),o.multiply(t.rotation,t.rotation,u),e.modified()}},e.setOrientation=function(n,r,a){return(n!==t.orientation[0]||r!==t.orientation[1]||a!==t.orientation[2])&&(t.orientation=[n,r,a],o.identity(t.rotation),e.rotateZ(a),e.rotateX(n),e.rotateY(r),e.modified(),!0)},e.setUserMatrix=function(n){o.copy(t.userMatrix,n),e.modified()},e.getMatrix=function(){return e.computeMatrix(),t.matrix},e.computeMatrix=function(){if(e.getMTime()>t.matrixMTime.getMTime()){o.identity(t.matrix),t.userMatrix&&o.multiply(t.matrix,t.matrix,t.userMatrix),o.translate(t.matrix,t.matrix,t.origin),o.translate(t.matrix,t.matrix,t.position),o.multiply(t.matrix,t.matrix,t.rotation),o.scale(t.matrix,t.matrix,t.scale),o.translate(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),o.transpose(t.matrix,t.matrix),t.isIdentity=!0;for(var n=0;n<4;++n)for(var r=0;r<4;++r)(n===r?1:0)!==t.matrix[n+4*r]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=function(){return Jt.getCenter(t.bounds)},e.getLength=function(){return Jt.getLength(t.bounds)},e.getXRange=function(){return Jt.getXRange(t.bounds)},e.getYRange=function(){return Jt.getYRange(t.bounds)},e.getZRange=function(){return Jt.getZRange(t.bounds)},e.getUserMatrix=function(){return t.userMatrix},e.onModified(function(){e.computeMatrix()})}(e,t)}var Gi={newInstance:f.a.newInstance(Fi,"vtkProp3D"),extend:Fi},_i={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},Ui={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:_i},ji={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Wi={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:ji};function zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ki=Ui.ScalarMappingTarget,Xi=Ui.VectorMode,qi=Qe.VtkDataTypes,Yi=Wi.ColorMode,Zi=f.a.vtkErrorMacro;function Qi(e){return e}function $i(e){return Math.floor(255*e+.5)}var Ji={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Xi.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ji,n),f.a.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],f.a.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),f.a.setArray(e,t,["mappingRange"],2),f.a.getArray(e,t,["mappingRange"]),function(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=function(){return e.setVectorMode(Xi.MAGNITUDE)},e.setVectorModeToComponent=function(){return e.setVectorMode(Xi.COMPONENT)},e.setVectorModeToRGBColors=function(){return e.setVectorMode(Xi.RGBCOLORS)},e.build=function(){},e.isOpaque=function(){return!0},e.setAnnotations=function(n,r){if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)Zi("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n)for(var a=r.length,o=0;o=0?t.annotationArray[a].annotation!==r&&(t.annotationArray[a].annotation=r,o=!0):(t.annotationArray.push({value:n,annotation:r}),a=t.annotationArray.length-1,o=!0),o&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=function(){return t.annotationArray.length},e.getAnnotatedValue=function(e){return e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value},e.getAnnotation=function(e){return void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation},e.getAnnotatedValueIndex=function(n){return t.annotationArray.length?e.checkForAnnotatedValue(n):-1},e.removeAnnotation=function(n){var r=e.checkForAnnotatedValue(n),a=r>=0;return a&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=function(){t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=function(n,r){if(t.indexedLookup){var a=e.getAnnotatedValueIndex(n);e.getIndexedColor(a,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=function(t){return e.getAnnotatedValueIndexInternal(t)},e.getAnnotatedValueIndexInternal=function(e){if(void 0!==t.annotatedValueMap[e]){var n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=function(e,t){t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=function(){t.annotatedValueMap=[];for(var e=t.annotationArray.length,n=0;n1?e.mapVectorsThroughTable(t,o,Ki.RGBA,-1,-1):(l<0&&(l=0),l>=a&&(l=a-1),e.mapScalarsThroughTable(t,o,Ki.RGBA,l))}return o},e.mapVectorsToMagnitude=function(e,t,n){for(var r=e.getNumberOfTuples(),a=e.getNumberOfComponents(),o=t.getData(),i=e.getData(),s=0;s=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==Xi.MAGNITUDE||1!==c&&1!==s||(i=Xi.COMPONENT));var u=0;switch(l>0&&(u=l),i){case Xi.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;default:case Xi.MAGNITUDE:var d=Qe.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,d,s),e.mapScalarsThroughTable(d,n,r,0);break;case Xi.RGBCOLORS:}},e.luminanceToRGBA=function(e,t,n,r){for(var a=r(n),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c=1&&n.getDataType()===qi.UNSIGNED_CHAR)return n;var i=Qe.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:qi.UNSIGNED_CHAR});if(a<=0)return i;o=(o=o>0?o:0)<1?o:1;var s=Qi;switch(n.getDataType()!==qi.FLOAT&&n.getDataType()!==qi.DOUBLE||(s=$i),r){case 1:e.luminanceToRGBA(i,n,o,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,o,s);break;case 4:e.rGBAToRGBA(i,n,o,s);break;default:return Zi("Cannot convert colors"),null}return i},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return 16777216},e.setRange=function(t,n){return e.setMappingRange(t,n)},e.getRange=function(t,n){return e.getMappingRange()}}(e,t)}var ts=function(e){for(var t=1;t.001?Math.acos(n/o):0,s=i>.001?Math.atan2(a,r):0;t[0]=o,t[1]=i,t[2]=s}function fs(e,t){if(e[0]>=t-.1)return e[2];var n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+n:e[2]-n}function ps(e,t,n,r){var a=[],o=[];Se(t,a),Se(n,o);var i=[],s=[];ds(a,i),ds(o,s);var l=e;if(i[1]>.05&&s[1]>.05&&function(e,t){var n=e-t;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}(i[2],s[2])>.33*Math.PI){var c=Math.max(i[0],s[0]);c=Math.max(88,c),e<.5?(s[0]=c,s[1]=0,s[2]=0,l*=2):(i[0]=c,i[1]=0,i[2]=0,l=2*l-1)}i[1]<.05&&s[1]>.05?i[2]=fs(s,i[0]):s[1]<.05&&i[1]>.05&&(s[2]=fs(i,s[0]));var u=[];u[0]=(1-l)*i[0]+l*s[0],u[1]=(1-l)*i[1]+l*s[1],u[2]=(1-l)*i[2]+l*s[2];var d=[];!function(e,t){var n=e[0],r=e[1],a=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(a),t[2]=n*Math.sin(r)*Math.sin(a)}(u,d),Pe(d,r)}var gs={clamping:!0,colorSpace:os.RGB,hSVWrap:!0,scale:is.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 ms(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gs,n),ts.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},f.a.obj(t.buildTime),f.a.get(e,t,["buildTime","mappingRange"]),f.a.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=function(){return t.nodes.length},e.addRGBPoint=function(t,n,r,a){return e.addRGBPointLong(t,n,r,a,.5,0)},e.addRGBPointLong=function(n,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(i<0||i>1)return cs("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return cs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var l={x:n,r:r,g:a,b:o,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();for(var c=0;c4&&void 0!==arguments[4]?arguments[4]:.5,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=[];return he([n,r,a],s),e.addRGBPoint(t,s[0],s[1],s[2],o,i)},e.setNodes=function(n){t.nodes!==n&&(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=function(){t.nodes.sort(function(e,t){return e.x-t.x}),e.updateRange()||e.modified()},e.updateRange=function(){var n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];var r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&&(e.modified(),!0)},e.removePoint=function(n){for(var r=0;r=t.nodes.length)return-1;var o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.movePoint=function(n,r){if(n!==r){e.removePoint(r);for(var a=0;a=n&&t.nodes[u].x<=i?t.nodes.splice(u,1):u++;e.addRGBPointLong(n,r,a,o,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=function(t,n,r,a,o,i,s,l){var c=[i,s,l],u=[],d=[];he([n,r,a],u),he(c,d),e.addRGBSegment(t,u[0],u[1],u[2],o,d[0],d[1],d[2])},e.mapValue=function(t){var n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=function(n,r){if(t.indexedLookup){var a=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o<0||0===a)e.getNanColor(r);else{var i=[];e.getNodeValue(o%a,i),r[0]=i.r,r[1]=i.g,r[2]=i.b}}else e.getTable(n,n,1,r)},e.getRedValue=function(t){var n=[];return e.getColor(t,n),n[0]},e.getGreenValue=function(t){var n=[];return e.getColor(t,n),n[1]},e.getBlueValue=function(t){var n=[];return e.getColor(t,n),n[2]},e.getTable=function(n,r,a,o){if(Le(n)||Le(r))for(var i=0;i0);var C=0,S=0,P=0;T&&(C=Math.log10(n),S=Math.log10(r));for(var w=0;w1?T?(P=C+w/(a-1)*(S-C),f=Math.pow(10,P)):f=n+w/(a-1)*(r-n):T?(P=.5*(C+S),f=Math.pow(10,P)):f=.5*(n+r),t.discretize){var O=t.mappingRange;if(f>=O[0]&&f<=O[1]){var M=t.numberOfValues,I=O[1]-O[0];if(M<=1)f=O[0]+I/2;else{var R=(f-O[0])/I,E=A(M*R);f=O[0]+E/(M-1)*I}}}for(;st.nodes[s].x;)++s.99999&&(h=.99999));if(f>t.mappingRange[1])o[x]=0,o[x+1]=0,o[x+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(o[x]=t.aboveRangeColor[0],o[x+1]=t.aboveRangeColor[1],o[x+2]=t.aboveRangeColor[2]):(o[x]=c,o[x+1]=u,o[x+2]=d));else if(f0&&(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b));else if(0===s&&(Math.abs(f-n)<1e-6||t.discretize))l>0?(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b):(o[x]=0,o[x+1]=0,o[x+2]=0);else{var D=0;if(D=(D=T?(P-p)/(g-p):(f-p)/(g-p)).99){if(D<.5){o[x]=m[0],o[x+1]=m[1],o[x+2]=m[2];continue}o[x]=v[0],o[x+1]=v[1],o[x+2]=v[2];continue}if(y<.01){if(t.colorSpace===os.RGB)o[x]=(1-D)*m[0]+D*v[0],o[x+1]=(1-D)*m[1]+D*v[1],o[x+2]=(1-D)*m[2]+D*v[2];else if(t.colorSpace===os.HSV){var V=[],L=[];ve(m,V),ve(v,L),t.hSVWrap&&(V[0]-L[0]>.5||L[0]-V[0]>.5)&&(V[0]>L[0]?V[0]-=1:L[0]-=1);var N=[];N[0]=(1-D)*V[0]+D*L[0],N[0]<0&&(N[0]+=1),N[1]=(1-D)*V[1]+D*L[1],N[2]=(1-D)*V[2]+D*L[2],he(N,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var B=[],k=[];Se(m,B),Se(v,k);var F=[];F[0]=(1-D)*B[0]+D*k[0],F[1]=(1-D)*B[1]+D*k[1],F[2]=(1-D)*B[2]+D*k[2],Pe(F,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.",t.colorSpace);continue}D<.5?D=.5*Math.pow(2*D,1+10*y):D>.5&&(D=1-.5*Math.pow(2*(1-D),1+10*y));var G=D*D,_=G*D,U=2*_-3*G+1,j=-2*_+3*G,W=_-2*G+D,z=_-G,H=void 0;if(t.colorSpace===os.RGB)for(var K=0;K<3;K++)H=(1-y)*(v[K]-m[K]),o[x+K]=U*m[K]+j*v[K]+W*H+z*H;else if(t.colorSpace===os.HSV){var X=[],q=[];ve(m,X),ve(v,q),t.hSVWrap&&(X[0]-q[0]>.5||q[0]-X[0]>.5)&&(X[0]>q[0]?X[0]-=1:q[0]-=1);for(var Y=[],Z=0;Z<3;Z++)H=(1-y)*(q[Z]-X[Z]),Y[Z]=U*X[Z]+j*q[Z]+W*H+z*H,0===Z&&Y[Z]<0&&(Y[Z]+=1);he(Y,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var Q=[],$=[];Se(m,Q),Se(v,$);for(var J=[],ee=0;ee<3;ee++)H=(1-y)*($[ee]-Q[ee]),J[ee]=U*Q[ee]+j*$[ee]+W*H+z*H;Pe(J,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.");for(var te=0;te<3;te++)o[x+te]=o[x+te]<0?0:o[x+te],o[x+te]=o[x+te]>1?1:o[x+te]}}}},e.getUint8Table=function(n,r,a){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==o)return t.table;if(0===t.nodes.length)return cs("Attempting to lookup a value with no points in the function"),t.table;var i=o?4:3;t.tableSize===a&&t.tableWithAlpha===o||(t.table=new Uint8Array(a*i),t.tableSize=a,t.tableWithAlpha=o);var s=[];e.getTable(n,r,a,s);for(var l=0;l1&&(i=(r-n)/(a-1));for(var s=0;s=t.nodes.length?(cs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){if(n<0||n>=t.nodes.length)return cs("Index out of range!"),-1;var a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=function(){return t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216},e.getIndexedColor=function(t,n){var r=e.getSize();if(r>0&&t>=0){var a=[];e.getNodeValue(t%r,a);for(var o=0;o<3;++o)n[o]=a[o+1];n[3]=1}else e.getNanColor(n),n[3]=1},e.fillFromDataPointer=function(t,n){if(!(t<=0)&&n){e.removeAllPoints();for(var r=0;rn[1]?(e.getColor(n[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])):(e.getColor(r[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(var o=0;o=n[0]&&t.nodes[o].x<=n[1]?t.nodes.splice(o,1):++o;return 1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){if(t.nodes.length<2)return-1;for(var e=Number.MAX_VALUE,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ys,n),f.a.obj(e,t),t.nodes=[],f.a.setGet(e,t,["allowDuplicateScalars","clamping"]),f.a.setArray(e,t,["range"],2),f.a.getArray(e,t,["range"]),function(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=function(){return t.nodes.length},e.getType=function(){var e,n=0,r=0;t.nodes.length>0&&(n=t.nodes[0].y);for(var a=1;an)switch(r){case 0:case 1:r=1;break;default:case 2:r=3}else switch(r){case 0:case 2:r=2;break;default:case 1:r=3}if(n=e,3===r)break}switch(r){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:case 3:return"Varied"}},e.getDataPointer=function(){var e=t.nodes.length;if(t.function=null,e>0){t.function=[];for(var n=0;n0?t.nodes[n-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x},e.getNodeValue=function(e,n){var r=t.nodes.length;return e<0||e>=r?(hs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){var a=t.nodes.length;if(n<0||n>=a)return hs("Index out of range!"),-1;var o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=function(t,n){return e.addPointLong(t,n,.5,0)},e.addPointLong=function(n,r,a,o){if(a<0||a>1)return hs("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return hs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var i,s={x:n,y:r,midpoint:a,sharpness:o};for(t.nodes.push(s),e.sortAndUpdateRange(),i=0;i=t.nodes.length)return-1;var a=r,o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addSegment=function(n,r,a,o){e.sortAndUpdateRange();for(var i=0;i=n&&t.nodes[i].x<=a?t.nodes.splice(i,1):i++;e.addPoint(n,r,.5,0),e.addPoint(a,o,.5,0)},e.getValue=function(t){var n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=function(n){if(n.length<2)return 0;var r=e.getRange();r[0]n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(var a=0;a=n[0]&&t.nodes[a].x<=n[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){var e=t.nodes.length;if(e<2)return-1;for(var n=t.nodes[1].x-t.nodes[0].x,r=0;r4&&void 0!==arguments[4]?arguments[4]:1,s=0,l=t.nodes.length,c=0;0!==l&&(c=t.nodes[l-1].y);var u=0,d=0,f=0,p=0,g=0,m=0,v=0;for(o=0;o1?e+o/(r-1)*(n-e):.5*(e+n);st.nodes[s].x;)++s.99999&&(m=.99999));if(s>=l)a[h]=t.clamping?c:0;else if(0===s)a[h]=t.clamping?t.nodes[0].y:0;else{var y=(u-d)/(f-d);if(y=y.99){if(y<.5){a[h]=p;continue}a[h]=g;continue}if(v<.01){a[h]=(1-y)*p+y*g;continue}y<.5?y=.5*Math.pow(2*y,1+10*v):y>.5&&(y=1-.5*Math.pow(2*(1-y),1+10*v));var b=y*y,T=b*y,C=2*T-3*b+1,S=-2*T+3*b,P=T-2*b+y,w=T-b,x=(1-v)*(g-p);a[h]=C*p+S*g+P*x+w*x;var O=pg?p:g;a[h]=a[h]M?M:a[h]}}}}(e,t)}var Ts={newInstance:f.a.newInstance(bs,"vtkPiecewiseFunction"),extend:bs},Cs={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ss={FRACTIONAL:0,PROPORTIONAL:1},Ps={InterpolationType:Cs,OpacityMode:Ss};function ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Os=Ps.InterpolationType,Ms=Ps.OpacityMode,As=f.a.vtkErrorMacro,Is=4;var Rs={independentComponents:!0,interpolationType:Os.FAST_LINEAR,shade:0,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:1};function Es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Rs,n),f.a.obj(e,t),!t.componentData){t.componentData=[];for(var r=0;r(e=t.componentData[r].grayTransferFunction.getMTime())?n:e):3===t.componentData[r].colorChannels&&t.componentData[r].rGBTransferFunction&&(n=n>(e=t.componentData[r].rGBTransferFunction.getMTime())?n:e),t.componentData[r].scalarOpacity&&(n=n>(e=t.componentData[r].scalarOpacity.getMTime())?n:e),t.componentData[r].gradientOpacity&&(t.componentData[r].disableGradientOpacity||(n=n>(e=t.componentData[r].gradientOpacity.getMTime())?n:e));return n},e.getColorChannels=function(e){return e<0||e>3?(As("Bad index - must be between 0 and 3"),0):t.componentData[e].colorChannels},e.setGrayTransferFunction=function(n,r){var a=!1;return t.componentData[n].grayTransferFunction!==r&&(t.componentData[n].grayTransferFunction=r,a=!0),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1,a=!0),a&&e.modified(),a},e.getGrayTransferFunction=function(n){return null===t.componentData[n].grayTransferFunction&&(t.componentData[n].grayTransferFunction=Ts.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction},e.setRGBTransferFunction=function(n,r){var a=!1;return t.componentData[n].rGBTransferFunction!==r&&(t.componentData[n].rGBTransferFunction=r,a=!0),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3,a=!0),a&&e.modified(),a},e.getRGBTransferFunction=function(n){return null===t.componentData[n].rGBTransferFunction&&(t.componentData[n].rGBTransferFunction=vs.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction},e.setScalarOpacity=function(n,r){return t.componentData[n].scalarOpacity!==r&&(t.componentData[n].scalarOpacity=r,e.modified(),!0)},e.getScalarOpacity=function(n){return null===t.componentData[n].scalarOpacity&&(t.componentData[n].scalarOpacity=Ts.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity},e.setComponentWeight=function(n,r){if(n<0||n>=Is)return As("Invalid index"),!1;var a=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==a&&(t.componentData[n].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=Is?(As("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(Os.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(Os.LINEAR)},e.setInterpolationTypeToFastLinear=function(){return e.setInterpolationType(Os.FAST_LINEAR)},e.getInterpolationTypeAsString=function(){return f.a.enumToString(Os,t.interpolationType)},["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["set".concat(r)]=function(r,a){return t.componentData[r]["".concat(n)]!==a&&(t.componentData[r]["".concat(n)]=a,e.modified(),!0)}}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["get".concat(r)]=function(e){return t.componentData[e]["".concat(n)]}})}(e,t)}var Ds=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ls,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["mapper"]),f.a.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=function(){return e},e.makeProperty=Ds.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!function(e){return e[0].map(function(t,n){return e.map(function(e){return e[n]})})}([n,t.mapperBounds]).reduce(function(e,t){return e&&t[0]===t[1]},!0)||e.getMTime()>t.boundsMTime.getMTime()){Vs("Recomputing bounds..."),t.mapperBounds=n.map(function(e){return e});var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?n:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e}}(e,t)}var Bs={newInstance:f.a.newInstance(Ns,"vtkVolume"),extend:Ns},ks={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3};var Fs={clippingPlanes:[]};var Gs={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fs,n),f.a.obj(e,t),f.a.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){e.update=function(){e.getInputData()},e.addClippingPlane=function(e){"vtkPlane"===e.getClassName()&&t.clippingPlanes.push(e)},e.getNumberOfClippingPlanes=function(){return t.clippingPlanes.length},e.removeAllClippingPlanes=function(){t.clippingPlanes.length=0},e.removeClippingPlane=function(e){e<0||e>=6||t.clippingPlanes.splice(e,1)},e.getClippingPlanes=function(){return t.clippingPlanes},e.setClippingPlanes=function(t){if(t)if(Array.isArray(t))for(var n=t.length,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Us,n),Gs.extend(e,t,n),f.a.obj(e,t),f.a.algo(e,t,1,0),f.a.setGet(e,t,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","blendMode"]),f.a.setGetArray(e,t,["averageIPScalarRange"],2),f.a.event(e,t,"lightingActivated"),function(e,t){t.classHierarchy.push("vtkVolumeMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.update=function(){e.getInputData()},e.setBlendModeToComposite=function(){e.setBlendMode(_s.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=function(){e.setBlendMode(_s.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=function(){e.setBlendMode(_s.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=function(){e.setBlendMode(_s.AVERAGE_INTENSITY_BLEND)},e.getBlendModeAsString=function(){return f.a.enumToString(_s,t.blendMode)}}(e,t)}var Ws={newInstance:f.a.newInstance(js,"vtkVolumeMapper"),extend:js};function zs(e,t){const n=[e.volume.cols,e.volume.rows,e.volume.imageIds.length];if(n[0]*n[1]*n[2]<1||n[1]<2||n[1]<2||n[2]<2)return;const r=Di.newInstance(),a=e.volume.imagePosition,o=e.volume.pixelSpacing.concat(e.volume.sliceThickness);r.setDimensions(n),r.setOrigin(a),r.setSpacing(o);const i=Qe.newInstance({name:"Scalars",values:t,numberOfComponents:1});return r.getPointData().setScalars(i),r.modified(),r}let Hs=!1;function Ks(e,t,n){let r=[],a=0,o=function(){let t={knee:24,thorax:364,abdomen:147}[e],n=[];for(let r=1;r{t.resetImageParsing(),t.readFiles(r,function(e,r){let a=e[_.keys(e)[0]];t.renderImage(a,"viewer"),n&&setTimeout(n,3e3,a)})})})}function Xs(e){return e*Math.PI/180}const qs=(e,t,n)=>{try{let r=ft.intersectWithPlane(e.position,e.normal,t.position,t.normal);if(r.intersection){const{l0:e,l1:t}=r,a=ft.intersectWithLine(e,t,n.position,n.normal);if(a.intersection)return a.x}}catch(e){console.log("some issue calculating the plane intersection",e)}return NaN};function Ys(e){const t=Bs.newInstance(),n=Ws.newInstance();n.setSampleDistance(1),t.setMapper(n),n.setInputData(e);const r=e.getPointData().getScalars().getRange();return t.getProperty().getRGBTransferFunction(0).setMappingRange(r[0],r[1]),t}n(28);var Zs=f.a.vtkErrorMacro;var Qs={parent:null,renderable:null,myFactory:null,children:[],visited:!1};function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qs,n),f.a.obj(e,t),f.a.event(e,t,"event"),t._renderableChildMap=new Map,f.a.get(e,t,["visited"]),f.a.setGet(e,t,["parent","renderable","myFactory"]),f.a.getArray(e,t,["children"]),function(e,t){t.classHierarchy.push("vtkViewNode"),e.build=function(e){},e.render=function(e){},e.traverse=function(n){var r=n.getTraverseOperation(),a=e[r];if(a)a(n);else{e.apply(n,!0);for(var o=0;o2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,el,n),f.a.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=function(n){if(n.isDeleted())return null;for(var r=0,a=n.getClassName(r++),o=!1,i=Object.keys(t.overrides);a&&!o;)-1!==i.indexOf(a)?o=!0:a=n.getClassName(r++);if(!o)return null;var s=t.overrides[a]();return s.setMyFactory(e),s},e.registerOverride=function(e,n){t.overrides[e]=n}}(e,t)}var nl={newInstance:f.a.newInstance(tl,"vtkViewNodeFactory"),extend:tl},rl=Object.create(null);function al(e,t){rl[e]=t}var ol={};function il(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ol,n),t.overrides=rl,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}(0,t)}var sl={newInstance:f.a.newInstance(il,"vtkOpenGLViewNodeFactory"),extend:il};var ll={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function cl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ll,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},f.i(e,t,["context","keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=function(n){n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext())},e.opaquePass=function(e){if(e){var n=t.openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),t.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},e.translucentPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=function(n){if(n!==t.lastRenderer||t.openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){o.copy(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,t.keyMatrices.wcvc);var r=t.openGLRenderer.getAspectRatio();o.copy(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(r,-1,1)),o.transpose(t.keyMatrices.vcpc,t.keyMatrices.vcpc),o.multiply(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)}var ul=f.d(cl);al("vtkCamera",ul);var dl=f.k;var fl={context:null,openGLRenderWindow:null,selector:null};function pl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fl,n),Js.extend(e,t,n),f.b(e,t,["shaderCache"]),f.i(e,t,["selector"]),function(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(dl("No lights are on, creating one."),t.renderable.createLight()),e},e.opaqueZBufferPass=function(n){if(n){var r=0,a=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),r|=a.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),r|=a.DEPTH_BUFFER_BIT,a.depthMask(!0));var o=e.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.colorMask(!0,!0,!0,!0),a.clear(r),a.enable(a.DEPTH_TEST)}},e.cameraPass=function(t){t&&e.clear()},e.getAspectRatio=function(){var e=t.parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=Me(e[0]-n[0],0,1),a=Me(e[1]-n[1],0,1),o=t.parent.normalizedDisplayToDisplay(r,a),i=Math.round(o[0]),s=Math.round(o[1]),l=Me(e[2]-n[0],0,1),c=Me(e[3]-n[1],0,1);l>n[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.clear=function(){var n=0,r=t.context;if(!t.renderable.getTransparent()){var a=t.renderable.getBackgroundByReference();t.context.clearColor(a[0],a[1],a[2],a[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);var o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))}}(e,t)}var gl=f.d(pl,"vtkOpenGLRenderer");al("vtkRenderer",gl);var ml={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},vl={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2},hl={ObjectType:vl};function yl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bl(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),f.a.obj(e,t),f.a.get(e,t,["openGLRenderWindow"]),function(e,t){function n(e){switch(e){case Cl.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Cl.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;default:case Cl.ARRAY_BUFFER:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");var r=null,a=null,o=!0,i="";e.getType=function(){return r},e.setType=function(e){r=e},e.getHandle=function(){return a},e.isReady=function(){return!1===o},e.generateBuffer=function(e){var o=n(e);return null===a&&(a=t.context.createBuffer(),r=e),n(r)===o},e.upload=function(s,l){return e.generateBuffer(l)?(t.context.bindBuffer(n(r),a),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),o=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1)},e.bind=function(){return!!a&&(t.context.bindBuffer(n(r),a),!0)},e.release=function(){return!!a&&(t.context.bindBuffer(n(r),null),!0)},e.releaseGraphicsResources=function(){null!==a&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(a),a=null)},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.getError=function(){return i}}(e,t)}var wl=bl(bl({newInstance:f.a.newInstance(Pl),extend:Pl},{}),hl),xl={FLAT:0,GOURAUD:1,PHONG:2},Ol={POINTS:0,WIREFRAME:1,SURFACE:2},Ml={Shading:xl,Representation:Ol,Interpolation:xl},Al=f.a.vtkErrorMacro;function Il(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(vl.ARRAY_BUFFER),e.createVBO=function(n,r,a,o){if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];var i=o.points.getData(),s=null,l=null,c=null,u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,s=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(function(e){e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())}),o.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=d,t.blockSize+=d,l=o.tcoords.getData()),o.colors?(t.colorComponents=o.colors.getNumberOfComponents(),t.colorOffset=0,c=o.colors.getData(),t.colorBO||(t.colorBO=wl.newInstance()),t.colorBO.setOpenGLRenderWindow(t.openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;var f,p=0,g=0,m=0,v=0,h=0,y=0,b={anythingToPoints:function(e,t,n){for(var r=0;r2)for(var r=0;r2){for(var r=0;r1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return e>2?3*(e-2):0}},C=null,S=null;a===Ol.POINTS||"verts"===r?(C=b.anythingToPoints,S=T.anythingToPoints):a===Ol.WIREFRAME||"lines"===r?(C=b["".concat(r,"ToWireframe")],S=T["".concat(r,"ToWireframe")]):(C=b["".concat(r,"ToSurface")],S=T["".concat(r,"ToSurface")]);for(var P=n.getData(),w=P.length,x=0,O=0;O0&&(Math.abs(D)/E>1e6||Math.abs(Math.log10(E))>3||0===E&&D>1e6)){for(var k=new Float64Array(3),F=new Float64Array(3),G=0;G<3;++G){var _=o.points.getRange(G),U=_[1]-_[0];k[G]=.5*(_[1]+_[0]),F[G]=U>0?1/U:1}e.setCoordShiftAndScale(k,F)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);f=function(e){if(p=3*e,t.coordShiftAndScaleEnabled?(A[I++]=(i[p++]-t.coordShift[0])*t.coordScale[0],A[I++]=(i[p++]-t.coordShift[1])*t.coordScale[1],A[I++]=(i[p++]-t.coordShift[2])*t.coordScale[2]):(A[I++]=i[p++],A[I++]=i[p++],A[I++]=i[p++]),null!==s&&(g=o.haveCellNormals?3*(y+o.cellOffset):3*e,A[I++]=s[g++],A[I++]=s[g++],A[I++]=s[g++]),t.customData.forEach(function(t){h=e*t.components;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rl,n),wl.extend(e,t,n),f.a.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),f.a.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Il(e,t)}var Dl={newInstance:f.a.newInstance(El),extend:El},Vl=f.a.vtkErrorMacro;var Ll={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function Nl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ll,n),f.a.obj(e,t),f.a.setGet(e,t,["shaderType","source","error","handle","context"]),function(e,t){t.classHierarchy.push("vtkShader"),e.compile=function(){var e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;switch(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),t.shaderType){case"Fragment":e=t.context.FRAGMENT_SHADER;break;case"Vertex":default:e=t.context.VERTEX_SHADER}if(t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){var n=t.context.getShaderInfoLog(t.handle);return Vl("Error compiling shader '".concat(t.source,"': ").concat(n)),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var Bl={newInstance:f.a.newInstance(Nl,"vtkShader"),extend:Nl},kl=f.a.vtkErrorMacro;var Fl={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 Gl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fl,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=Bl.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=Bl.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=Bl.newInstance(),t.geometryShader.setShaderType("Geometry"),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),function(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=function(){return t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(kl("Links failed: ".concat(t.error)),0):(kl(t.error),0):(kl(t.fragmentShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.fragmentShader.getError()),0):(kl(t.vertexShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.vertexShader.getError()),0)},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0)},e.bind=function(){return!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0))},e.isBound=function(){return!!t.bound},e.release=function(){t.context.useProgram(null),e.setBound(!1)},e.setContext=function(e){t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=function(){if(t.inked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){var n=t.context.getProgramInfoLog(t.handle);return kl("Error linking shader ".concat(n)),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix4fv(a,!1,o),!0},e.setUniformMatrix3x3=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix3fv(a,!1,o),!0},e.setUniformf=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1f(a,r),!0)},e.setUniformfv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1fv(a,r),!0)},e.setUniformi=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1i(a,r),!0)},e.setUniformiv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1iv(a,r),!0)},e.setUniform2f=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(o,r,a),!0},e.setUniform2fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2fv(a,r),!0)},e.setUniform2i=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(o,r,a),!0},e.setUniform2iv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2iv(a,r),!0)},e.setUniform3f=function(n,r,a,o){var i=e.findUniform(n);if(-1===i)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,a,o),!0},e.setUniform3fArray=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(a,r[0],r[1],r[2]),!0},e.setUniform3fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform3fv(a,r),!0)},e.setUniform3i=function(n){var r=e.findUniform(n);if(-1===r)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i1?a-1:0),i=1;i1?a-1:0),i=1;i3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var Ul={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null,openGLRenderWindow:null};function jl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ul,n),t.buffers=[],f.a.obj(e,t),f.a.get(e,t,["supported"]),f.a.setGet(e,t,["forceEmulation"]),function(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=function(){},e.initialize=function(){t.instancingExtension=null,t.openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t.openGLRenderWindow&&t.openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=function(){return 0!==t.handleVAO||!1===t.supported},e.bind=function(){if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,1):n.vertexAttribDivisor(i.index+l,1))}},e.release=function(){if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,0):n.vertexAttribDivisor(i.index+l,0)),n.disableVertexAttribArray(i.index+l)}},e.shaderProgramChanged=function(){e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=function(){e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=function(t,n,r,a,o,i,s,l){return e.addAttributeArrayWithDivisor(t,n,r,a,o,i,s,l,0,!1)},e.addAttributeArrayWithDivisor=function(n,r,a,o,i,s,l,c,u,d){if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==vl.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;var f=t.context,p={};if(p.name=a,p.index=f.getAttribLocation(t.handleProgram,a),p.offset=o,p.stride=i,p.type=s,p.size=l,p.normalize=c,p.isMatrix=d,p.divisor=u,-1===p.Index)return!1;if(r.bind(),f.enableVertexAttribArray(p.index),f.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p.index,1):f.vertexAttribDivisor(p.index,1)),p.buffer=r.getHandle(),!t.supported){for(var g=!1,m=0;m0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p+g,1):f.vertexAttribDivisor(p+g,1));return!0},e.removeAttributeArray=function(n){if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zl,n),f.a.obj(e,t),t.shaderSourceTime={},f.a.obj(t.shaderSourceTime),t.attributeUpdateTime={},f.a.obj(t.attributeUpdateTime),f.a.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType"]),t.program=_l.newInstance(),t.VAO=Wl.newInstance(),t.CABO=Dl.newInstance(),function(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=function(e){t.program.setContext(e.getContext()),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=function(e){t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)}}(e,t)}var Kl={newInstance:f.a.newInstance(Hl),extend:Hl},Xl={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},ql={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Yl={Wrap:Xl,Filter:ql};function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ql(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $l=Yl.Wrap,Jl=Yl.Filter,ec=Qe.VtkDataTypes,tc=f.k,nc=f.l,rc=f.m;var ac={openGLRenderWindow:null,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:$l.CLAMP_TO_EDGE,wrapT:$l.CLAMP_TO_EDGE,wrapR:$l.CLAMP_TO_EDGE,minificationFilter:Jl.NEAREST,magnificationFilter:Jl.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1};function oc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ac,n),Js.extend(e,t,n),t.sendParametersTime={},f.g(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},f.g(t.textureBuildTime,{mtime:0}),f.h(e,t,["format","openGLDataType"]),f.i(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap"]),f.b(e,t,["width","height","volumeInfo","components","handle","target"]),function(e,t){var n=this;function r(e,n){var r=[];if(e!==ec.FLOAT&&t.openGLDataType===t.context.FLOAT)for(var a=t.width*t.height*t.components,o=0;o=a&&(h=a-1);var y=m-v,b=1-y;v=v*r*o,h=h*r*o;for(var T=0;T=r&&(w=r-1);var x=S-P;P*=o,w*=o;for(var O=0;Oa[l]&&(a[l]=n[i]),i++;for(var c=[],u=[],d=0;d0&&void 0!==arguments[0]?arguments[0]:null;if(n?t.openGLRenderWindow=n:(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent()),t.context=t.openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Jl.LINEAR),e.setMagnificationFilter(Jl.LINEAR)):(e.setMinificationFilter(Jl.NEAREST),e.setMagnificationFilter(Jl.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR($l.REPEAT),e.setWrapS($l.REPEAT),e.setWrapT($l.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified()));var r=t.renderable.getInputData(0);if(r&&r.getPointData().getScalars()){for(var a=r.getExtent(),o=r.getPointData().getScalars(),i=[],s=0;st.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=function(){var e=!1;if(t.context&&t.handle){var n=0;switch(t.target){case t.context.TEXTURE_2D:n=t.context.TEXTURE_BINDING_2D;break;default:rc("impossible case")}e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=function(){t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t.openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=function(n,r){return t.internalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||tc("Unable to find suitable internal format for T=".concat(n," NC= ").concat(r)),t.internalFormat},e.getDefaultInternalFormat=function(e,r){var a=0;return(a=t.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!1))?a:((a=n.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!0))||(tc("Unsupported internal texture type!"),tc("Unable to find suitable internal format for T=".concat(e," NC= ").concat(r))),a)},e.setInternalFormat=function(n){n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=function(n,r){return t.format=e.getDefaultFormat(n,r),t.format},e.getDefaultFormat=function(e,n){if(t.openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}},e.resetFormatAndType=function(){t.format=0,t.internalFormat=0,t.openGLDataType=0},e.getDefaultDataType=function(e){if(t.openGLRenderWindow.getWebgl2())switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.FLOAT}switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear")?t.context.FLOAT:t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){return t.openGLDataType=e.getDefaultDataType(n),t.openGLDataType},e.getShiftAndScale=function(){var e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:e=(n=127.5)-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:e=(n=32767.5)-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:e=(n=2147483647.5)-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;break;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=function(e){switch(e){case Jl.NEAREST:return t.context.NEAREST;case Jl.LINEAR:return t.context.LINEAR;case Jl.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Jl.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Jl.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Jl.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=function(e){switch(e){case $l.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case $l.REPEAT:return t.context.REPEAT;case $l.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.create2DFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var c=a(r(s,[l]));return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,c[0]),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.createCubeFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();for(var c=a(r(s,l)),u=[],d=t.width,p=t.height,g=0;g=1&&C>=1;){var S=null;b<=t.maxLevel&&(S=u[6*b+y]),t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,t.internalFormat,T,C,0,t.format,t.openGLDataType,S),b++,T/=2,C/=2}return e.deactivate(),!0},e.createDepthFromRaw=function(n,r,a,o){return e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t.openGLRenderWindow.getWebgl2()?a===ec.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=r,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,o),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create2DFromImage=function(n){if(e.getOpenGLDataType(ec.UNSIGNED_CHAR),e.getInternalFormat(ec.UNSIGNED_CHAR,4),e.getFormat(ec.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.width=n.width,t.height=n.height,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);var r=!B(n.width)||!B(n.height),a=document.createElement("canvas");a.width=r?N(n.width):n.width,a.height=r?N(n.height):n.height;var o=a.getContext("2d");o.translate(0,a.height),o.scale(1,-1),o.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height),navigator.userAgent.indexOf("Chrome/69")>=0&&o.getImageData(0,0,1,1);var i=a;return t.context.texImage2D(t.target,0,t.internalFormat,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create3DFromRaw=function(n,r,a,o,i,s){return e.getOpenGLDataType(i),e.getInternalFormat(i,o),e.getFormat(i,o),t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_3D,t.components=o,t.width=n,t.height=r,t.depth=a,t.numberOfDimensions=3,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create3DFilterableFromRaw=function(n,r,a,i,s,l){for(var c=n*r*a,u=[],d=[],f=0;f4096&&(w===ec.FLOAT||i>=3)&&(O=4096);var M=1,A=1;c>O*O&&(A=M=Math.ceil(Math.sqrt(c/(O*O))));var I=Math.sqrt(c)/M;I=N(I);var R,E=Math.floor(I*M/n),D=Math.ceil(a/E),V=N(r*D/A);t.width=I,t.height=V,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=E,t.volumeInfo.yreps=D,t.volumeInfo.xstride=M,t.volumeInfo.ystride=A,t.volumeInfo.offset=S.offset,t.volumeInfo.scale=S.scale;var L=I*V*i;R=w===ec.FLOAT?new Float32Array(L):new Uint8Array(L);for(var B=0,k=Math.floor(n/M),F=Math.floor(r/A),G=0;G2&&void 0!==arguments[2]&&arguments[2],e.replaceShaderCoincidentOffset=function(n,r,a){var o=e.getCoincidentParameters(r,a);if(o&&(0!==o.factor||0!==o.offset)){var i=n.Fragment;i=_l.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t.openGLRenderWindow.getWebgl2()&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}},gc=f.l,mc=ml;function vc(e,t,n){if(t.apply(e)){var r=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(r,"-").concat(n)}return"0"}var hc={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,colorTexture:null,pwfTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hc,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.tris=Kl.newInstance(),t.openGLTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.pwfTexture=sc.newInstance(),t.imagemat=o.identity(new Float64Array(16)),f.i(e,t,[]),t.VBOBuildTime={},f.g(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkOpenGLImageMapper"),e.buildPass=function(n){if(n){t.openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera()),t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(r.getActiveCamera())}},e.translucentPass=function(t){t&&e.render()},e.opaqueZBufferPass=function(n){n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,n){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var n=t.openGLImageSlice.getRenderable(),r=t.openGLRenderer.getRenderable();e.renderPiece(r,n)},e.buildShaders=function(t,n,r){e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.getShaderTemplate=function(e,t,n){e.Vertex=uc.a,e.Fragment=fc.a,e.Geometry=""},e.replaceShaderValues=function(n,r,a){var o=n.Vertex,i=n.Fragment;o=_l.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,o=_l.substitute(o,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;var s=t.openGLTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;"];if(l){for(var u=1;un.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||gc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||gc("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());var o=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",o);var i=t.openGLTexture.getComponents(),s=a.getProperty().getIndependentComponents();if(s)for(var l=0;l1?1:0;var j=o.getData(),W=null;if(D===mc.I){W=new j.constructor(k[2]*k[1]*l);for(var z=0,H=0;H2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Tc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLImageSlice"),e.buildPass=function(n){if(t.renderable&&t.renderable.getVisibility()&&n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaqueZBufferPass=function(t){e.traverseOpaquePass(t)},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.opaqueZBufferPass=function(t,n){return e.opaquePass(t,n)},e.opaquePass=function(n,r){n&&(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0))},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Sc=f.d(Cc,"vtkOpenGLImageSlice");al("vtkImageSlice",Sc);var Pc={};function wc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0))},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.MCWCMatrix,t.renderable.getMatrix()),o.transpose(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?a.identity(t.normalMatrix):(a.fromMat4(t.normalMatrix,t.MCWCMatrix),a.invert(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix}}}(e,t)}var xc=f.d(wc,"vtkOpenGLVolume");al("vtkVolume",xc);var Oc={openGLRenderWindow:null,glFramebuffer:null,colorTexture:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Mc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Oc,n),f.g(e,t),f.i(e,t,["colorTexture"]),function(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=function(){return t.context.FRAMEBUFFER},e.saveCurrentBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=function(e){var n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t.openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=function(e){},e.restorePreviousBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=function(e){var n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t.openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=function(e){},e.bind=function(){t.context.bindFramebuffer(t.context.FRAMEBUFFER,t.glFramebuffer),t.colorTexture&&t.colorTexture.bind(),t.openGLRenderWindow.setActiveFramebuffer(e)},e.create=function(e,n){t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n},e.setColorBuffer=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.context,a=r.COLOR_ATTACHMENT0;if(n>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");a+=n}t.colorTexture=e,r.framebufferTexture2D(r.FRAMEBUFFER,a,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=t.context,r=n.COLOR_ATTACHMENT0;if(e>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0)},e.setDepthBuffer=function(e){if(t.openGLRenderWindow.getWebgl2()){var n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else f.l("Attaching depth buffer textures to fbo requires WebGL 2")},e.removeDepthBuffer=function(){if(t.openGLRenderWindow.getWebgl2()){var e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else f.l("Attaching depth buffer textures to framebuffers requires WebGL 2")},e.getGLFramebuffer=function(){return t.glFramebuffer},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.releaseGraphicsResources=function(){t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer),t.colorTexture&&t.colorTexture.releaseGraphicsResources()},e.getSize=function(){var e=[0,0];return null!==t.glFramebuffer&&(e[0]=t.glFramebuffer.width,e[1]=t.glFramebuffer.height),e},e.populateFramebuffer=function(){e.bind();var n=t.context,r=sc.newInstance();r.setOpenGLRenderWindow(t.openGLRenderWindow),r.setMinificationFilter(ql.LINEAR),r.setMagnificationFilter(ql.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,u.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)}}(e,t)}var Ac={newInstance:f.d(Mc,"vtkFramebuffer"),extend:Mc},Ic=n(10),Rc=n.n(Ic),Ec=n(11),Dc=n.n(Ec);function Vc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nc=f.m,Bc=f.l;function kc(e,t){if(e.length!==t.length)return!1;for(var n=0;n0&&(o=_l.substitute(o,"//VTK::vtkProportionalComponents",c.join("\n")).result)}var d=t.currentInput.getExtent(),f=t.currentInput.getSpacing(),p=new Float64Array(3);i.set(p,(d[1]-d[0])*f[0],(d[3]-d[2])*f[1],(d[5]-d[4])*f[2]);var g=i.length(p)/t.renderable.getSampleDistance();o=_l.substitute(o,"//VTK::MaximumSamplesValue","".concat(Math.ceil(g))).result,o=_l.substitute(o,"//VTK::LightComplexity","#define vtkLightComplexity ".concat(t.lastLightComplexity)).result,t.gopacity=a.getProperty().getUseGradientOpacity(0);for(var m=1;l&&!t.gopacity&&m0&&(a=_l.substitute(a,"//VTK::Light::Dec",["uniform vec3 lightColor".concat(o,";"),"uniform vec3 lightDirectionVC".concat(o,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(o,"; // normalized"),"//VTK::Light::Dec"],!1).result,a=_l.substitute(a,"//VTK::Light::Impl",[" float df = abs(dot(normal.rgb, -lightDirectionVC".concat(o,"));")," diffuse += ((df".concat("",") * lightColor").concat(o,");")," float sf = pow( abs(dot(lightHalfAngleVC".concat(o,",normal.rgb)), vSpecularPower);")," specular += ((sf".concat("",") * lightColor").concat(o,");")," //VTK::Light::Impl"],!1).result,o++)})}e.Fragment=a},e.replaceShaderClippingPlane=function(e,n,r){var a=e.Fragment;if(t.renderable.getClippingPlanes().length>0){var o=t.renderable.getClippingPlanes().length;a=_l.substitute(a,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","//VTK::ClipPlane::Dec"],!1).result,a=_l.substitute(a,"//VTK::ClipPlane::Impl",["for(int i = 0; i < ".concat(o,"; i++) {")," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}e.Fragment=a},e.getNeedToRebuildShaders=function(n,r,a){var o=0;a.getProperty().getShade()&&t.renderable.getBlendMode()===ks.COMPOSITE_BLEND&&(o=0,t.numberOfLights=0,r.getLights().forEach(function(e){e.getSwitch()>0&&(t.numberOfLights++,0===o&&(o=1)),1===o&&(t.numberOfLights>1||1!==e.getIntensity()||!e.lightTypeIsHeadLight())&&(o=2),o<3&&e.getPositional()&&(o=3)}));var s=!1;t.lastLightComplexity!==o&&(t.lastLightComplexity=o,s=!0);var l=t.scalarTexture.getComponents(),c=a.getProperty().getIndependentComponents(),u=!1,d=[];if(c){for(var f=0;f0&&(u=!0)}var p=t.currentInput.getExtent(),g=t.currentInput.getSpacing(),m=new Float64Array(3);i.set(m,(p[1]-p[0])*g[0],(p[3]-p[2])*g[1],(p[5]-p[4])*g[2]);var v=i.length(m)/t.renderable.getSampleDistance(),h={interpolationType:a.getProperty().getInterpolationType(),useLabelOutline:a.getProperty().getUseLabelOutline(),numComp:l,usesProportionalComponents:u,iComps:c,maxSamples:v,useGradientOpacity:a.getProperty().getUseGradientOpacity(0),blendMode:t.renderable.getBlendMode(),averageIPScalarMode:t.renderable.getAverageIPScalarRange(),proportionalComponents:d};return t.previousState&&t.previousState.interpolationType===h.interpolationType&&t.previousState.useLabelOutline===h.useLabelOutline&&t.previousState.numComp===h.numComp&&t.previousState.usesProportionalComponents===h.usesProportionalComponents&&t.previousState.iComps===h.iComps&&t.previousState.maxSamples===h.maxSamples&&t.previousState.useGradientOpacity===h.useGradientOpacity&&t.previousState.blendMode===h.blendMode&&kc(t.previousState.averageIPScalarMode,h.averageIPScalarMode)&&kc(t.previousState.proportionalComponents,h.proportionalComponents)?!!(0===n.getProgram()||s||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||!!t.lastZBufferTexture!=!!t.zBufferTexture||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(o.isAttributeUsed("vertexDC")&&(n.getVAO().addAttributeArray(o,n.getCABO(),"vertexDC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in shader VAO.")),n.getAttributeUpdateTime().modified()),o.setUniformi("texture1",t.scalarTexture.getTextureUnit()),o.setUniformf("sampleDistance",t.renderable.getSampleDistance()),null!==t.zBufferTexture){o.setUniformi("zBufferTexture",t.zBufferTexture.getTextureUnit());var i=e.getRenderTargetSize();o.setUniformf("vpWidth",i[0]),o.setUniformf("vpHeight",i[1])}},e.setCameraShaderParameters=function(n,r,s){var l=t.openGLCamera.getKeyMatrices(r),c=t.openGLVolume.getKeyMatrices();o.multiply(t.modelToView,l.wcvc,c.mcwc);var u=n.getProgram(),d=t.openGLCamera.getRenderable(),f=d.getClippingRange();u.setUniformf("camThick",f[1]-f[0]),u.setUniformf("camNear",f[0]),u.setUniformf("camFar",f[1]);for(var p=t.currentInput.getBounds(),g=t.currentInput.getDimensions(),m=new Float64Array(3),v=new Float64Array(3),h=1,y=-1,b=1,T=-1,C=0;C<8;++C){if(i.set(m,p[C%2],p[2+Math.floor(C/2)%2],p[4+Math.floor(C/4)]),i.transformMat4(m,m,t.modelToView),!d.getParallelProjection()){i.normalize(v,m);var S=-f[0]/m[2];i.scale(m,v,S)}i.transformMat4(m,m,l.vcpc),h=Math.min(m[0],h),y=Math.max(m[0],y),b=Math.min(m[1],b),T=Math.max(m[1],T)}u.setUniformf("dcxmin",h),u.setUniformf("dcxmax",y),u.setUniformf("dcymin",b),u.setUniformf("dcymax",T),u.isUniformUsed("cameraParallel")&&u.setUniformi("cameraParallel",d.getParallelProjection());var P=t.currentInput.getExtent(),w=t.currentInput.getSpacing(),x=new Float64Array(3);i.set(x,(P[1]-P[0]+1)*w[0],(P[3]-P[2]+1)*w[1],(P[5]-P[4]+1)*w[2]),u.setUniform3f("vSpacing",w[0],w[1],w[2]),i.set(m,P[0],P[2],P[4]),t.currentInput.indexToWorldVec3(m,m),i.transformMat4(m,m,t.modelToView),u.setUniform3f("vOriginVC",m[0],m[1],m[2]);var O=t.currentInput.getIndexToWorld();o.multiply(t.idxToView,t.modelToView,O),a.multiply(t.idxNormalMatrix,l.normalMatrix,c.normalMatrix),a.multiply(t.idxNormalMatrix,t.idxNormalMatrix,t.currentInput.getDirection());var M=i.length(x)/t.renderable.getSampleDistance();M>t.renderable.getMaximumSamplesPerRay()&&Nc("The number of steps required ".concat(Math.ceil(M)," is larger than the\n specified maximum number of steps ").concat(t.renderable.getMaximumSamplesPerRay(),".\n Please either change the\n volumeMapper sampleDistance or its maximum number of samples."));var A=new Float64Array(3);if(i.set(A,1,1,1),i.divide(A,A,x),u.setUniform3f("vVCToIJK",A[0],A[1],A[2]),u.setUniform3i("volumeDimensions",g[0],g[1],g[2]),!t.openGLRenderWindow.getWebgl2()){var I=t.scalarTexture.getVolumeInfo();u.setUniformf("texWidth",t.scalarTexture.getWidth()),u.setUniformf("texHeight",t.scalarTexture.getHeight()),u.setUniformi("xreps",I.xreps),u.setUniformi("xstride",I.xstride),u.setUniformi("ystride",I.ystride)}for(var R=new Float64Array(3),E=new Float64Array(3),D=0;D<6;++D){switch(D){default:case 0:i.set(R,1,0,0),i.set(E,P[1],P[3],P[5]);break;case 1:i.set(R,-1,0,0),i.set(E,P[0],P[2],P[4]);break;case 2:i.set(R,0,1,0),i.set(E,P[1],P[3],P[5]);break;case 3:i.set(R,0,-1,0),i.set(E,P[0],P[2],P[4]);break;case 4:i.set(R,0,0,1),i.set(E,P[1],P[3],P[5]);break;case 5:i.set(R,0,0,-1),i.set(E,P[0],P[2],P[4])}i.transformMat3(R,R,t.idxNormalMatrix),i.transformMat4(E,E,t.idxToView);var V=-1*i.dot(E,R);if(u.setUniform3f("vPlaneNormal".concat(D),R[0],R[1],R[2]),u.setUniformf("vPlaneDistance".concat(D),V),s.getProperty().getUseLabelOutline()){var L=t.currentInput.getWorldToIndex();u.setUniformMatrix("vWCtoIDX",L),o.invert(t.projectionToWorld,l.wcpc),u.setUniformMatrix("PCWCMatrix",t.projectionToWorld);var N=e.getRenderTargetSize();u.setUniformf("vpWidth",N[0]),u.setUniformf("vpHeight",N[1])}}switch(o.invert(t.projectionToView,l.vcpc),u.setUniformMatrix("PCVCMatrix",t.projectionToView),t.lastLightComplexity){default:case 0:break;case 1:case 2:case 3:var B=0,k=[];r.getLights().forEach(function(e){if(e.getSwitch()>0){var t=e.getColor(),n=e.getIntensity();k[0]=t[0]*n,k[1]=t[1]*n,k[2]=t[2]*n,u.setUniform3fArray("lightColor".concat(B),k);var r=e.getDirection();i.set(R,r[0],r[1],r[2]),i.transformMat3(R,R,l.normalMatrix),u.setUniform3f("lightDirectionVC".concat(B),R[0],R[1],R[2]);var a=[-.5*R[0],-.5*R[1],-.5*(R[2]-1)];u.setUniform3fArray("lightHalfAngleVC".concat(B),a),B++}})}},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram();a.setUniformi("ctexture",t.colorTexture.getTextureUnit()),a.setUniformi("otexture",t.opacityTexture.getTextureUnit()),a.setUniformi("jtexture",t.jitterTexture.getTextureUnit());var o=t.scalarTexture.getVolumeInfo(),i=r.getProperty(),s=t.scalarTexture.getComponents(),l=r.getProperty().getIndependentComponents();if(l&&s>=2)for(var c=0;c0&&(a.setUniformf("vAmbient",i.getAmbient()),a.setUniformf("vDiffuse",i.getDiffuse()),a.setUniformf("vSpecular",i.getSpecular()),a.setUniformf("vSpecularPower",i.getSpecularPower()))},e.getClippingPlaneShaderParameters=function(e,n,r){if(t.renderable.getClippingPlanes().length>0){for(var a=t.openGLCamera.getKeyMatrices(n),o=[],s=[],l=t.renderable.getClippingPlanes(),c=l.length,u=0;u1.43){var e=t.framebuffer.getSize();return[t.fvp[0]*e[0],t.fvp[1]*e[1]]}return t.openGLRenderWindow.getFramebufferSize()},e.renderPieceStart=function(n,r){if(t.renderable.getAutoAdjustSampleDistances()){var a=n.getVTKWindow().getInteractor(),o=a.getLastFrameTime();if(t.avgFrameTime=.97*t.avgFrameTime+.03*o,t.avgWindowArea=.97*t.avgWindowArea+.03/(t.lastXYF*t.lastXYF),n.getVTKWindow().getInteractor().isAnimating()){var i=Math.sqrt(t.avgFrameTime*a.getDesiredUpdateRate()/t.avgWindowArea);i>10&&(i=10),t.targetXYF=i}else t.targetXYF=Math.sqrt(t.avgFrameTime*a.getStillUpdateRate()/t.avgWindowArea);t.targetXYF<1.53&&t.targetXYF>1.33&&(t.targetXYF=t.lastXYF),Math.abs(1-t.targetXYF/t.lastXYF)<.1&&(t.targetXYF=t.lastXYF),t.lastXYF=t.targetXYF}else t.lastXYF=t.renderable.getImageSampleDistance();t.lastXYF<=1.43&&(t.lastXYF=1);var s=t.lastXYF,l=t.openGLRenderWindow.getFramebufferSize();if(s>1.43){if(t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer();else{var c=t.framebuffer.getSize();c[0]===Math.floor(.7*l[0])&&c[1]===Math.floor(.7*l[1])||(t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();var u=t.context;u.clearColor(0,0,0,0),u.colorMask(!0,!0,!0,!0),u.clear(u.COLOR_BUFFER_BIT),u.viewport(0,0,l[0]/s,l[1]/s),t.fvp=[Math.floor(l[0]/s)/Math.floor(.7*l[0]),Math.floor(l[1]/s)/Math.floor(.7*l[1])]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r),r.getProperty().getInterpolationType()===Cs.NEAREST?(t.scalarTexture.setMinificationFilter(ql.NEAREST),t.scalarTexture.setMagnificationFilter(ql.NEAREST)):(t.scalarTexture.setMinificationFilter(ql.LINEAR),t.scalarTexture.setMagnificationFilter(ql.LINEAR)),t.lastBoundBO=null,null!==t.zBufferTexture&&t.zBufferTexture.activate()},e.renderPieceDraw=function(n,r){var a=t.context;t.scalarTexture.activate(),t.opacityTexture.activate(),t.colorTexture.activate(),t.jitterTexture.activate(),e.updateShaders(t.tris,n,r),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.scalarTexture.deactivate(),t.colorTexture.deactivate(),t.opacityTexture.deactivate(),t.jitterTexture.deactivate()},e.renderPieceFinish=function(e,n){if(null!==t.zBufferTexture&&t.zBufferTexture.deactivate(),t.lastXYF>1.43){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t.openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join("\n"),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join("\n"),"");var r=t.copyShader;t.copyVAO=Wl.newInstance(),t.copyVAO.setOpenGLRenderWindow(t.openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(r,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in copy shader VAO.")}else t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);var a=t.openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,a[0],a[1]);var o=t.framebuffer.getColorTexture();o.activate(),t.copyShader.setUniformi("texture",o.getTextureUnit()),t.copyShader.setUniform2f("tfactor",t.fvp[0],t.fvp[1]);var i=t.context;i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),o.deactivate(),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=function(n,r){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):Bc("No input!")},e.computeBounds=function(n,r){e.getInput()?t.bounds=e.getInput().getBounds():we(t.Bounds)},e.updateBufferObjects=function(t,n){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=function(n,r){return t.VBOBuildTime.getMTime()1?1:-1,I[3*R+2]=-1;var E=new Uint16Array(8);E[0]=3,E[1]=0,E[2]=1,E[3]=3,E[4]=3,E[5]=0,E[6]=3,E[7]=2;var D=Qe.newInstance({numberOfComponents:3,values:I});D.setName("points");var V=Qe.newInstance({numberOfComponents:1,values:E});t.tris.getCABO().createVBO(V,"polys",Ol.SURFACE,{points:D,cellOffset:0})}t.VBOBuildTime.modified()}}}}var Gc={context:null,VBOBuildTime:null,scalarTexture:null,scalarTextureString:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lastLightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function _c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gc,n),Js.extend(e,t,n),t.VBOBuildTime={},f.g(t.VBOBuildTime,{mtime:0}),t.tris=Kl.newInstance(),t.scalarTexture=sc.newInstance(),t.opacityTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.jitterTexture=sc.newInstance(),t.jitterTexture.setWrapS(Xl.REPEAT),t.jitterTexture.setWrapT(Xl.REPEAT),t.framebuffer=Ac.newInstance(),t.idxToView=o.identity(new Float64Array(16)),t.idxNormalMatrix=a.identity(new Float64Array(9)),t.modelToView=o.identity(new Float64Array(16)),t.projectionToView=o.identity(new Float64Array(16)),t.projectionToWorld=o.identity(new Float64Array(16)),f.i(e,t,["context"]),Fc(e,t)}var Uc=f.d(_c,"vtkOpenGLVolumeMapper");al("vtkVolumeMapper",Uc);var jc=f.k;var Wc={};function zc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wc,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent();var a=t.openGLRenderer.getAspectRatio(),o=t.openGLRenderer?t.openGLRenderer.getRenderable().getActiveCamera():null,i=t.openGLRenderer.getTiledSizeAndOrigin(),s=null;if(t.renderable.getUseZValues()){var l=r.getZBufferTexture(),c=Math.floor(l.getWidth()),u=Math.floor(l.getHeight()),d=t.openGLRenderWindow.getContext();l.bind();var f=r.getFramebuffer();f?f.saveCurrentBindingsAndBuffers():jc("No framebuffer to save/restore");var p=d.createFramebuffer();d.bindFramebuffer(d.FRAMEBUFFER,p),d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,l.getHandle(),0),d.checkFramebufferStatus(d.FRAMEBUFFER)===d.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(c*u*4),d.viewport(0,0,c,u),d.readPixels(0,0,c,u,d.RGBA,d.UNSIGNED_BYTE,s)),f&&f.restorePreviousBindingsAndBuffers(),d.deleteFramebuffer(p)}t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,s)},e.queryPass=function(e,n){e&&t.renderable.getUseZValues()&&n.requestDepth()}}(e,t)}var Hc=f.d(zc,"vtkOpenGLPixelSpaceCallbackMapper");al("vtkPixelSpaceCallbackMapper",Hc);var Kc=Object.create(null);function Xc(e,t){Kc[e]=t}var qc={};function Yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),t.overrides=Kc,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}(0,t)}f.a.newInstance(Yc,"vtkWebGPUViewNodeFactory");var Zc={keyMatrixTime:null,keyMatrices:null};function Qc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.a.obj(t.keyMatrixTime),t.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)},f.a.setGet(e,t,["keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getKeyMatrices=function(n){var r=n.getRenderable(),a=n.getParent();if(Math.max(a.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime().getMTime())>t.keyMatrixTime.getMTime()){var i=t.renderable.getViewMatrix();o.copy(t.keyMatrices.normalMatrix,i),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,i);var s=n.getStabilizedCenterByReference();o.translate(t.keyMatrices.scvc,t.keyMatrices.wcvc,s);var l=n.getAspectRatio(),c=t.renderable.getProjectionMatrix(l,-1,1);o.transpose(t.keyMatrices.vcpc,c),t.keyMatrices.vcpc[2]=.5*c[8]+.5*c[12],t.keyMatrices.vcpc[6]=.5*c[9]+.5*c[13],t.keyMatrices.vcpc[10]=.5*c[10]+.5*c[14],t.keyMatrices.vcpc[14]=.5*c[11]+.5*c[15],o.multiply(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),o.invert(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}(e,t)}var $c=f.a.newInstance(Qc);Xc("vtkCamera",$c);var Jc={device:null,handle:null,name:null};function eu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jc,n),f.a.obj(e,t),t.bindables=[],t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),f.a.setGet(e,t,["name","device","arrayInformation","sourceTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.addBindable=function(n){for(var r=0;rr?o:r}if(r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nu,n),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=function(e,n){t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var au={newInstance:f.a.newInstance(ru,"vtkWebGPUShaderModule"),extend:ru};var ou={shaderModules:null,device:null,window:null};function iu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ou,n),t._shaderModules=new Map,f.a.obj(e,t),f.a.setGet(e,t,["device","window"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=function(e){for(var n=e.getType(),r=e.getHash(),a=t._shaderModules.keys(),o=0;o3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var lu={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null};function cu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),f.g(e,t),t.layouts=[],t.shaderDescriptions=[],f.b(e,t,["handle"]),f.i(e,t,["device","renderEncoder","topology","vertexState"]),function(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=function(){return t.shaderDescriptions},e.initialize=function(e){var n=t.renderEncoder.getPipelineSettings();n.primitive.topology=t.topology,n.vertex=t.vertexState;for(var r=[],a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,du,n),t.outputNames=[],t.outputTypes=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],f.a.obj(e,t),f.a.setGet(e,t,["type","hash","code"]),f.a.getArray(e,t,["outputTypes","outputNames"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=function(e){return t.outputNames.includes(e)},e.addOutput=function(e,n){t.outputTypes.push(e),t.outputNames.push(n)},e.addBuiltinOutput=function(e,n){t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=function(e,n){t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=function(e,n){var r=[],a=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){var o=[];if(o.push("struct ".concat(t.type,"Input\n{")),e)for(var i=e.getOutputNamesByReference(),s=e.getOutputTypesByReference(),l=0;l1&&(o.push("};"),a=o,r[r.length-1]+=",",r.push("input: ".concat(t.type,"Input")))}if(r.length&&(t.code=su.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){for(var u=["struct ".concat(t.type,"Output\n{")],d=0;d ".concat(t.type,"Output")]).result}t.code=su.substitute(t.code,"//VTK::IOStructs::Dec",a).result}}(e,t)}var pu={newInstance:f.a.newInstance(fu,"vtkWebGPUShaderDescription"),extend:fu};var gu={getByteStrideFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;"x"===e[e.length-2]&&(t=e[e.length-1]);var n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Object(f.l)("unknown format ".concat(e)),0):t*(5-r/2)},getNativeTypeFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Object(f.l)("unknown format ".concat(e));t="Uint"}var n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array";Object(f.l)("unknown format ".concat(e))},getShaderTypeFromBufferFormat:function(e){var t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Object(f.l)("unknown format ".concat(e));t="u32"}var n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?"vec4<".concat(t,">"):3===n?"vec3<".concat(t,">"):2===n?"vec2<".concat(t,">"):t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;var t=1;return"vec"===e.substring(0,3)?t=e[3]:"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Object(f.l)("unknown format ".concat(e))}};function mu(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vu,n),f.g(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],f.i(e,t,["created","device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUVertexInput"),e.addBuffer=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vertex",a=n;Array.isArray(a)||(a=[a]);for(var o=0;ot.names[0]?1:0})},e.removeBufferIfPresent=function(e){for(var n=0;n0&&(e+=",\n"),e="".concat(e," [[location(").concat(n,")]] ").concat(t.inputs[r].names[a]," : ").concat(i),n++}return e},e.getVertexInputInformation=function(){var e={};if(t.inputs.length){for(var n=[],r=0,a=0;a = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Tu="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Cu={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 Su(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cu,n),f.a.obj(e,t),t.textureViews=[],t.vertexInput=yu.newInstance(),t.bindGroup=tu.newInstance(),t.bindGroup.setName("mapperBG"),t.fragmentShaderTemplate=t.fragmentShaderTemplate||Tu,t.vertexShaderTemplate=t.vertexShaderTemplate||bu,t.shaderReplacements=new Map,f.a.get(e,t,["vertexInput"]),f.a.setGet(e,t,["device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),function(e,t){t.classHierarchy.push("vtkWebGPUMapperHelper"),e.generateShaderDescriptions=function(n,r,a){var o=pu.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=pu.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(o),s.push(i);for(var l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return"replaceShader".concat(e.substring(7,e.length-2))}),d=0;d","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,t,n){t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=function(e){t.textureViews.includes(e)||t.textureViews.push(e)},e.renderForPipeline=function(e){var n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),n.bindVertexInput(e,t.vertexInput),e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.registerToDraw=function(){t.pipeline&&t.WebGPURenderer.registerPipelineCallback(t.pipeline,e.renderForPipeline)},e.render=function(n,r){e.build(n,r),n.setPipeline(t.pipeline),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(n),e.renderForPipeline(n)},e.build=function(n,r){t.renderEncoder=n,t.pipeline=r.getPipeline(t.pipelineHash),t.UBO&&t.bindGroup.addBindable(t.UBO),t.SSBO&&t.bindGroup.addBindable(t.SSBO);for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wu,n),Pu.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition);var n=e.build;e.build=function(e,r){var a=r.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(a,["vertexBC"]),t.numberOfVertices=6,n(e,r)}}(e,t)}var Ou={newInstance:f.a.newInstance(xu,"vtkWebGPUFullScreenQuad"),extend:xu},Mu={BufferUsage:{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},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};function Au(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ru=["getMappedRange","mapAsync","unmap"];function Eu(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e,usage:n}),t.sizeInBytes=e,t.usage=n},e.write=function(e){!function(e,t,n,r){var a=r.byteLength,o=e.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=o.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(r)),o.unmap();var s=e.createCommandEncoder();s.copyBufferToBuffer(o,0,t,n,a);var l=s.finish();e.queue.submit([l]),o.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(var n=function(n){e[Ru[n]]=function(){var e;return(e=t.handle)[Ru[n]].apply(e,arguments)}},r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Du,n),f.a.obj(e,t),f.a.get(e,t,["handle","sizeInBytes","usage"]),f.a.setGet(e,t,["strideInBytes","device","arrayInformation","sourceTime"]),Eu(e,t)}var Lu=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_u,n),f.a.obj(e,t),f.a.setGet(e,t,["lighting","interpolation","ambient","diffuse","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation"]),f.a.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),function(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=function(n,r,a){Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===a||(t.color[0]=n,t.color[1]=r,t.color[2]=a,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=Gu("ComputeCompositeColor"),e.getColor=function(){var e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(var n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.addShaderVariable=Gu("AddShaderVariable"),e.setInterpolationToFlat=function(){return e.setInterpolation(Fu.FLAT)},e.setInterpolationToGouraud=function(){return e.setInterpolation(Fu.GOURAUD)},e.setInterpolationToPhong=function(){return e.setInterpolation(Fu.PHONG)},e.getInterpolationAsString=function(){return f.a.enumToString(Fu,t.interpolation)},e.setRepresentationToWireframe=function(){return e.setRepresentation(ku.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(ku.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(ku.POINTS)},e.getRepresentationAsString=function(){return f.a.enumToString(ku,t.representation)}}(e,t)}var ju=function(e){for(var t=1;t1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return numPoints>2?3*(e-2):0}};function $u(e){switch(e){case Xu.Points:return"points";case Xu.Lines:return"lines";case Xu.Triangles:return"polys";case Xu.TriangleStrips:return"strips";default:return""}}function Ju(e,t,n){var r=null;r=t===qu.POINTS||"points"===n?Qu.anythingToPoints:t===qu.WIREFRAME||"lines"===n?Qu["".concat(n,"ToWireframe")]:Qu["".concat(n,"ToSurface")];for(var a=e.getData(),o=a.length,i=0,s=0;s2)for(var a=0;a2){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nd,n),f.g(e,t),t.buffers=new WeakMap,f.i(e,t,["device"]),td(e,t)}var ad=zu(zu({newInstance:f.d(rd),extend:rd},{}),Mu);function od(e){return function(e){if(Array.isArray(e))return id(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return id(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return id(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function id(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cd,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},f.a.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,f.a.get(e,t,["binding","bindGroupTime"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=function(e,n){t._bufferEntryNames.has(e)?ld("entry named ".concat(e," already exists")):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gu.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gu.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=function(){if(t.sortDirty){for(var e=0,n=[],r=0;r4&&(C.packed=!0,C.offset=e,n.push(C),e+=C.sizeInBytes)}for(var S=0;S ").concat(t.name,": ").concat(t.name,"Struct;")),a.join("\n")}}(e,t)}var dd={newInstance:f.a.newInstance(ud,"vtkWebGPUUniformBuffer"),extend:ud},fd=f.k,pd="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var gd={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gd,n),Js.extend(e,t,n),t.UBO=dd.newInstance(),t.UBO.setName("rendererUBO"),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("cameraParallel","u32"),t.bindGroup=tu.newInstance(),t.bindGroup.setName("rendererBG"),t.bindGroup.addBindable(t.UBO),t.tmpMat4=o.identity(new Float64Array(16)),t.stabilizedTime={},f.g(t.stabilizedTime,{mtime:0}),f.b(e,t,["bindGroup","stabilizedTime"]),f.c(e,t,["stabilizedCenter"]),f.i(e,t,["renderEncoder","selector","suppressClear","UBO"]),function(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=function(){var e=t.renderable.getActiveCamera(),n=e.getClippingRange(),r=e.getPositionByReference(),a=e.getDirectionOfProjectionByReference(),o=[],s=[];i.scale(s,a,.5*(n[0]+n[1])),i.add(o,r,s),i.sub(s,o,t.stabilizedCenter),i.len(s)/(n[1]-n[0])>t.recenterThreshold&&(t.stabilizedCenter=o,t.stabilizedTime.modified())},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(fd("No lights are on, creating one."),t.renderable.createLight()),e},e.registerPipelineCallback=function(e,n){for(var r=0;ra||e.getMTime()>a||n.getMTime()>a||t.renderable.getMTime()>a){var o=r.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",o.wcvc),t.UBO.setArray("SCPCMatrix",o.scpc),t.UBO.setArray("PCSCMatrix",o.pcsc),t.UBO.setArray("SCVCMatrix",o.scvc),t.UBO.setArray("VCPCMatrix",o.vcpc),t.UBO.setArray("WCVCNormals",o.normalMatrix),t.UBO.setValue("cameraParallel",n.getParallelProjection());var i=t.parent.getDevice();t.UBO.sendIfNeeded(i)}},e.scissorAndViewport=function(t){var n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=function(e){e.activateBindGroup(t.bindGroup)},e.opaquePass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder()),e.updateUBO();else{e.scissorAndViewport(t.renderEncoder),e.clear();for(var r=0;r"),t.clearFSQ.setUBO(n)}var r=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",r),t.clearFSQ.getUBO().sendIfNeeded(e),t.clearFSQ.render(t.renderEncoder,e)}},e.translucentPass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder());else{e.scissorAndViewport(t.renderEncoder);for(var r=0;rn[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hd,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(n,r){if(n){if(!t.renderable||!t.renderable.getVisibility())return;var a=t.renderable.getMapper().getBounds();if(!a||6!==a.length||a[0]>a[1])return;r.addVolume(e)}},e.getBoundingCubePoints=function(e,n){for(var r=t.renderable.getMapper().getBounds(),a=t.renderable.getMatrix(),o=0,i=4;i<6;i++)for(var s=r[i],l=2;l<4;l++)for(var c=r[l],u=0;u<2;u++){var d=r[u],f=n+3*o;e[f++]=a[0]*d+a[1]*c+a[2]*s+a[3],e[f++]=a[4]*d+a[5]*c+a[6]*s+a[7],e[f++]=a[8]*d+a[9]*c+a[10]*s+a[11],o++}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();o.transpose(t.keyMatrices.bcwc,n),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var bd=f.a.newInstance(yd,"vtkWebGPUVolume");Xc("vtkVolume",bd);var Td={};function Cd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Td,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();var a=t.WebGPURenderer.getAspectRatio(),o=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,null)}}(e,t)}var Sd=f.a.newInstance(Cd,"vtkWebGPUPixelSpaceCallbackMapper");Xc("vtkPixelSpaceCallbackMapper",Sd);var Pd={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function wd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pd,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=function(n){if(n){t.openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t.openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var r=0;rt.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?a.identity(t.keyMatrices.normalMatrix):(a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),a.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var xd=f.d(wd);al("vtkActor",xd);var Od={context:null,activeTextures:[]};function Md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Od,n),Js.extend(e,t,n),f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.activateTextures=function(){t.activeTextures=[],t.children.forEach(function(e){e.isA("vtkOpenGLTexture")&&(e.render(),e.getHandle()&&t.activeTextures.push(e))})},e.opaquePass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0),e.activateTextures()):t.activeTextures.forEach(function(e){e.deactivate()})},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1),e.activateTextures()):(t.activeTextures.forEach(function(e){e.deactivate()}),t.context.depthMask(!0))}}(e,t)}var Ad=f.d(Md);al("vtkActor2D",Ad);var Id={bounds:[1,-1,1,-1,1,-1],center:[0,0,0]};var Rd={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Id,n),Gs.extend(e,t,n),t.bounds||we(t.bounds),t.center||(t.center=[0,0,0]),function(e,t){e.getBounds=function(){return 0},e.getBounds=function(n){e.getBounds();for(var r=0;r<6;r++)n[r]=t.bounds[r]},e.getCenter=function(){e.getBounds();for(var n=0;n<3;n++)t.center[n]=(t.bounds[2*n+1]+t.bounds[2*n])/2;return t.center.slice()},e.getLength=function(){var n=0,r=0;e.getBounds();for(var a=0;a<3;a++)r+=(n=t.bounds[2*a+1]-t.bounds[2*a])*n;return Math.sqrt(r)},e.getClippingPlaneInDataCoords=function(e,n,r){var a=t.clippingPlanes,o=e;if(a){var i=a.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nd,n),ts.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},f.a.obj(t.buildTime),t.opaqueFlagBuildTime={},f.a.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},f.a.obj(t.insertTime,{mtime:0}),f.a.get(e,t,["buildTime"]),f.a.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),f.a.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=function(){if(t.opaqueFlagBuildTime.getMTime()t.range[1]?t.maxIndex+Vd+1.5:(n=(e+t.shift)*t.scale)e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=function(n,r,a,o){var i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);var s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);var c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),f=r.getData(),p=n.getData();if(c>=1){if(a===_i.RGBA)for(var g=0;gt.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&t.insertTime.modified()}(e,t)}var kd={newInstance:f.a.newInstance(Bd,"vtkLookupTable"),extend:Bd},Fd=1,Gd=0,_d=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function Ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Gd=e}var jd={getResolveCoincidentTopologyAsString:function(){return _d[Gd]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Fd},getResolveCoincidentTopology:function(){return Gd},setResolveCoincidentTopology:Ud,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){Fd=e},setResolveCoincidentTopologyToDefault:function(){Ud(0)},setResolveCoincidentTopologyToOff:function(){Ud(0)},setResolveCoincidentTopologyToPolygonOffset:function(){Ud(1)}};function Wd(e,t,n){n.forEach(function(n){e["get".concat(n.method)]=function(){return t[n.key]},e["set".concat(n.method)]=function(e,r){t[n.key]={factor:e,offset:r}}})}var zd=["Polygon","Line","Point"],Hd={};Wd(Hd,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},zd.map(function(e){return{key:e,method:"ResolveCoincidentTopology".concat(e,"OffsetParameters")}}));var Kd={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),f.a.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(jd).forEach(function(t){e[t]=jd[t]}),Object.keys(Hd).forEach(function(t){e[t]=Hd[t]}),Wd(e,t.topologyOffset,zd.map(function(e){return{key:e,method:"RelativeCoincidentTopology".concat(e,"OffsetParameters")}})),e.getCoincidentTopologyPolygonOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=function(){var t=Hd.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Hd,otherStaticMethods:jd,CATEGORIES:zd};function Xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qd(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),Rd.extend(e,t,n),f.a.get(e,t,["colorCoordinates","colorMapColors","colorTextureMap"]),f.a.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),f.a.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Kd.implementCoincidentTopologyMethods(e,t),function(e,t){t.classHierarchy.push("vtkMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.setForceCompileOnly=function(e){t.forceCompileOnly=e},e.createDefaultLookupTable=function(){t.lookupTable=kd.newInstance()},e.getColorModeAsString=function(){return f.a.enumToString($d,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return f.a.enumToString(Jd,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,n,r,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(n===Jd.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(n===Jd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Jd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Jd.USE_POINT_FIELD_DATA){var l=e.getPointData();i=r===ef.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(n===Jd.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=r===ef.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(n===Jd.USE_FIELD_DATA){var u=e.getFieldData();i=r===ef.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.mapScalars=function(n,r){var a=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!a)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);var o="".concat(e.getMTime()).concat(a.getMTime()).concat(r);if(t.colorBuildString!==o){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(n))e.mapScalarsToTexture(a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,-1))}t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(r)}},e.scalarToTextureCoordinate=function(e,t,n){var r=.5,a=1;return Le(e)||(a=.49,(r=(e-t)*n)>1e3?r=1e3:r<-1e3&&(r=-1e3)),{texCoordS:r,texCoordT:a}},e.createColorTextureCoordinates=function(t,n,r,a,o,i,s,l,c){var u=(i[1]-i[0])/l,d=[];d[0]=i[0]-u,d[1]=i[1]+u;var f=1/(d[1]-d[0]),p=n.getData(),g=t.getData(),m=0,v=0;if(o<0||o>=a)for(var h=0;ht.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==r){t.lookupTable.setAlpha(r),t.colorTextureMap=null,t.lookupTable.build();var s=t.lookupTable.getNumberOfAvailableColors();s>4094&&(s=4094),s+=2;for(var l=(a[1]-a[0])/(s-1-2),c=new Float64Array(2*s),u=0;ut.colorCoordinates.getMTime()||e.getInputData(0).getMTime()>t.colorCoordinates.getMTime()||t.lookupTable.getMTime()>t.colorCoordinates.getMTime()){t.colorCoordinates=null;var p=n.getNumberOfComponents(),g=n.getNumberOfTuples();t.colorCoordinates=Qe.newInstance({numberOfComponents:2,values:new Float32Array(2*g)});var m=t.lookupTable.getVectorComponent();t.lookupTable.getVectorMode()===tf.MAGNITUDE&&n.getNumberOfComponents()>1&&(m=-1),e.createColorTextureCoordinates(n,t.colorCoordinates,g,p,m,a,t.lookupTable.getRange(),t.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,o)}},e.getIsOpaque=function(){var t=e.getLookupTable();return!t||(t.build(),t.isOpaque())},e.canUseTextureMapForColoring=function(n){if(!t.interpolateScalarsBeforeMapping)return!1;if(t.lookupTable&&t.lookupTable.getIndexedLookup())return!1;var r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName),a=r.scalars;return!(!a||r.cellFlag||t.colorMode===$d.DEFAULT&&a.getDataType()===nf.UNSIGNED_CHAR||t.colorMode===$d.DIRECT_SCALARS)},e.clearColorArrays=function(){t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=function(){var t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells()}},e.acquireInvertibleLookupTable=rf("AcquireInvertibleLookupTable"),e.valueToColor=rf("ValueToColor"),e.colorToValue=rf("ColorToValue"),e.useInvertibleColorFor=rf("UseInvertibleColorFor"),e.clearInvertibleColor=rf("ClearInvertibleColor")}(e,t)}var sf=qd(qd(qd({newInstance:f.a.newInstance(of,"vtkMapper"),extend:of},Zd),Qd),Wi);function lf(e){return function(e){if(Array.isArray(e))return cf(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return cf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bf,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.primitives=[],t.primTypes=uf,t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16));for(var r=uf.Start;r= cos(radians(lightConeAngle".concat(d,")))")," {"," attenuation = attenuation * pow(coneDot, lightExponent".concat(d,");")," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));"," diffuseL += ((df".concat("",") * lightColor").concat(d,");")," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {"," float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC".concat(d,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(d,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=_l.substitute(a,"//VTK::Light::Impl",s,!1).result;break;default:vf("bad light complexity")}e.Fragment=a},e.replaceShaderNormal=function(n,r,a){if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var o=n.Vertex,i=n.Geometry,s=n.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,i=_l.substitute(i,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,i=_l.substitute(i,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,s=_l.substitute(s,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.getOpenGLMode(a.getProperty().getRepresentation(),t.lastBoundBO.getPrimitiveType())===t.context.LINES?(s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));"," vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," fdx = normalize(fdx);"," fdy = normalize(fdy);"," if (abs(fdx.x) > 0.0)"," { normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//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),n.Vertex=o,n.Geometry=i,n.Fragment=s}},e.replaceShaderPositionVC=function(e,n,r){var a=e.Vertex,o=e.Geometry,i=e.Fragment;r.getProperty().getRepresentation()!==df.POINTS&&t.lastBoundBO.getPrimitiveType()!==uf.Points||(a=_l.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = ".concat(r.getProperty().getPointSize(),".0;")],!1).result),t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=_l.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=_l.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=_l.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,n,r){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment;if(t.drawingEdges)return;a=_l.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;var s=t.openGLActor.getActiveTextures(),l=2,c=2;if(s&&s.length>0&&(l=s[0].getComponents(),s[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(c=3)),t.renderable.getColorTextureMap()&&(l=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),c=2),2===c){if(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,s&&s.length>=1)switch(l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*texture2D(texture1, tcoordVCVSOutput.st);").result}}else switch(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*textureCube(texture1, tcoordVCVSOutput);").result}e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderClip=function(e,n,r){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6),a=_l.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=_l.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=_l.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,o=_l.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getCoincidentParameters=function(e,n){var r=null,a=n.getProperty();if(t.renderable.getResolveCoincidentTopology()||a.getEdgeVisibility()&&a.getRepresentation()===df.SURFACE){var o=t.lastBoundBO.getPrimitiveType();o===uf.Points||a.getRepresentation()===df.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():o===uf.Lines||a.getRepresentation()===df.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():o!==uf.Tris&&o!==uf.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),o!==uf.TrisEdges&&o!==uf.TriStripsEdges||((r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()).factor/=2,r.offset/=2)}return r},e.replaceShaderPicking=function(e,t,n){var r=e.Fragment;r=_l.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=_l.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderValues=function(n,r,a){if(e.replaceShaderColor(n,r,a),e.replaceShaderNormal(n,r,a),e.replaceShaderLight(n,r,a),e.replaceShaderTCoord(n,r,a),e.replaceShaderPicking(n,r,a),e.replaceShaderClip(n,r,a),e.replaceShaderCoincidentOffset(n,r,a),e.replaceShaderPositionVC(n,r,a),t.haveSeenDepthRequest){var o=n.Fragment;o=_l.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=_l.substitute(o,"//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,n.Fragment=o}},e.getNeedToRebuildShaders=function(n,r,a){var o=0,i=0,s=n.getPrimitiveType(),l=t.currentInput,c=!1,u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),f=a.getProperty().getInterpolation()===ff.FLAT,p=a.getProperty().getRepresentation(),g=e.getOpenGLMode(p,s);if(g===t.context.TRIANGLES?c=!0:d&&!u?c=!0:!f&&u?c=!0:f||g!==t.context.LINES||(c=!0),a.getProperty().getLighting()&&c){o=0;for(var m=r.getLightsByReference(),v=0;v0&&(i++,0===o&&(o=1)),1===o&&(i>1||1!==h.getIntensity()||!h.lightTypeIsHeadLight())&&(o=2),o<3&&h.getPositional()&&(o=3)}}var y=!1,b=t.lastBoundBO.getReferenceByName("lastLightComplexity"),T=t.lastBoundBO.getReferenceByName("lastLightCount");return b===o&&T===i||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:i},!0),y=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===n.getProgram()||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){var o=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&o>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(function(e,r){n.getProgram().isAttributeUsed("".concat(e,"MC"))&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"".concat(e,"MC"),n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||vf("Error setting ".concat(e,"MC in shader VAO.")))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||vf("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||vf("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6);for(var s=[],l=0;l0){var f=d.getColorByReference(),p=d.getIntensity();t.lightColor[0]=f[0]*p,t.lightColor[1]=f[1]*p,t.lightColor[2]=f[2]*p;var g=d.getDirection(),m=n.getActiveCamera().getViewMatrix(),v=lf(g);d.lightTypeIsSceneLight()&&(v[0]=m[0]*g[0]+m[1]*g[1]+m[2]*g[2],v[1]=m[4]*g[0]+m[5]*g[1]+m[6]*g[2],v[2]=m[8]*g[0]+m[9]*g[1]+m[10]*g[2],K(v)),t.lightDirection[0]=v[0],t.lightDirection[1]=v[1],t.lightDirection[2]=v[2],t.lightHalfAngle[0]=-t.lightDirection[0],t.lightHalfAngle[1]=-t.lightDirection[1],t.lightHalfAngle[2]=1-t.lightDirection[2],K(t.lightDirection),s.setUniform3fArray("lightColor".concat(l),t.lightColor),s.setUniform3fArray("lightDirectionVC".concat(l),t.lightDirection),s.setUniform3fArray("lightHalfAngleVC".concat(l),t.lightHalfAngle),l++}}if(!(a<3)){var h=n.getActiveCamera().getViewMatrix();o.transpose(h,h),l=0;for(var y=0;y0){var T=b.getTransformedPosition(),C=new Float64Array(3);i.transformMat4(C,T,h),s.setUniform3fArray("lightAttenuation".concat(l),b.getAttenuationValuesByReference()),s.setUniformi("lightPositional".concat(l),b.getPositional()),s.setUniformf("lightExponent".concat(l),b.getExponent()),s.setUniformf("lightConeAngle".concat(l),b.getConeAngle()),s.setUniform3fArray("lightPositionVC".concat(l),[C[0],C[1],C[2]]),l++}}}}},e.setCameraShaderParameters=function(e,r,i){var s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(r),c=r.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,p=i.getIsIdentity(),g=p?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();s.setUniformMatrix("MCPCMatrix",n([l.wcpc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,g.normalMatrix],a,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),p||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram(),o=r.getProperty(),i=o.getOpacity(),s=t.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),l=t.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),c=t.drawingEdges?1:o.getAmbient(),u=t.drawingEdges?0:o.getDiffuse(),d=t.drawingEdges?0:o.getSpecular(),f=o.getSpecularPower();a.setUniformf("opacityUniform",i),a.setUniform3fArray("ambientColorUniform",s),a.setUniform3fArray("diffuseColorUniform",l),a.setUniformf("ambient",c),a.setUniformf("diffuse",u);var p=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(p<1)){var g=o.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",g),a.setUniformf("specularPowerUniform",f),a.isUniformUsed("ambientIntensityBF")){if(i=(o=r.getBackfaceProperty()).getOpacity(),s=o.getAmbientColor(),c=o.getAmbient(),l=o.getDiffuseColor(),u=o.getDiffuse(),g=o.getSpecularColor(),d=o.getSpecular(),a.setUniformf("ambientIntensityBF",c),a.setUniformf("diffuseIntensityBF",u),a.setUniformf("opacityUniformBF",i),a.setUniform3fArray("ambientColorUniformBF",s),a.setUniform3fArray("diffuseColorUniformBF",l),p<1)return;a.setUniformf("specularIntensityBF",d),a.setUniform3fArray("specularColorUniformBF",g),a.setUniformf("specularPowerUniformBF",f)}}},e.renderPieceStart=function(n,r){t.primitiveIDOffset=0,t.openGLRenderer.getSelector()&&(t.openGLRenderer.getSelector().getCurrentPass(),t.openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=function(n,r){var a=r.getProperty().getRepresentation(),o=t.context,i=r.getProperty().getEdgeVisibility()&&a===df.SURFACE;o.lineWidth(r.getProperty().getLineWidth());for(var s=uf.Start;s2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Js.extend(e,t,n),t.openGLTexture=sc.newInstance(),t.tris=Kl.newInstance(),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=function(n){if(n){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera())}},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=function(n,r){if(n&&!t.openGLRenderer.getSelector()){e.updateBufferObjects(),t.openGLRenderWindow.enableDepthMask(),t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t.openGLRenderWindow);var a=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",a);var i=t.openGLRenderer.getRenderable(),s=t.openGLCamera.getKeyMatrices(i),l=new Float64Array(16);if(o.invert(l,s.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",l),"box"===t.lastFormat){var c=i.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=function(){if(!t.tris.getCABO().getElementCount()){for(var e=new Float32Array(12),n=0;n<4;n++)e[3*n]=n%2*2-1,e[3*n+1]=n>1?1:-1,e[3*n+2]=1;var r=Qe.newInstance({numberOfComponents:3,values:e});r.setName("points");var a=new Uint16Array(8);a[0]=3,a[1]=0,a[2]=1,a[3]=3,a[4]=3,a[5]=0,a[6]=3,a[7]=2;var o=Qe.newInstance({numberOfComponents:1,values:a});t.tris.getCABO().createVBO(o,"polys",Ol.SURFACE,{points:r,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Pf("Error setting vertexMC in shader VAO."));var i=t.renderable.getTextures();i.length||Pf("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==i[0]&&(t.openGLTexture.releaseGraphicsResources(t.openGLRenderWindow),t.openGLTexture.setRenderable(i[0]))}}(e,t)}var Of=f.d(xf);al("vtkSkybox",Of);var Mf={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Af(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mf,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=function(n){n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=function(n){return e.getKeyMatrices(n),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();t.bufferShift[0]=n[3]-r[0],t.bufferShift[1]=n[7]-r[1],t.bufferShift[2]=n[11]-r[2],o.transpose(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?o.identity(t.keyMatrices.normalMatrix):(o.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),o.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var If=f.a.newInstance(Af);Xc("vtkActor",If);var Rf={repeat:!1,interpolate:!1,edgeClamp:!1,image:null,imageLoaded:!1};function Ef(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rf,n),f.a.obj(e,t),f.a.algo(e,t,6,0),f.a.get(e,t,["imageLoaded"]),f.a.setGet(e,t,["repeat","edgeClamp","interpolate","image"]),function(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=function(){t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setImage=function(n){t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null)),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())}}(e,t)}var Df={newInstance:f.a.newInstance(Ef,"vtkTexture"),extend:Ef},Vf=ad.BufferUsage,Lf=ad.PrimitiveTypes,Nf=ju.Representation,Bf=sf.ScalarMode,kf={type:"StartEvent"},Ff={type:"EndEvent"},Gf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(vertex)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",_f="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n var computedColor: vec4 = vec4(ambientColor.rgb * mapperUBO.AmbientIntensity\n + diffuse * mapperUBO.DiffuseIntensity\n + specular * mapperUBO.SpecularIntensity,\n opacity);\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Uf={colorTexture:null,renderEncoder:null,textures:null,textureViews:null,primitives:null,tmpMat4:null,fragmentShaderTemplate:null,vertexShaderTemplate:null};function jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Uf,n),Js.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16)),t.fragmentShaderTemplate=t.fragmentShaderTemplate||_f,t.vertexShaderTemplate=t.vertexShaderTemplate||Gf,t.UBO=dd.newInstance(),t.UBO.setName("mapperUBO"),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("SpecularPower","f32"),t.UBO.addEntry("PropID","u32"),f.b(e,t,["fragmentShaderTemplate","vertexShaderTemplate","UBO"]),f.i(e,t,["renderEncoder"]),t.textures=[],t.textureViews=[],t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.buildPass=function(n){n&&(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=function(t){t&&e.render()},e.opaquePass=function(t){t&&e.render()},e.updateUBO=function(){var n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){var a=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);t.UBO.setArray("BCWCMatrix",a.bcwc),t.UBO.setArray("BCSCMatrix",a.bcsc),t.UBO.setArray("MCWCNormals",a.normalMatrix);var o=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[o[0],o[1],o[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),o=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[o[0],o[1],o[2],1]),t.UBO.setValue("SpecularIntensity",n.getSpecular()),t.UBO.setValue("SpecularPower",n.getSpecularPower()),o=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[o[0],o[1],o[2],1]),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());var i=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(i)}},e.render=function(){e.invokeEvent(kf),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Ff),t.renderEncoder=t.WebGPURenderer.getRenderEncoder(),e.buildPrimitives(),e.updateUBO()},e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,n){if(n.hasAttribute("normalMC")){var r=t.getShaderDescription("vertex");r.addOutput("vec3","normalVC");var a=r.getCode();a=su.substitute(a,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"]).result,o.setCode(a)}},e.replaceShaderLight=function(e,t,n){var r=t.getShaderDescription("fragment"),a=r.getCode();a.includes("var normal")?(a=su.substitute(a,"//VTK::Light::Impl",[" var df: f32 = max(0.0, normal.z);"," var sf: f32 = pow(df, mapperUBO.SpecularPower);"," var diffuse: vec3 = df * diffuseColor.rgb;"," var specular: vec3 = sf * mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a)):(a=su.substitute(a,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a))},e.replaceShaderColor=function(e,t,n){if(n.hasAttribute("colorVI")){var r=t.getShaderDescription("vertex");r.addOutput("vec4","color");var a=r.getCode();a=su.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,o.setCode(a)}},e.replaceShaderTCoord=function(e,n,r){if(r.hasAttribute("tcoord")){var a=n.getShaderDescription("vertex");a.addOutput("vec2","tcoordVS");var o=a.getCode();o=su.substitute(o,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,a.setCode(o);var i=n.getShaderDescription("fragment");o=i.getCode(),t.textures.length&&(o=su.substitute(o,"//VTK::TCoord::Impl",["var tcolor: vec4 = textureSample(Texture0, Texture0Sampler, input.tcoordVS);","computedColor = computedColor*tcolor;"]).result),i.setCode(o)}},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("fragment"),a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,r.setCode(a)}},e.getUsage=function(e,t){return e===Nf.POINTS||0===t?Vf.Verts:1===t?Vf.Lines:e===Nf.WIREFRAME?2===t?Vf.LinesFromTriangles:Vf.LinesFromStrips:2===t?Vf.Triangles:Vf.Strips},e.getHashFromUsage=function(e){return"pt".concat(e)},e.getTopologyFromUsage=function(e){switch(e){case Vf.Triangles:return"triangle-list";case Vf.Verts:return"point-list";default:case Vf.Lines:return"line-list"}},e.buildVertexInput=function(n,r,a){var o=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),i=t.WebGPURenderWindow.getDevice(),s=t.primitives[a].getVertexInput(),l=r.getMTime()+o,c=n.getPoints();if(c){var u=t.WebGPUActor.getBufferShift(t.WebGPURenderer),d={hash:l+c.getMTime(),dataArray:c,source:c,cells:r,primitiveType:a,representation:o,time:Math.max(c.getMTime(),r.getMTime(),t.WebGPUActor.getKeyMatricesTime().getMTime()),shift:u,usage:Vf.PointArray,format:"float32x4",packExtra:!0},f=i.getBufferManager().getBuffer(d);s.addBuffer(f,["vertexBC"])}else s.removeBufferIfPresent("vertexBC");var p=e.getUsage(o,a);if(p===Vf.Triangles||p===Vf.Strips){var g=n.getPointData().getNormals(),m={cells:r,representation:o,primitiveType:a,format:"snorm8x4",packExtra:!0,shift:0,scale:127};if(g){m.hash=l+g.getMTime(),m.dataArray=g,m.source=g,m.time=Math.max(g.getMTime(),r.getMTime()),m.usage=Vf.PointArray;var v=i.getBufferManager().getBuffer(m);s.addBuffer(v,["normalMC"])}else if(a===Lf.Triangles){m.hash=l+c.getMTime(),m.dataArray=c,m.source=c,m.time=Math.max(c.getMTime(),r.getMTime()),m.usage=Vf.NormalsFromPoints;var h=i.getBufferManager().getBuffer(m);s.addBuffer(h,["normalMC"])}else s.removeBufferIfPresent("normalMC")}else s.removeBufferIfPresent("normalMC");var y=!1;if(t.renderable.getScalarVisibility()){var b=t.renderable.getColorMapColors();if(b){var T=t.renderable.getScalarMode(),C=!1;T!==Bf.USE_CELL_DATA&&T!==Bf.USE_CELL_FIELD_DATA&&T!==Bf.USE_FIELD_DATA&&n.getPointData().getScalars()||T===Bf.USE_POINT_FIELD_DATA||!b||(C=!0);var S={hash:l+c.getMTime(),dataArray:b,source:b,cells:r,primitiveType:a,representation:o,time:Math.max(b.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"unorm8x4",cellData:C,cellOffset:0},P=i.getBufferManager().getBuffer(S);s.addBuffer(P,["colorVI"]),y=!0}}y||s.removeBufferIfPresent("colorVI");var w=null;if(w=t.renderable.getInterpolateScalarsBeforeMapping()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords()){var x={hash:l+w.getMTime(),dataArray:w,source:w,cells:r,primitiveType:a,representation:o,time:Math.max(w.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"float32x2"},O=i.getBufferManager().getBuffer(x);s.addBuffer(O,["tcoord"])}else s.removeBufferIfPresent("tcoord")},e.updateTextures=function(){var e=[],n=[],r=t.renderable.getColorTextureMap();r&&(t.colorTexture||(t.colorTexture=Df.newInstance()),t.colorTexture.setInputData(r),n.push(t.colorTexture));for(var a=t.WebGPUActor.getRenderable().getTextures(),o=0;o=0;m--)e[m]||(t.textures.splice(m,1),t.textureViews.splice(m,1))},e.computePipelineHash=function(n,r){var a="pd";return n.hasAttribute("normalMC")&&(a+="n"),n.hasAttribute("colorVI")&&(a+="c"),n.hasAttribute("tcoord")&&(a+="t"),t.textures.length&&(a+="tx".concat(t.textures.length)),t.SSBO&&(a+="ssbo"),a+=e.getHashFromUsage(r),a+=t.renderEncoder.getPipelineHash()},e.buildPrimitives=function(){var n=t.currentInput,r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=t.WebGPURenderWindow.getDevice();t.renderable.mapScalars(n,1),e.updateTextures();for(var o=Lf.Points;o<=Lf.Triangles;o++)if(r[o].getNumberOfValues()>0){var i=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),s=e.getUsage(i,o),l=t.primitives[o];e.buildVertexInput(t.currentInput,r[o],o),l.setPipelineHash(e.computePipelineHash(l.getVertexInput(),s)),l.setTextureViews(t.textureViews),l.setWebGPURenderer(t.WebGPURenderer),l.setNumberOfInstances(1);var c=l.getVertexInput().getBuffer("vertexBC");l.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),l.setTopology(e.getTopologyFromUsage(s)),l.build(t.renderEncoder,a),l.registerToDraw()}},e.setShaderReplacement=function(e,n){for(var r=Lf.Start;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name"]),function(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.handle=t.device.getHandle().createSampler({magFilter:n.magFilter?n.magFilter:"nearest",minFilter:n.minFilter?n.minFilter:"nearest"}),t.bindGroupTime.modified()},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": sampler;")},e.getBindGroupEntry=function(){return{resource:t.handle}}}(e,t)}var Xf={newInstance:f.a.newInstance(Kf),extend:Kf};var qf={texture:null,handle:null,name:null,sampler:null};function Yf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","name","texture"]),f.a.setGet(e,t,["bindGroupLayoutEntry","sampler"]),function(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=function(e,n){t.texture=e,t.options=n,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options)},e.getBindGroupEntry=function(){return{resource:e.getHandle()}},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": texture_2d;")},e.addSampler=function(n,r){var a=Xf.newInstance();a.create(n,r),e.setSampler(a),t.sampler.setName("".concat(t.name,"Sampler"))},e.setName=function(n){t.sampler&&t.sampler.setName("".concat(n,"Sampler")),t.name!==n&&(t.name=n,e.modified())},e.getHandle=function(){return t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle}}(e,t)}var Zf={newInstance:f.a.newInstance(Yf),extend:Yf},Qf=ad.BufferUsage;var $f={device:null,handle:null,buffer:null,ready:!1};function Jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$f,n),f.a.obj(e,t),f.a.get(e,t,["handle","ready","width","height","depth","format","usage"]),f.a.setGet(e,t,["device"]),function(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=function(e,n){t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;var r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgbaunorm",t.usage=n.usage?n.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,dimension:r})},e.assignFromHandle=function(e,n,r){t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgbaunorm",t.usage=r.usage?r.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST},e.writeImageData=function(e){var n=4*t.width;if(e.dataArray){var r={dataArray:e.dataArray,time:e.dataArray.getMTime(),usage:Qf.Texture,format:"unorm8x4"};if(t.width%64){for(var a=e.dataArray.getData(),o=64*Math.floor((t.width+63)/64),i=new Uint8Array(o*t.height*4),s=0;s2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage}))},e.createView=function(t){var n=Zf.newInstance();return n.create(e,t),n}}(e,t)}f.a.newInstance(Jf);var ep={PassTypes:{MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,MAX_KNOWN_PASS:2}};function tp(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function np(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var o=e.apply(t,n);function i(e){tp(o,r,a,i,s,"next",e)}function s(e){tp(o,r,a,i,s,"throw",e)}i(void 0)})}}var rp={fieldAssociation:Cn.FieldAssociations.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function ap(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rp,n),f.a.obj(e,t),f.a.setGet(e,t,["fieldAssociation","captureZValues"]),function(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=function(){var e=np(regeneratorRuntime.mark(function e(t,n,r,a,o){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)}));return function(t,n,r,a,o){return e.apply(this,arguments)}}(),e.selectAsync=function(){var t=np(regeneratorRuntime.mark(function t(n,r,a,o,i){var s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.getSourceDataAsync(n,r,a,o,i);case 2:if(!(s=t.sent)){t.next=5;break}return t.abrupt("return",s.generateSelection(r,a,o,i));case 5:return t.abrupt("return",[]);case 6:case"end":return t.stop()}},t)}));return function(e,n,r,a,o){return t.apply(this,arguments)}}()}(e,t)}var op={newInstance:f.a.newInstance(ap,"vtkHardwareSelector"),extend:ap},ip={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};function sp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cp={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function up(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cp,n),f.a.obj(e,t),t.properties={},f.a.setGet(e,t,["contentType","fieldType","properties","selectionList"]),function(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=function(){return t.points.getBounds()}}(e,t)}var dp=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.area[2]||t[1]e.area[3])return null;var o=[t[0]-e.area[0],t[1]-e.area[1]],i=wp(o[0],o[1],e.pixBuffer[hp.ACTOR_PASS],e.area);if(i<=0)return null;var s={valid:!0};s.propID=i-Sp,s.prop=e.props[s.propID];var l=wp(o[0],o[1],e.pixBuffer[hp.COMPOSITE_INDEX_PASS],e.area);if((l<0||l>16777215)&&(l=0),s.compositeID=l-Sp,e.captureZValues){var c=4*(o[1]*(e.area[2]-e.area[0]+1)+o[0]);s.zValue=(256*e.zBuffer[c]+e.zBuffer[c+1])/65535,s.displayPosition=t}return s}var u=[t[0],t[1]],d=[0,0],f=xp(e,t,0,r);if(f&&f.valid)return f;for(var p=1;pp?u[1]-p:0;g<=u[1]+p;++g){if(d[1]=g,u[0]>=p&&(d[0]=u[0]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[0]=u[0]+p,(f=xp(e,d,0,r))&&f.valid)return f}for(var m=u[0]>=p?u[0]-(p-1):0;m<=u[0]+(p-1);++m){if(d[0]=m,u[1]>=p&&(d[1]=u[1]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[1]=u[1]+p,(f=xp(e,d,0,r))&&f.valid)return f}}return r[0]=t[0],r[1]=t[1],null}function Op(e,t,n,r,a){var o=[],i=0;return t.forEach(function(t,s){var l=dp.newInstance();switch(l.setContentType(yp.INDICES),e){case Tp.FIELD_ASSOCIATION_CELLS:l.setFieldType(bp.CELL);break;case Tp.FIELD_ASSOCIATION_POINTS:l.setFieldType(bp.POINT);break;default:Cp("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=a.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),o[i]=l,i++}),o}function Mp(e,t,n,r,a){for(var o=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=new Map,u=[0,0],d=i;d<=l;d++)for(var f=o;f<=s;f++){var p=xp(e,[f,d],0,u);if(p&&p.valid){var g=Pp(p);if(c.has(g)){var m=c.get(g);m.pixelCount++,e.captureZValues&&p.zValue0&&(--a in t.hitProps||(t.hitProps[a]=!0))}},e.renderProp=function(n){t.currentPass===hp.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+Sp),t.props.push(n))},e.renderCompositeIndex=function(n){t.currentPass===hp.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+Sp)},e.renderAttributeId=function(e){e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=function(e){return f.a.enumToString(hp,e)},e.isPropHit=function(e){return Boolean(t.hitProps[e])},e.setPropColorValueFromInt=function(e){t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=function(n,r,a){var o=r<0?0:r;if(0===o){if(a[0]=n[0],a[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;var i=[n[0]-t.area[0],n[1]-t.area[1]],s=wp(i[0],i[1],t.pixBuffer[hp.ACTOR_PASS],t.area);if(s<=0)return null;var l={valid:!0};l.propID=s-Sp,l.prop=t.props[l.propID];var c=wp(i[0],i[1],t.pixBuffer[hp.COMPOSITE_INDEX_PASS],t.area);if((c<0||c>16777215)&&(c=0),l.compositeID=c-Sp,t.captureZValues){var u=4*(i[1]*(t.area[2]-t.area[0]+1)+i[0]);l.zValue=(256*t.zBuffer[u]+t.zBuffer[u+1])/65535,l.displayPosition=n}return l}var d=[n[0],n[1]],f=[0,0],p=e.getPixelInformation(n,0,a);if(p&&p.valid)return p;for(var g=1;gg?d[1]-g:0;m<=d[1]+g;++m){if(f[1]=m,d[0]>=g&&(f[0]=d[0]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[0]=d[0]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}for(var v=d[0]>=g?d[0]-(g-1):0;v<=d[0]+(g-1);++v){if(f[0]=v,d[1]>=g&&(f[1]=d[1]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[1]=d[1]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}}return a[0]=n[0],a[1]=n[1],null},e.generateSelection=function(n,r,a,o){for(var i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=Math.floor(o),u=new Map,d=[0,0],f=s;f<=c;f++)for(var p=i;p<=l;p++){var g=[p,f],m=e.getPixelInformation(g,0,d);if(m&&m.valid){var v=Pp(m);if(u.has(v)){var h=u.get(v);h.pixelCount++,t.captureZValues&&m.zValue2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),op.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),f.a.setGetArray(e,t,["area"],4),f.a.setGet(e,t,["renderer","currentPass","openGLRenderWindow"]),f.a.setGetArray(e,t,["propColorValue"],3),f.a.event(e,t,"event"),Ap(e,t)}var Ep=function(e){for(var t=1;t0){var o=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),e.Vertex=o}n.replaceShaderNormal(e,r,a)},e.replaceShaderColor=function(e,r,a){if(t.hardwareSupport&&t.renderable.getColorArray()){var o=e.Vertex,i=e.Geometry,s=e.Fragment,l=t.lastBoundBO.getReferenceByName("lastLightComplexity"),c=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(c=c.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(c=c.concat(["varying vec4 vertexColorVSOutput;"]),o=_l.substitute(o,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,o=_l.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,i=_l.substitute(i,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,i=_l.substitute(i,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),s=_l.substitute(s,"//VTK::Color::Impl",u).result,s=_l.substitute(s,"//VTK::Color::Dec",c).result,e.Vertex=o,e.Geometry=i,e.Fragment=s}n.replaceShaderColor(e,r,a)},e.replaceShaderPositionVC=function(e,r,a){if(t.hardwareSupport){var o=e.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),e.Vertex=o}n.replaceShaderPositionVC(e,r,a)},e.replaceShaderPicking=function(e,r,a){if(t.hardwareSupport){var o=e.Fragment,i=e.Vertex;i=_l.substitute(i,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,i=_l.substitute(i,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,e.Vertex=i,o=_l.substitute(o,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,o=_l.substitute(o,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,e.Fragment=o}else n.replaceShaderPicking(e,r,a)},e.updateGlyphShaderParameters=function(n,r,a,o,i,s,l,c){var u=a.getProgram();if(n){var d=t.normalMatrix,f=s,p=9*l,g=t.tmpMat3,m=d[0],v=d[1],h=d[2],y=d[3],b=d[4],T=d[5],C=d[6],S=d[7],P=d[8],w=f[p],x=f[p+1],O=f[p+2],M=f[p+3],A=f[p+4],I=f[p+5],R=f[p+6],E=f[p+7],D=f[p+8];g[0]=w*m+x*y+O*C,g[1]=w*v+x*b+O*S,g[2]=w*h+x*T+O*P,g[3]=M*m+A*y+I*C,g[4]=M*v+A*b+I*S,g[5]=M*h+A*T+I*P,g[6]=R*m+E*y+D*C,g[7]=R*v+E*b+D*S,g[8]=R*h+E*T+D*P,u.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix("MCPCMatrix",t.tmpMat4),r&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix("MCVCMatrix",t.tmpMat4)),o){var V=o.getData();t.tmpColor[0]=V[4*l]/255,t.tmpColor[1]=V[4*l+1]/255,t.tmpColor[2]=V[4*l+2]/255,u.setUniform3fArray("ambientColorUniform",t.tmpColor),u.setUniform3fArray("diffuseColorUniform",t.tmpColor)}c&&u.setUniform3fArray("mapperIndex",c.getPropColorValue())},e.renderPieceDraw=function(n,r){var i=r.getProperty().getRepresentation(),s=t.context,l=r.getProperty().getEdgeVisibility()&&i===Np.SURFACE,c=t.openGLCamera.getKeyMatrices(n),u=t.openGLActor.getKeyMatrices();a.multiply(t.normalMatrix,c.normalMatrix,u.normalMatrix),o.multiply(t.mcpcMatrix,c.wcpc,u.mcwc),o.multiply(t.mcvcMatrix,c.wcvc,u.mcwc);var d=t.renderable.getMatrixArray(),f=t.renderable.getNormalArray(),p=t.renderable.getColorArray(),g=d.length/16,m=!1;t.openGLRenderer.getSelector()&&t.openGLRenderer.getSelector().getCurrentPass()===kp.COMPOSITE_INDEX_PASS&&(m=!0);for(var v=t.primTypes.Start;ve.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed("gMatrix")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||Lp("Error setting gMatrix in shader VAO."):e.getVAO().removeAttributeArray("gMatrix"),e.getProgram().isAttributeUsed("gNormal")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||Lp("Error setting gNormal in shader VAO."):e.getVAO().removeAttributeArray("gNormal"),e.getProgram().isAttributeUsed("gColor")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting gColor in shader VAO."):e.getVAO().removeAttributeArray("gColor"),e.getProgram().isAttributeUsed("mapperIndexVS")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting mapperIndexVS in shader VAO."):e.getVAO().removeAttributeArray("mapperIndexVS"),n.setMapperShaderParameters(e,r,a),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,a)},e.getNeedToRebuildBufferObjects=function(e,r){return t.renderable.buildArrays(),t.VBOBuildTime.getMTime()t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(a,Bp.ARRAY_BUFFER),t.normalBuffer.upload(o,Bp.ARRAY_BUFFER),i?t.colorBuffer.upload(i.getData(),Bp.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();for(var s=a.length/16,l=new Uint8Array(4*s),c=0;c2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Sf.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.normalMatrix=a.identity(new Float64Array(9)),t.mcpcMatrix=o.identity(new Float64Array(16)),t.mcvcMatrix=o.identity(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),_p(e,t)}var Wp=f.d(jp,"vtkOpenGLGlyph3DMapper");al("vtkGlyph3DMapper",Wp);var zp=ad.BufferUsage,Hp=f.a.vtkErrorMacro;var Kp={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,name:null,numberOfInstances:1};function Xp(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},f.a.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},f.a.get(e,t,["bindGroupTime"]),f.a.setGet(e,t,["device","bindGroupLayoutEntry","name","numberOfInstances","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=function(e,n){if(t._bufferEntryNames.has(e))Hp("entry named ".concat(e," already exists"));else{t._bufferEntryNames.set(e,t.bufferEntries.length);var r=gu.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gu.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r}},e.send=function(e){if(!t._buffer){var n={nativeArray:t.Float32Array,time:0,usage:zp.Storage};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=f.a.newTypedArray(e,t.arrayBuffer))},e.setValue=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);var s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=a}else Hp("entry named ".concat(n," not found in UBO"))},e.setArray=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);for(var s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT,c=0;c;\n};\n[[binding(").concat(e,"), group(").concat(n,")]] var ").concat(t.name,": [[access(read)]] ").concat(t.name,"Struct;\n")),r.join("\n")},e.getBindGroupEntry=function(){return{resource:{buffer:t._buffer.getHandle()}}},e.clearData=function(){t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var qp={newInstance:f.a.newInstance(Xp,"vtkWebGPUStorageBuffer"),extend:Xp};function Yp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qp=ad.PrimitiveTypes;function $p(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DMapper");var n=function(e){for(var t=1;t","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix"," *glyphSSBO.values[input.instanceIndex].matrix"," *vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,r){if(r.hasAttribute("normalMC")){var a=t.getShaderDescription("vertex"),o=a.getCode();o=su.substitute(o,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals"," * mapperUBO.MCWCNormals"," * glyphSSBO.values[input.instanceIndex].normal*normalMC).xyz);"]).result,a.setCode(o)}n.replaceShaderNormal(e,t,r)},e.replaceShaderColor=function(e,r,a){if(t.carray){var o=r.getShaderDescription("vertex");o.addOutput("vec4","color");var i=o.getCode();i=su.substitute(i,"//VTK::Color::Impl",[" output.color = glyphSSBO.values[input.instanceIndex].color;"]).result,o.setCode(i);var s=r.getShaderDescription("fragment");i=s.getCode(),i=su.substitute(i,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,s.setCode(i)}else n.replaceShaderColor(e,r,a)},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("vertex");r.addOutput("u32","compositeID");var a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" output.compositeID = input.instanceIndex;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Select::Impl",["var compositeID: u32 = input.compositeID;"]).result,o.setCode(a)}},e.buildPrimitives=function(){t.currentInput=t.renderable.getInputData(1),t.renderable.buildArrays();var e=t.renderable.getMatrixArray(),r=t.renderable.getNormalArray();t.carray=t.renderable.getColorArray();var a=e.length/16;if(t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){var o=t.WebGPURenderWindow.getDevice();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(a),t.SSBO.addEntry("matrix","mat4x4"),t.SSBO.addEntry("normal","mat4x4"),t.carray&&t.SSBO.addEntry("color","vec4"),t.SSBO.setAllInstancesFromArray("matrix",e),t.SSBO.setAllInstancesFromArray3x3To4x4("normal",r),t.carray&&t.SSBO.setAllInstancesFromArrayColorToFloat("color",t.carray.getData()),t.SSBO.send(o),t.glyphBOBuildTime.modified()}n.buildPrimitives();for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jp,n),zf.extend(e,t,n),t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),t.SSBO=qp.newInstance(),t.SSBO.setName("glyphSSBO"),$p(e,t);for(var r=Qp.Start;r1&&void 0!==arguments[1]?arguments[1]:{};return rg[e]&&rg[e](t)}var ig={defaultViewAPI:ng,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ig,n),f.a.obj(e,t),f.a.setGet(e,t,["interactor","numberOfLayers","views","defaultViewAPI"]),f.a.get(e,t,["neverRendered"]),f.a.getArray(e,t,["renderers"]),f.a.event(e,t,"completion"),function(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=function(n){e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=function(n){t.renderers=t.renderers.filter(function(e){return e!==n}),e.modified()},e.hasRenderer=function(e){return-1!==t.renderers.indexOf(e)},e.newAPISpecificView=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return og(e||t.defaultViewAPI,n)},e.addView=function(n){e.hasView(n)||(n.setRenderable(e),t.views.push(n),e.modified())},e.removeView=function(n){t.views=t.views.filter(function(e){return e!==n}),e.modified()},e.hasView=function(e){return-1!==t.views.indexOf(e)},e.render=function(){t.interactor?t.interactor.render():t.views.forEach(function(e){return e.traverseAllPasses()})},e.getStatistics=function(){var e={propCount:0,invisiblePropCount:0};return t.renderers.forEach(function(t){t.getViewProps().forEach(function(t){if(t.getVisibility()){e.propCount+=1;var n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){var r=n.getPrimitiveCount();Object.keys(r).forEach(function(t){e[t]||(e[t]=0),e[t]+=r[t]})}}else e.invisiblePropCount+=1})}),e.str=Object.keys(e).map(function(t){return"".concat(t,": ").concat(e[t])}).join("\n"),e},e.captureImages=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return f.a.setImmediate(e.render),t.views.map(function(e){return e.captureNextImage?e.captureNextImage(n,r):void 0}).filter(function(e){return!!e})}}(e,t)}var lg={newInstance:f.a.newInstance(sg,"vtkRenderWindow"),extend:sg,registerViewConstructor:ag,listViewAPIs:function(){return Object.keys(rg)},newAPISpecificView:og};var cg={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function ug(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cg,n),f.a.obj(e,t),f.a.get(e,t,["currentOperation"]),f.a.setGet(e,t,["delegates","currentParent","preDelegateOperations","postDelegateOperations"]),function(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=function(){return t.currentOperation},e.setCurrentOperation=function(e){t.currentOperation=e,t.currentTraverseOperation="traverse".concat(f.a.capitalize(t.currentOperation))},e.getTraverseOperation=function(){return t.currentTraverseOperation},e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t.currentParent=r,t.preDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}),t.delegates.forEach(function(t){t.traverse(n,e)}),t.postDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}))}}(e,t)}var dg={newInstance:f.a.newInstance(ug,"vtkRenderPass"),extend:ug};var fg={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,framebuffer:null,depthRequested:!1};function pg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fg,n),dg.extend(e,t,n),f.a.get(e,t,["framebuffer"]),function(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.deleted){t.currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);for(var a=n.getRenderable().getNumberOfLayers(),o=n.getChildren(),i=0;i0&&t.volumeCount>0||t.depthRequested){var u=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=Ac.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();var d=t.framebuffer.getSize();null!==d&&d[0]===u[0]&&d[1]===u[1]||(t.framebuffer.create(u[0],u[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("opaqueZBufferPass"),l.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),l.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),l.traverse(e)),t.translucentActorCount>0&&(e.setCurrentOperation("translucentPass"),l.traverse(e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),l.traverse(e))}}}},e.getZBufferTexture=function(){return t.framebuffer?t.framebuffer.getColorTexture():null},e.requestDepth=function(){t.depthRequested=!0},e.incrementOpaqueActorCount=function(){return t.opaqueActorCount++},e.incrementTranslucentActorCount=function(){return t.translucentActorCount++},e.incrementVolumeCount=function(){return t.volumeCount++}}(e,t)}var gg={newInstance:f.a.newInstance(pg,"vtkForwardPass"),extend:pg},mg=n(12),vg=n.n(mg),hg=["lastShaderBound","context","openGLRenderWindow"];var yg={lastShaderBound:null,shaderPrograms:null,context:null,openGLRenderWindow:null};function bg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yg,n),t.shaderPrograms={},f.a.obj(e,t),f.a.setGet(e,t,hg),function(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=function(e,n,r){var a=n;r.length>0&&(a=_l.substitute(a,"VSOut","GSOut").result);var o=t.openGLRenderWindow.getWebgl2(),i="\n",s="#version 100\n";o?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),a=_l.substitute(a,"//VTK::System::Dec",["".concat(s,"\n"),o?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;var l=_l.substitute(e,"//VTK::System::Dec",["".concat(s,"\n"),"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;return o&&(l=_l.substitute(l,"varying","out").result,a=_l.substitute(a,"varying","in").result,a=_l.substitute(a,"gl_FragData\\[0\\]","fragOutput0").result,a=_l.substitute(a,"//VTK::Output::Dec","layout(location = 0) out vec4 fragOutput0;").result),{VSSource:l,FSSource:a,GSSource:_l.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=function(t,n,r){var a=e.replaceShaderValues(t,n,r),o=e.getShaderProgram(a.VSSource,a.FSSource,a.GSSource);return e.readyShaderProgram(o)},e.readyShaderProgram=function(t){return t&&(t.getCompiled()||t.compileShader())&&e.bindShader(t)?t:null},e.getShaderProgram=function(e,n,r){var a="".concat(e).concat(n).concat(r),o=vg()(a);if(-1===Object.keys(t.shaderPrograms).indexOf(o)){var i=_l.newInstance();return i.setContext(t.context),i.getVertexShader().setSource(e),i.getFragmentShader().setSource(n),r&&i.getGeometryShader().setSource(r),i.setMd5Hash(o),t.shaderPrograms[o]=i,i}return t.shaderPrograms[o]},e.releaseGraphicsResources=function(n){e.releaseCurrentShader(),Object.keys(t.shaderPrograms).map(function(e){return t.shaderPrograms[e]}).forEach(function(e){return e.releaseGraphicsResources(n)})},e.releaseGraphicsResources=function(){t.astShaderBound&&(t.lastShaderBound.release(),t.lastShaderBound=null)},e.bindShader=function(e){return t.lastShaderBound===e?1:(t.lastShaderBound&&t.lastShaderBound.release(),e.bind(),t.lastShaderBound=e,1)}}(e,t)}var Tg={newInstance:f.a.newInstance(bg,"vtkShaderCache"),extend:bg};var Cg={size:void 0,selector:void 0};function Sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cg,n),t.size||(t.size=[300,300]),f.a.getArray(e,t,["size"],2),f.a.get(e,t,["selector"]),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=function(){return null},e.getAspectRatio=function(){return t.size[0]/t.size[1]},e.getAspectRatioForRenderer=function(e){var n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=function(t,n,r){var a=r.getViewportByReference(),o=e.getFramebufferSize();return a[0]*o[0]<=t&&a[2]*o[0]>=t&&a[1]*o[1]<=n&&a[3]*o[1]>=n},e.getViewportSize=function(t){var n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=function(t){var n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t/a[0],n/a[1],r]},e.normalizedDisplayToDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t*a[0],n*a[1],r]},e.worldToView=function(e,t,n,r){return r.worldToView(e,t,n)},e.viewToWorld=function(e,t,n,r){return r.viewToWorld(e,t,n)},e.worldToDisplay=function(t,n,r,a){var o=a.worldToView(t,n,r),i=e.getViewportSize(a),s=a.viewToProjection(o[0],o[1],o[2],i[0]/i[1]),l=a.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=function(t,n,r,a){var o=e.displayToNormalizedDisplay(t,n,r),i=a.normalizedDisplayToProjection(o[0],o[1],o[2]),s=e.getViewportSize(a),l=a.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return a.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=function(t,n,r,a){var o=a.getViewportByReference();o=e.normalizedDisplayToDisplay(o[0],o[1],0);var i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-o[0]-.5,i[1]-o[1]-.5,r]},e.viewportToNormalizedViewport=function(t,n,r,a){var o=e.getViewportSize(a);return o&&0!==o[0]&&0!==o[1]?[t/(o[0]-1),n/(o[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=function(t,n,r){var a=e.getFramebufferSize();return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=function(t,n,r){return[t,e.getFramebufferSize()[1]-n-1,r]},e.viewportToNormalizedDisplay=function(t,n,r,a){var o=a.getViewportByReference(),i=t+(o=e.normalizedDisplayToDisplay(o[0],o[1],0))[0]+.5,s=n+o[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getPixelData=function(e,t,n,r){f.a.vtkErrorMacro("not implemented")}}(e,t)}var Pg={newInstance:f.a.newInstance(Sg,"vtkRenderWindowViewNode"),extend:Sg},wg=f.a.vtkErrorMacro;var xg={context:null,numberOfTextureUnits:0,textureUnits:0};function Og(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xg,n),f.a.obj(e,t),t.textureUnits=[],f.a.get(e,t,["numberOfTextureUnits"]),f.a.setGet(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=function(){for(var e=0;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0},r=null,a="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&a&&(r=t.canvas.getContext("webgl2",n))&&(t.webgl2=!0,Dg("using webgl2")),r||(Dg("using webgl1"),r=t.canvas.getContext("webgl",n)||t.canvas.getContext("experimental-webgl",n)),navigator.getVRDisplays&&navigator.getVRDisplays().then(function(n){n.length>0&&(t.vrDisplay=n[0],t.vrDisplay.depthNear=.01,t.vrDisplay.depthFar=100,e.invokeHaveVRDisplay())}),t.canvas.addEventListener("webglcontextlost",function(e){e.preventDefault()},!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1),r},e.startVR=function(){t.oldCanvasSize=t.size.slice(),t.vrDisplay.capabilities.canPresent?t.vrDisplay.requestPresent([{source:t.canvas}]).then(function(){if(t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&t.hideCanvasInVR&&(t.el.style.display="none"),t.queryVRSize){var n=t.vrDisplay.getEyeParameters("left"),r=t.vrDisplay.getEyeParameters("right"),a=Math.floor(n.renderWidth+r.renderWidth),o=Math.floor(Math.max(n.renderHeight,r.renderHeight));e.setSize(a,o)}else e.setSize(t.vrResolution);t.renderable.getRenderers()[0].resetCamera(),t.vrFrameData=new VRFrameData,t.renderable.getInteractor().switchToVRAnimation(),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),Lg&&(t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender))}).catch(function(){console.error("failed to requestPresent")}):Vg("vrDisplay is not connected")},e.stopVR=function(){t.renderable.getInteractor().returnFromVRAnimation(),t.vrDisplay.exitPresent(),t.vrDisplay.cancelAnimationFrame(t.vrSceneFrame),e.setSize.apply(e,Ig(t.oldCanvasSize)),t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&(t.el.style.display="block");var n=t.renderable.getRenderers()[0];n.getActiveCamera().setProjectionMatrix(null),n.setViewport(0,0,1,1),e.traverseAllPasses()},e.vrRender=function(){if(t.vrDisplay.isPresenting){t.renderable.getInteractor().updateGamepads(t.vrDisplay.displayId),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),t.vrDisplay.getFrameData(t.vrFrameData);var n=t.renderable.getRenderers()[0];n.setViewport(0,0,.5,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.leftViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.leftProjectionMatrix),e.traverseAllPasses(),n.setViewport(.5,0,1,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.rightViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.rightProjectionMatrix),e.traverseAllPasses(),t.vrDisplay.submitFrame()}},e.restoreContext=function(){var t=dg.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=function(n){var r=t._textureResourceIds.get(n);if(void 0===r){var a=e.getTextureUnitManager().allocate();a<0?Vg("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,a),t.context.activeTexture(t.context.TEXTURE0+a))}else t.context.activeTexture(t.context.TEXTURE0+r)},e.deactivateTexture=function(n){var r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=function(e){var n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureInternalFormat=function(e,n,r){if(t.webgl2)switch(e){case u.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;case 4:default:return t.context.RGBA8}default:case u.FLOAT:switch(n){case 1:return t.context.R16F;case 2:return t.context.RG16F;case 3:return t.context.RGB16F;case 4:default:return t.context.RGBA16F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:default:return t.context.RGBA}},e.setBackgroundImage=function(e){t.bgImage.src=e.src},e.setUseBackgroundImage=function(e){t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.resetCamera,o=void 0!==a&&a,i=r.size,s=void 0===i?null:i,l=r.scale,c=void 0===l?1:l;if(t.deleted)return null;t.imageFormat=n;var u=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:s||1!==c?s||t.size.map(function(e){return e*c}):null},new Promise(function(n,r){var a=e.onImageReady(function(r){if(null===t._screenshot.size)t.notifyStartCaptureImage=u,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach(function(e){return(0,e.restoreParamsFn)(e.arg)}),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(r);else{var i=document.createElement("img");i.style=Ng,i.src=r,t._screenshot.placeHolder=t.el.appendChild(i),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),o&&(t._screenshot.cameras=t.renderable.getRenderers().map(function(e){var t=e.getActiveCamera(),n=t.get("focalPoint","position","parallelScale");return{resetCameraFn:e.resetCamera,restoreParamsFn:t.set,arg:JSON.parse(JSON.stringify(n))}}),t._screenshot.cameras.forEach(function(e){return(0,e.resetCameraFn)()})),e.traverseAllPasses()}})})},e.getGLInformations=function(){for(var n=e.get3DContext(),r=n.getExtension("OES_texture_float"),a=n.getExtension("OES_texture_half_float"),o=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&Bg(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[a&&Bg(n,n.RGBA,a.HALF_FLOAT_OES)?"RGBA":"",a&&Bg(n,n.RGB,a.HALF_FLOAT_OES)?"RGB":"",a&&Bg(n,n.LUMINANCE,a.HALF_FLOAT_OES)?"LUMINANCE":"",a&&Bg(n,n.ALPHA,a.HALF_FLOAT_OES)?"ALPHA":"",a&&Bg(n,n.LUMINANCE_ALPHA,a.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&Bg(n,n.RGB,n.FLOAT)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",o&&n.getParameter(o.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",o&&n.getParameter(o.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};l.length;){var u=Ag(l.pop(),3),d=u[0],f=u[1],p=u[2];f&&(c[f]={label:d,value:p})}return c},e.traverseAllPasses=function(){if(t.renderPasses)for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat,r=document.createElement("canvas"),a=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,a.drawImage(t.canvas,0,0);var o=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach(function(e){e.getViewProps().forEach(function(e){if(e.getContainer)for(var t=e.getContainer().getElementsByTagName("canvas"),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Pg.extend(e,t,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",kg++,Fg.forEach(function(e){return e(kg)}),t.selector||(t.selector=Ep.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t.myFactory=sl.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",Wg),t.shaderCache=Tg.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=gg.newInstance(),f.a.event(e,t,"imageReady"),f.a.event(e,t,"haveVRDisplay"),f.a.get(e,t,["shaderCache","textureUnitManager","webgl2","vrDisplay","useBackgroundImage"]),f.a.setGet(e,t,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","queryVRSize","hideCanvasInVR","useOffScreen","activeFramebuffer"]),f.a.setGetArray(e,t,["size","vrResolution"],2),_g(e,t)}var Wg=f.a.newInstance(jg,"vtkOpenGLRenderWindow");ag("WebGL",Wg);var zg={newInstance:Wg,extend:jg,pushMonitorGLContextCount:function(e){Fg.push(e)},popMonitorGLContextCount:function(e){return Fg.pop()}};function Hg(e){return function(e){if(Array.isArray(e))return Kg(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kg(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qg,n),f.a.obj(e,t),f.a.get(e,t,["distance"]),f.a.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),f.a.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),f.a.setGetArray(e,t,["clippingRange","windowCenter"],2),f.a.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),function(e,t){t.classHierarchy.push("vtkCamera");var n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),c=o.identity(new Float64Array(16)),u=new Float64Array(3),d=new Float64Array(3),f=new Float64Array(3),p=o.identity(new Float64Array(16)),g=o.identity(new Float64Array(16)),m=new Float64Array(3),v=new Float64Array(3);function h(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=function(){var n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=function(n,r,a){n===t.position[0]&&r===t.position[1]&&a===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=a,e.computeDistance(),e.modified())},e.setFocalPoint=function(n,r,a){n===t.focalPoint[0]&&r===t.focalPoint[1]&&a===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=a,e.computeDistance(),e.modified())},e.setDistance=function(n){if(t.distance!==n){t.distance=n,t.distance<1e-20&&(t.distance=1e-20,Xg("Distance is set to minimum."));var r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()}},e.computeDistance=function(){var e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,Xg("Distance is set to minimum.");var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,h()},e.dolly=function(n){if(!(n<=0)){var r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])}},e.roll=function(n){var r=t.position,a=t.focalPoint,i=t.viewUp,l=new Float64Array([i[0],i[1],i[2],0]);o.identity(p);var c=new Float64Array([a[0]-r[0],a[1]-r[1],a[2]-r[2]]);o.rotate(p,p,x(n),c),s.transformMat4(l,l,p),t.viewUp[0]=l[0],t.viewUp[1]=l[1],t.viewUp[2]=l[2],e.modified()},e.azimuth=function(n){var r=t.focalPoint;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.yaw=function(n){var r=t.position;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint(v[0],v[1],v[2])},e.elevation=function(n){var r=t.focalPoint,a=e.getViewMatrix(),s=[-a[0],-a[1],-a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.pitch=function(n){var r=t.position,a=e.getViewMatrix(),s=[a[0],a[1],a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint.apply(e,Hg(v))},e.zoom=function(n){n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=function(n,r,a){var o=[n,r,a];F(t.position,o,t.position),F(t.focalPoint,o,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=function(n){var r=[].concat(Hg(t.viewUp),[1]),a=[],o=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],s.transformMat4(a,[].concat(Hg(t.position),[1]),n),s.transformMat4(o,[].concat(Hg(t.focalPoint),[1]),n),s.transformMat4(i,r,n),i[0]-=a[0],i[1]-=a[1],i[2]-=a[2],e.setPosition.apply(e,Hg(a.slice(0,3))),e.setFocalPoint.apply(e,Hg(o.slice(0,3))),e.setViewUp.apply(e,Hg(i.slice(0,3)))},e.getThickness=function(){return t.clippingRange[1]-t.clippingRange[0]},e.setThickness=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=function(e){},e.getRoll=function(){},e.setObliqueAngles=function(e,t){},e.getOrientation=function(){},e.getOrientationWXYZ=function(){},e.getFrustumPlanes=function(e){},e.getCameraLightTransformMatrix=function(){},e.deepCopy=function(e){},e.physicalOrientationToWorldDirection=function(e){var t=l.fromValues(e[0],e[1],e[2],e[3]),n=l.create(),r=l.fromValues(0,0,1,0);return l.conjugate(n,t),l.multiply(r,t,r),l.multiply(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=function(t){e.getWorldToPhysicalMatrix(t),o.invert(t,t)},e.getWorldToPhysicalMatrix=function(e){o.identity(e);var n=[3];z(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],o.transpose(e,e),i.set(u,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),o.scale(e,e,u),o.translate(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=function(s){o.invert(c,s),i.transformMat4(u,n,c),e.computeDistance();var l=t.distance;e.setPosition(u[0],u[1],u[2]),i.transformMat4(d,r,c),i.subtract(d,d,u),i.normalize(d,d),e.setDirectionOfProjection(d[0],d[1],d[2]),i.transformMat4(f,a,c),i.subtract(f,f,u),i.normalize(f,f),e.setViewUp(f[0],f[1],f[2]),e.setDistance(l)},e.computeViewParametersFromPhysicalMatrix=function(t){e.getWorldToPhysicalMatrix(c),o.multiply(c,t,c),e.computeViewParametersFromViewMatrix(c)},e.setViewMatrix=function(n){t.viewMatrix=n,t.viewMatrix&&(o.copy(c,t.viewMatrix),e.computeViewParametersFromViewMatrix(c),o.transpose(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=function(){if(t.viewMatrix)return t.viewMatrix;o.lookAt(c,t.position,t.focalPoint,t.viewUp),o.transpose(c,c);var e=new Float64Array(16);return o.copy(e,c),e},e.setProjectionMatrix=function(e){t.projectionMatrix=e},e.getProjectionMatrix=function(e,n,r){var a=new Float64Array(16);if(o.identity(a),t.projectionMatrix){var s=1/t.physicalScale;return i.set(u,s,s,s),o.copy(a,t.projectionMatrix),o.scale(a,a,u),o.transpose(a,a),a}o.identity(c);var l=t.clippingRange[1]-t.clippingRange[0],d=[t.clippingRange[0]+(n+1)*l/2,t.clippingRange[0]+(r+1)*l/2];if(t.parallelProjection){var f=t.parallelScale*e,p=t.parallelScale,g=(t.windowCenter[0]-1)*f,m=(t.windowCenter[0]+1)*f,v=(t.windowCenter[1]-1)*p,h=(t.windowCenter[1]+1)*p;o.ortho(c,g,m,v,h,d[0],d[1]),o.transpose(c,c)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");var y,b,T=Math.tan(x(t.viewAngle)/2);!0===t.useHorizontalViewAngle?(y=t.clippingRange[0]*T,b=t.clippingRange[0]*T/e):(y=t.clippingRange[0]*T*e,b=t.clippingRange[0]*T);var C=(t.windowCenter[0]-1)*y,S=(t.windowCenter[0]+1)*y,P=(t.windowCenter[1]-1)*b,w=(t.windowCenter[1]+1)*b,O=d[0],M=d[1];c[0]=2*O/(S-C),c[5]=2*O/(w-P),c[2]=(C+S)/(S-C),c[6]=(P+w)/(w-P),c[10]=-(O+M)/(M-O),c[14]=-1,c[11]=-2*O*M/(M-O),c[15]=0}return o.copy(a,c),a},e.getCompositeProjectionMatrix=function(t,n,r){var a=e.getViewMatrix(),i=e.getProjectionMatrix(t,n,r);return o.multiply(i,a,i),i},e.setDirectionOfProjection=function(e,n,r){if(t.directionOfProjection[0]!==e||t.directionOfProjection[1]!==n||t.directionOfProjection[2]!==r){t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance,h()}},e.setDeviceAngles=function(n,r,a,s){var l=[3];z(t.physicalViewNorth,t.physicalViewUp,l);var c=o.identity(new Float64Array(16));o.rotate(c,c,x(n),t.physicalViewUp),o.rotate(c,c,x(r),l),o.rotate(c,c,x(a),t.physicalViewNorth),o.rotate(c,c,x(-s),t.physicalViewUp);var u=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),d=new Float64Array(t.physicalViewNorth);i.transformMat4(u,u,c),i.transformMat4(d,d,c),e.setDirectionOfProjection(u[0],u[1],u[2]),e.setViewUp(d[0],d[1],d[2]),e.modified()},e.setOrientationWXYZ=function(t,n,r,a){var s=o.identity(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==a)){var c=x(t),u=l.create();l.setAxisAngle(u,[n,r,a],c),o.fromQuat(s,u)}var d=new Float64Array(3);i.transformMat4(d,[0,0,-1],s);var f=new Float64Array(3);i.transformMat4(f,[0,1,0],s),e.setDirectionOfProjection.apply(e,Hg(d)),e.setViewUp.apply(e,Hg(f)),e.modified()},e.computeClippingRange=function(e){var n,r;n=t.viewPlaneNormal,r=t.position;for(var a=-n[0],o=-n[1],i=-n[2],s=-(a*r[0]+o*r[1]+i*r[2]),l=[a*e[0]+o*e[2]+i*e[4]+s,1e-18],c=0;c<2;c++)for(var u=0;u<2;u++)for(var d=0;d<2;d++){var f=a*e[d]+o*e[2+u]+i*e[4+c]+s;l[0]=fl[1]?f:l[1]}return l}}(e,t)}var Zg={newInstance:f.a.newInstance(Yg,"vtkCamera"),extend:Yg};var Qg={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function $g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qg,n),f.a.obj(e,t),f.a.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","transformMatrix","lightType","shadowAttenuation"]),f.a.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),function(e,t){t.classHierarchy.push("vtkLight"),e.getTransformedPosition=function(){return t.transformMatrix?[]:[].concat(t.position)},e.getTransformedFocalPoint=function(){return t.transformMatrix?[]:[].concat(t.focalPoint)},e.getDirection=function(){return t.directionMTime1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);var r=e.getNestedProps();if(r&&r.length)for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nm,n),f.a.obj(e,t),f.a.event(e,t,"event"),f.a.setGetArray(e,t,["viewport"],4),f.a.setGetArray(e,t,["background","background2"],3),tm(e,t)}var am={newInstance:f.a.newInstance(rm,"vtkViewport"),extend:rm},om=f.k,im=f.l,sm=f.m;function lm(e){return function(){return im("vtkRenderer::".concat(e," - NOT IMPLEMENTED"))}}var cm={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,createdLight:null,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:Ne(),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,pass:0};function um(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cm,n),am.extend(e,t,n),f.b(e,t,["renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),f.i(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","useShadows","pass"]),f.c(e,t,["actors","volumes","lights"]),f.j(e,t,["background"],4,1),function(e,t){for(t.classHierarchy.push("vtkRenderer"),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1);var n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},a={type:"ResetCameraEvent",renderer:e};e.updateCamera=function(){return t.activeCamera||(om("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0},e.updateLightsGeometryToFollowCamera=function(){var n=e.getActiveCameraAndResetIfCreated();t.lights.forEach(function(e){e.lightTypeIsSceneLight()||e.lightTypeIsCameraLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):im("light has unknown light type",e.get()))})},e.updateLightGeometry=function(){return!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera()},e.allocateTime=lm("allocateTime"),e.updateGeometry=lm("updateGeometry"),e.getVTKWindow=function(){return t.renderWindow},e.setLayer=function(n){om(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=function(n){return t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0)},e.makeCamera=function(){var t=Zg.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=function(){return t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera},e.getActiveCameraAndResetIfCreated=function(){return t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera},e.getActors=function(){return t.actors=[],t.props.forEach(function(e){t.actors=t.actors.concat(e.getActors())}),t.actors},e.addActor=e.addViewProp,e.removeActor=function(n){t.actors=t.actors.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllActors=function(){e.getActors().forEach(function(t){e.removeViewProp(t)}),t.actors=[],e.modified()},e.getVolumes=function(){return t.volumes=[],t.props.forEach(function(e){t.volumes=t.volumes.concat(e.getVolumes())}),t.volumes},e.addVolume=e.addViewProp,e.removeVolume=function(n){t.volumes=t.volumes.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllVolumes=function(){e.getVolumes().forEach(function(t){e.removeViewProp(t)}),t.volumes=[],e.modified()},e.addLight=function(n){t.lights=[].concat(t.lights,n),e.modified()},e.removeLight=function(n){t.lights=t.lights.filter(function(e){return e!==n}),e.modified()},e.removeAllLights=function(){t.lights=[],e.modified()},e.setLightCollection=function(n){t.lights=n,e.modified()},e.makeLight=Jg.newInstance,e.createLight=function(){t.automaticLightCreation&&(t.createdLight&&(e.removeLight(t.createdLight),t.createdLight.delete(),t.createdLight=null),t.createdLight=e.makeLight(),e.addLight(t.createdLight),t.createdLight.setLightTypeToHeadLight(),t.createdLight.setPosition(e.getActiveCamera().getPosition()),t.createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=function(t,n,r,a){var o=e.normalizedDisplayToProjection(t,n,r);return o=e.projectionToView(o[0],o[1],o[2],a),e.viewToWorld(o[0],o[1],o[2])},e.worldToNormalizedDisplay=function(t,n,r,a){var o=e.worldToView(t,n,r);return o=e.viewToProjection(o[0],o[1],o[2],a),e.projectionToNormalizedDisplay(o[0],o[1],o[2])},e.viewToWorld=function(e,n,r){if(null===t.activeCamera)return im("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.invert(a,a),o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.projectionToView=function(e,n,r,a){if(null===t.activeCamera)return im("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.invert(s,s),o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.worldToView=function(e,n,r){if(null===t.activeCamera)return im("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.viewToProjection=function(e,n,r,a){if(null===t.activeCamera)return im("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.computeVisiblePropBounds=function(){t.allBounds[0]=Jt.INIT_BOUNDS[0],t.allBounds[1]=Jt.INIT_BOUNDS[1],t.allBounds[2]=Jt.INIT_BOUNDS[2],t.allBounds[3]=Jt.INIT_BOUNDS[3],t.allBounds[4]=Jt.INIT_BOUNDS[4],t.allBounds[5]=Jt.INIT_BOUNDS[5];var r=!0;e.invokeEvent(n);for(var a=0;at.allBounds[1]&&(t.allBounds[1]=i[1]),i[2]t.allBounds[3]&&(t.allBounds[3]=i[3]),i[4]t.allBounds[5]&&(t.allBounds[5]=i[5]))}}return r&&(we(t.allBounds),om("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds(),r=[0,0,0];if(!xe(n))return om("Cannot reset camera!"),!1;var o=null;if(!e.getActiveCamera())return im("Trying to reset non-existent camera"),!1;o=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),r[0]=(n[0]+n[1])/2,r[1]=(n[2]+n[3])/2,r[2]=(n[4]+n[5])/2;var i=n[1]-n[0],s=n[3]-n[2],l=n[5]-n[4],c=(i*=i)+(s*=s)+(l*=l);c=0===c?1:c,c=.5*Math.sqrt(c);var u=x(t.activeCamera.getViewAngle()),d=c,f=c/Math.sin(.5*u),p=t.activeCamera.getViewUp();return Math.abs(W(p,o))>.999&&(sm("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-p[2],p[0],p[1])),t.activeCamera.setFocalPoint(r[0],r[1],r[2]),t.activeCamera.setPosition(r[0]+f*o[0],r[1]+f*o[1],r[2]+f*o[2]),e.resetCameraClippingRange(n),t.activeCamera.setParallelScale(d),t.activeCamera.setPhysicalScale(c),t.activeCamera.setPhysicalTranslation(-r[0],-r[1],-r[2]),e.invokeEvent(a),!0},e.resetCameraClippingRange=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds();if(!xe(n))return om("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return im("Trying to reset clipping range of non-existent camera"),!1;var a=t.activeCamera.computeClippingRange(n),o=0;if(t.activeCamera.getParallelProjection())o=.1*t.activeCamera.getParallelScale();else{var i=x(t.activeCamera.getViewAngle());o=.2*Math.tan(i/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]e&&(e=n);var r=t.createdLight?t.createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=function(){return!!t.preserveColorBuffer},e.isActiveCameraCreated=function(){return!!t.activeCamera}}(e,t)}var dm={newInstance:f.d(um,"vtkRenderer"),extend:um},fm={Unknown:0,LeftController:1,RightController:2},pm={Unknown:0,Trigger:1,TrackPad:2,Grip:3,ApplicationMenu:4},gm={Device:fm,Input:pm};function mm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vm(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mm,n),f.a.obj(e,t),f.a.event(e,t,"RenderEvent"),xm.forEach(function(n){return f.a.event(e,t,n)}),f.a.get(e,t,["initialized","container","interactorStyle","lastFrameTime","view"]),f.a.setGet(e,t,["lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker"]),function(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");var n=new Set,r=0;function a(n,r){t.currentRenderer=e.findPokedRenderer(n,r)}function o(e){var n=t.container.getBoundingClientRect(),r=t.view.getCanvas(),o=r.width/n.width,i=r.height/n.height,s={x:o*(e.clientX-n.left),y:i*(n.height-e.clientY+n.top),z:0};return a(s.x,s.y),s}function i(e){for(var t={},n=0;n1&&void 0!==arguments[1]&&arguments[1],o=document,i=n?"addEventListener":"removeEventListener",s=n?"removeEventListener":"addEventListener";!a&&!n&&r>0&&--r,r&&!a||(r=0,t.container&&t.container[s]("mousemove",e.handleMouseMove),o[i]("mouseup",e.handleMouseUp),o[i]("mousemove",e.handleMouseMove),o[i]("touchend",e.handleTouchEnd,!1),o[i]("touchcancel",e.handleTouchEnd,!1),o[i]("touchmove",e.handleTouchMove,!1)),!a&&n&&++r}function u(){t.view&&t.enabled&&t.enableRender&&(t.inRender=!0,t.view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.start=function(){(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=function(e){Cm("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=function(n){t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=function(){t.initialized=!0,e.enable(),e.render()},e.enable=function(){return e.setEnabled(!0)},e.disable=function(){return e.setEnabled(!1)},e.startEventLoop=function(){return Tm("empty event loop")},e.getCurrentRenderer=function(){return t.currentRenderer?t.currentRenderer:(a(0,0),t.currentRenderer)},e.bindEvents=function(n){t.container=n,n.addEventListener("contextmenu",Om),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("mouseenter",e.handleMouseEnter),n.addEventListener("mouseleave",e.handleMouseLeave),n.addEventListener("mousemove",e.handleMouseMove),n.addEventListener("mousedown",e.handleMouseDown),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.addEventListener("touchstart",e.handleTouchStart,!1)},e.unbindEvents=function(){c(!1,!0),t.container.removeEventListener("contextmenu",Om),t.container.removeEventListener("wheel",e.handleWheel),t.container.removeEventListener("DOMMouseScroll",e.handleWheel),t.container.removeEventListener("mouseenter",e.handleMouseEnter),t.container.removeEventListener("mouseleave",e.handleMouseLeave),t.container.removeEventListener("mousemove",e.handleMouseMove),t.container.removeEventListener("mousedown",e.handleMouseDown),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),t.container.removeEventListener("touchstart",e.handleTouchStart),t.container=null},e.handleKeyPress=function(t){var n=l(t);e.keyPressEvent(n)},e.handleKeyDown=function(t){var n=l(t);e.keyDownEvent(n)},e.handleKeyUp=function(t){var n=l(t);e.keyUpEvent(n)},e.handleMouseDown=function(t){if(!(t.button>2)){c(!0),t.stopPropagation(),t.preventDefault();var n=vm(vm({},s(t)),{},{position:o(t)});switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Cm("Unknown mouse button pressed: ".concat(t.button))}}},e.requestPointerLock=function(){e.getView().getCanvas().requestPointerLock()},e.exitPointerLock=function(){return document.exitPointerLock()},e.isPointerLocked=function(){return!!document.pointerLockElement},e.handlePointerLockChange=function(){e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=function(r){void 0!==r?n.has(r)?Tm("requester is already registered for animating"):(n.add(r),1===n.size&&(t.lastFrameTime=.1,t.lastFrameStart=Date.now(),t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Cm("undefined requester, can not start animating")},e.isAnimating=function(){return t.vrAnimation||null!==t.animationRequest},e.cancelAnimation=function(r){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.has(r))n.delete(r),t.animationRequest&&0===n.size&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!a){var o=r&&r.getClassName?r.getClassName():r;Tm("".concat(o," did not request an animation"))}},e.switchToVRAnimation=function(){t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.vrAnimation=!0},e.returnFromVRAnimation=function(){t.vrAnimation=!1,0!==n.size&&(t.FrameTime=-1,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateGamepads=function(n){for(var r=navigator.getGamepads(),a=0;a1){var r=i(n.touches);if(2===n.touches.length){var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(a)}e.recognizeGesture("TouchStart",r)}else{var s={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(s)}},e.handleTouchMove=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures&&n.touches.length>1){var r=i(n.touches);e.recognizeGesture("TouchMove",r)}else{var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.mouseMoveEvent(a)}},e.handleTouchEnd=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures)if(0===n.touches.length)if(1===n.changedTouches.length){var r={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(r),c(!1)}else{var a=i(n.changedTouches);e.recognizeGesture("TouchEnd",a),c(!1)}else if(1===n.touches.length){var s=i(n.changedTouches);e.recognizeGesture("TouchEnd",s);var l={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(l)}else{var u=i(n.touches);e.recognizeGesture("TouchMove",u)}else{var d={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(d),c(!1)}},e.setView=function(n){t.view!==n&&(t.view=n,t.view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=function(){return t.view.getRenderable().getRenderersByReference()[0]},e.findPokedRenderer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t.view)return null;var r=t.view.getRenderable().getRenderers();r.sort(function(e,t){return e.getLayer()-t.getLayer()});for(var a=null,o=null,i=null,s=r.length;s--;){var l=r[s];if(t.view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===a&&l.getInteractive()&&(a=l),null===o&&t.view.isInViewport(e,n,l)&&(o=l)}return null===i&&(i=a),null===i&&(i=o),null==i&&(i=r[0]),i},e.render=function(){null!==t.animationRequest||t.inRender||u()},xm.forEach(function(n){var r=n.charAt(0).toLowerCase()+n.slice(1);e["".concat(r,"Event")]=function(r){if(t.enabled)if(e.getCurrentRenderer()){var a=vm({type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer()},r);e["invoke".concat(n)](a)}else Pm("\n Can not forward events without a current renderer on the interactor.\n ")}}),e.recognizeGesture=function(n,r){if(!(Object.keys(r).length>2)){if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach(function(e){t.startingEventPositions[e]=r[e]}),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});var a=0,o=[],i=[];Object.keys(r).forEach(function(e){o[a]=r[e],i[a]=t.startingEventPositions[e],a++});var s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((o[0].x-o[1].x)*(o[0].x-o[1].x)+(o[0].y-o[1].y)*(o[0].y-o[1].y)),c=O(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=O(Math.atan2(o[1].y-o[0].y,o[1].x-o[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)p&&g>m&&g>v){t.currentGesture="Pinch";var h={scale:1,touches:r};e.startPinchEvent(h)}else if(m>p&&m>v){t.currentGesture="Rotate";var y={rotation:0,touches:r};e.startRotateEvent(y)}else if(v>p){t.currentGesture="Pan";var b={translation:[0,0],touches:r};e.startPanEvent(b)}}else{if("Rotate"===t.currentGesture){var T={rotation:d,touches:r};e.rotateEvent(T)}if("Pinch"===t.currentGesture){var C={scale:l/s,touches:r};e.pinchEvent(C)}if("Pan"===t.currentGesture){var S={translation:f,touches:r};e.panEvent(S)}}}},e.handleVisibilityChange=function(){t.lastFrameStart=Date.now()};var d=e.delete;e.delete=function(){for(;n.size;)e.cancelAnimation(n.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),d()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}(e,t)}var Im=vm({newInstance:f.a.newInstance(Am,"vtkRenderWindowInteractor"),extend:Am,handledEvents:xm},gm);function Rm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Em(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bm,n),f.a.obj(e,t),f.a.event(e,t,"InteractionEvent"),f.a.event(e,t,"StartInteractionEvent"),f.a.event(e,t,"EndInteractionEvent"),f.a.get(e,t,["interactor","enabled"]),f.a.setGet(e,t,["priority","processEvents"]),function(e,t){t.classHierarchy.push("vtkInteractorObserver");var n=Em({},e);function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function a(){Im.handledEvents.forEach(function(n){e["handle".concat(n)]&&t.subscribedEvents.push(t.interactor["on".concat(n)](function(r){return t.processEvents?e["handle".concat(n)](r):Lm},t.priority))})}e.setInteractor=function(n){n!==t.interactor&&(r(),t.interactor=n,n&&t.enabled&&a(),e.modified())},e.setEnabled=function(n){n!==t.enabled&&(r(),n&&(t.interactor?a():Vm("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=function(e,n,r,a){return e?t.interactor.getView().displayToWorld(n,r,a,e):null},e.computeWorldToDisplay=function(e,n,r,a){return e?t.interactor.getView().worldToDisplay(n,r,a,e):null},e.setPriority=function(e){n.setPriority(e)&&t.interactor&&(r(),a())}}(e,t)}var Fm=Em({newInstance:f.a.newInstance(km,"vtkInteractorObserver"),extend:km},Nm),Gm={States:{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}};function _m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Um(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jm=Gm.States,Wm={Rotate:jm.IS_ROTATE,Pan:jm.IS_PAN,Spin:jm.IS_SPIN,Dolly:jm.IS_DOLLY,CameraPose:jm.IS_CAMERA_POSE,WindowLevel:jm.IS_WINDOW_LEVEL,Slice:jm.IS_SLICE};var zm={state:jm.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Hm(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zm,n),Fm.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wm).forEach(function(n){f.a.event(e,t,"Start".concat(n,"Event")),e["start".concat(n)]=function(){t.state===jm.IS_NONE&&(t.state=Wm[n],t.interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e["invokeStart".concat(n,"Event")]({type:"Start".concat(n,"Event")}))},f.a.event(e,t,"End".concat(n,"Event")),e["end".concat(n)]=function(){t.state===Wm[n]&&(t.state=jm.IS_NONE,t.interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e["invokeEnd".concat(n,"Event")]({type:"End".concat(n,"Event")}),t.interactor.render())}}),e.handleKeyPress=function(e){var n=t.interactor;switch(e.key){case"r":case"R":e.pokedRenderer.resetCamera(),n.render();break;case"w":case"W":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()}),n.render();break;case"s":case"S":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()}),n.render();break;case"v":case"V":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()}),n.render()}}}(e,t)}var Km=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Km.extend(e,t,n),f.a.setGet(e,t,["motionFactor"]),function(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=function(n){var r=n.position,a=n.pokedRenderer;switch(t.state){case Xm.IS_ROTATE:e.handleMouseRotate(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_PAN:e.handleMousePan(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_DOLLY:e.handleMouseDolly(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_SPIN:e.handleMouseSpin(a,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=function(n){n&&n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad?e.startCameraPose():n&&!n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad&&t.state===Xm.IS_CAMERA_POSE&&e.endCameraPose()},e.handleMove3D=function(n){switch(t.state){case Xm.IS_CAMERA_POSE:e.updateCameraPose(n)}},e.updateCameraPose=function(e){var t=e.pokedRenderer.getActiveCamera(),n=t.getPhysicalTranslation(),r=.05*e.gamepad.axes[1]/t.getPhysicalScale(),a=t.physicalOrientationToWorldDirection(e.orientation);t.setPhysicalTranslation(n[0]+a[0]*r,n[1]+a[1]*r,n[2]+a[2]*r)},e.handleLeftButtonPress=function(n){var r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=function(){switch(t.state){case Xm.IS_DOLLY:e.endDolly();break;case Xm.IS_PAN:e.endPan();break;case Xm.IS_SPIN:e.endSpin();break;case Xm.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=function(t){e.startDolly(),e.handleMouseWheel(t)},e.handleEndMouseWheel=function(){e.endDolly()},e.handleStartPinch=function(n){t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=function(){e.endDolly()},e.handleStartRotate=function(n){t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=function(){e.endRotate()},e.handleStartPan=function(n){t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=function(){e.endPan()},e.handlePinch=function(n){e.dollyByFactor(n.pokedRenderer,n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=function(n){var r=n.pokedRenderer.getActiveCamera(),a=r.getFocalPoint(),o=(a=e.computeWorldToDisplay(n.pokedRenderer,a[0],a[1],a[2]))[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(n.pokedRenderer,a[0]+i[0]-s[0],a[1]+i[1]-s[1],o),c=e.computeDisplayToWorld(n.pokedRenderer,a[0],a[1],o),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],a=r.getFocalPoint();var d=r.getPosition();r.setFocalPoint(u[0]+a[0],u[1]+a[1],u[2]+a[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t.interactor.getLightFollowCamera()&&n.pokedRenderer.updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=function(e){var n=e.pokedRenderer.getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=function(e,n){var r=t.interactor,a=n.x-t.previousPosition.x,o=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e),s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);var c=a*l*t.motionFactor,u=o*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=function(e,n){var r=t.interactor,a=e.getActiveCamera(),o=r.getView().getViewportCenter(e),i=O(Math.atan2(t.previousPosition.y-o[1],t.previousPosition.x-o[0])),s=O(Math.atan2(n.y-o[1],n.x-o[0]))-i;Number.isNaN(s)||(a.roll(s),a.orthogonalizeViewUp())},e.handleMousePan=function(n,r){var a=n.getActiveCamera(),o=a.getFocalPoint(),i=(o=e.computeWorldToDisplay(n,o[0],o[1],o[2]))[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],o=a.getFocalPoint();var u=a.getPosition();a.setFocalPoint(c[0]+o[0],c[1]+o[1],c[2]+o[2]),a.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t.interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=function(n,r){var a=r.y-t.previousPosition.y,o=t.interactor.getView().getViewportCenter(n),i=t.motionFactor*a/o[1];e.dollyByFactor(n,Math.pow(1.1,i))},e.handleMouseWheel=function(t){var n=1-t.spinY/10;e.dollyByFactor(t.pokedRenderer,n)},e.dollyByFactor=function(e,n){if(!Number.isNaN(n)){var r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t.interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}}(e,t)}var Zm={newInstance:f.a.newInstance(Ym,"vtkInteractorStyleTrackballCamera"),extend:Ym},Qm=f.a.vtkErrorMacro,$m=[1,-1,1,-1,1,-1];var Jm={empty:!0,numberOfComponents:3,dataType:u.FLOAT,bounds:[1,-1,1,-1,1,-1]};function ev(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Qe.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=f.a.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(e){for(var n=e*t.numberOfComponents,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Qe.extend(e,t,function(e){return rv({empty:!0,numberOfComponents:1,dataType:u.UNSIGNED_INT},e)}(n)),function(e,t){t.classHierarchy.push("vtkCellArray"),e.getNumberOfCells=function(e){return void 0===t.numberOfCells||e?(t.cellSizes=ov(t.values),t.numberOfCells=t.cellSizes.length,t.numberOfCells):t.numberOfCells},e.getCellSizes=function(e){return void 0===t.cellSizes||e?(t.cellSizes=ov(t.values),t.cellSizes):t.cellSizes};var n=e.setData;e.setData=function(e){n(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=function(e){var n=e,r=t.values[n++];return t.values.subarray(n,n+r)}}(e,t)}var lv=rv({newInstance:f.a.newInstance(sv,"vtkCellArray"),extend:sv},iv);var cv={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cv,n),f.a.obj(e,t),t.points||(t.points=tv.newInstance()),f.a.get(e,t,["points","pointsIds"]),function(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;var r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=f.a.newTypedArray(e.getDataType(),3*t.pointsIds.length));var a=e.getData();t.pointsIds.forEach(function(e,t){var n=3*e,o=3*t;r[o]=a[n],r[++o]=a[++n],r[++o]=a[++n]}),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(var o=e.getNumberOfPoints()-1;o>=0;--o)t.pointsIds[o]=o}},e.getBounds=function(){var e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(var r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else we(t.bounds);return t.bounds},e.getLength2=function(){e.getBounds();for(var n=0,r=0,a=0;a<3;a++)n+=(r=t.bounds[2*a+1]-t.bounds[2*a])*r;return n},e.getParametricDistance=function(e){for(var t,n=0,r=0;r<3;r++)(t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0)>n&&(n=t);return n},e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.deepCopy=function(e){e.initialize(t.points,t.pointsIds)},e.getCellDimension=function(){},e.intersectWithLine=function(e,t,n,r,a,o,i){},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var dv={newInstance:f.a.newInstance(uv,"vtkCell"),extend:uv};function fv(e){return function(e){if(Array.isArray(e))return pv(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pv(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=function(n){var r=n.getPoints().getNumberOfPoints(),a=n.getNumberOfCells(),o=new Uint32Array(r);if(n.isA("vtkPolyData")){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map(function(){return{ncells:0,cells:null}}),t.extend=n,t.maxId=-1},e.initialize=function(){t.array=null},e.getLink=function(e){return t.array[e]},e.getNcells=function(e){return t.array[e].ncells},e.getCells=function(e){return t.array[e].cells},e.insertNextPoint=function(e){t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=function(e,n){t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=function(e){t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=function(e,n){t.array[n].cells=t.array[n].cells.filter(function(t){return t!==e}),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=function(e,n){t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=function(e,n){t.array[e].cells.length=n},e.squeeze=function(){!function(e,t){var n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=function(){t.maxId=-1},e.deepCopy=function(e){t.array=fv(e.array),t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=function(e){++t.array[e].ncells},e.allocateLinks=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sv,n),f.a.obj(e,t),f.a.get(e,t,["size","maxId","extend"]),f.a.getArray(e,t,["typeArray","locationArray"]),function(e,t){t.classHierarchy.push("vtkCellTypes"),e.allocate=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=function(e,n,r){t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=function(n,r){return e.insertCell(++t.maxId,n,r),t.maxId},e.setCellTypes=function(e,n,r){t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=function(e){return t.locationArray[e]},e.deleteCell=function(e){t.typeArray[e]=hv.VTK_EMPTY_CELL},e.getNumberOfTypes=function(){return t.maxId+1},e.isType=function(t){for(var n=e.getNumberOfTypes(),r=0;r3&&void 0!==arguments[3]?arguments[3]:null,o={t:Number.MIN_VALUE,distance:0},i=[];i[0]=n[0]-t[0],i[1]=n[1]-t[1],i[2]=n[2]-t[2];var s=i[0]*(e[0]-t[0])+i[1]*(e[1]-t[1])+i[2]*(e[2]-t[2]),l=W(i,i),c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?r=n:(r=i,i[0]=t[0]+o.t*i[0],i[1]=t[1]+o.t*i[1],i[2]=t[2]+o.t*i[2]),a&&(a[0]=r[0],a[1]=r[1],a[2]=r[2]),o.distance=q(r,e),o}function Ev(e,t,n,r,a,o){var i=[],s=[],l=[];a[0]=0,o[0]=0,i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],s[0]=r[0]-n[0],s[1]=r[1]-n[1],s[2]=r[2]-n[2],l[0]=n[0]-e[0],l[1]=n[1]-e[1],l[2]=n[2]-e[2];var c=[];c[0]=[W(i,i),-W(i,s)],c[1]=[c[0][1],W(s,s)];var u=[];if(u[0]=W(i,l),u[1]=-W(s,l),0===pe(c,u,2)){for(var d,f=Number.MAX_VALUE,p=[e,t,n,r],g=[n,n,e,e],m=[r,r,t,t],v=[o[0],o[0],a[0],a[0]],h=[a[0],a[0],o[0],o[0]],y=0;y<4;y++)(d=Rv(p[y],g[y],m[y])).distance=0&&a[0]<=1&&o[0]>=0&&o[0]<=1?Iv.YES_INTERSECTION:Iv.NO_INTERSECTION}var Dv={distanceToLine:Rv,intersection:Ev};var Vv={};function Lv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=function(){return 1},e.intersectWithLine=function(e,n,r,a,o){var i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;var s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);var u=[],d=[],f=Ev(e,n,l,c,u,d);if(i.t=u[0],i.betweenPoints=function(e){return e>=0&&e<=1}(i.t),o[0]=d[0],f===Iv.YES_INTERSECTION){for(var p=0;p<3;p++)a[p]=l[p]+o[0]*(c[p]-l[p]),s[p]=e[p]+i.t*(n[p]-e[p]);if(q(a,s)<=r*r)return i.intersect=1,i}else{var g;if(i.t<0)return(g=Rv(e,l,c,a)).distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return(g=Rv(n,l,c,a)).distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(o[0]<0)return o[0]=0,g=Rv(l,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i;if(o[0]>1)return o[0]=1,g=Rv(c,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var Nv=Mv(Mv({newInstance:f.a.newInstance(Lv,"vtkLine"),extend:Lv},Dv),xv);var Bv={};function kv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bv,n),Cn.extend(e,t,n),f.a.setGet(e,t,["points"]),function(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Object(en.a)(t.points):t.points=tv.newInstance(),e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.getBounds=function(){return t.points.getBounds()},e.computeBounds=function(){e.getBounds()};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=tv.newInstance(),t.points.shallowCopy(e.getPoints())}}(e,t)}var Fv={newInstance:f.a.newInstance(kv,"vtkPointSet"),extend:kv};function Gv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uv(e,t,n,r){var a=n[0]-t[0],o=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=o*c-i*l,r[1]=i*s-a*c,r[2]=a*l-o*s}function jv(e,t,n,r){Uv(e,t,n,r);var a=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==a&&(r[0]/=a,r[1]/=a,r[2]/=a)}var Wv={computeNormalDirection:Uv,computeNormal:jv};var zv={};function Hv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkTriangle"),e.getCellDimension=function(){return 2},e.intersectWithLine=function(n,r,a,o,i){var s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;var l=a*a,c=[],u=[],d=[];t.points.getPoint(0,c),t.points.getPoint(1,u),t.points.getPoint(2,d);var f=[];if(jv(c,u,d,f),0!==f[0]||0!==f[1]||0!==f[2]){var p=ft.intersectWithLine(n,r,c,f);if(s.betweenPoints=p.betweenPoints,s.t=p.t,o[0]=p.x[0],o[1]=p.x[1],o[2]=p.x[2],!p.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;var g=e.evaluatePosition(o,[],i,[]);if(g.evaluation>=0)return g.dist2<=l?(s.intersect=1,s):(s.intersect=g.evaluation,s)}var m=q(c,u),v=q(u,d),h=q(d,c);t.line||(t.line=Nv.newInstance()),m>v&&m>h?(t.line.getPoints().setPoint(0,c),t.line.getPoints().setPoint(1,u)):v>h&&v>m?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,c));var y=t.line.intersectWithLine(n,r,a,o,i);if(s.betweenPoints=y.betweenPoints,s.t=y.t,y.intersect){for(var b=[],T=[],C=[],S=0;S<3;S++)b[S]=c[S]-d[S],T[S]=u[S]-d[S],C[S]=o[S]-d[S];return i[0]=W(C,b)/h,i[1]=W(C,T)/v,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=function(e,n,r,a){var o,i,s,l,c,u,d,f={subId:0,dist2:0,evaluation:-1},p=[],g=[],m=[],v=[],h=[],y=[],b=[],T=0,C=[],S=[],P=[],w=[],x=[];f.subId=0,r[2]=0,t.points.getPoint(1,p),t.points.getPoint(2,g),t.points.getPoint(0,m),Uv(p,g,m,v),ft.generalizedProjectPoint(e,p,v,x);var O=0;for(o=0;o<3;o++)(s=v[o]<0?-v[o]:v[o])>O&&(O=s,T=o);for(i=0,o=0;o<3;o++)o!==T&&(C[i++]=o);for(o=0;o<2;o++)h[o]=x[C[o]]-m[C[o]],y[o]=p[C[o]]-m[C[o]],b[o]=g[C[o]]-m[C[o]];if(0===(l=Q(y,b)))return r[0]=0,r[1]=0,f.evaluation=-1,f;if(r[0]=Q(h,b)/l,r[1]=Q(y,h)/l,a[0]=1-(r[0]+r[1]),a[1]=r[0],a[2]=r[1],a[0]>=0&&a[0]<=1&&a[1]>=0&&a[1]<=1&&a[2]>=0&&a[2]<=1)n&&(f.dist2=q(x,e),n[0]=x[0],n[1]=x[1],n[2]=x[2]),f.evaluation=1;else{var M;if(n)if(a[1]<0&&a[2]<0)for(c=q(e,m),u=Nv.distanceToLine(e,p,m,M,P),d=Nv.distanceToLine(e,m,g,M,w),c1?r[a]-1:0)>n&&(n=t);return n}}(e,t)}var Kv,Xv=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$v,n),Fv.extend(e,t,n),f.a.get(e,t,["cells","links"]),f.a.setGet(e,t,["verts","lines","polys","strips"]),function(e,t){t.classHierarchy.push("vtkPolyData"),qv.forEach(function(n){e["getNumberOf".concat(function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e){return e.toUpperCase()}).replace(/\s+/g,"")}(n))]=function(){return t[n].getNumberOfCells()},t[n]?t[n]=Object(en.a)(t[n]):t[n]=lv.newInstance()}),e.getNumberOfCells=function(){return qv.reduce(function(e,n){return e+t[n].getNumberOfCells()},0)};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),qv.forEach(function(n){t[n]=lv.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})},e.buildCells=function(){var n=e.getNumberOfVerts(),r=e.getNumberOfLines(),a=e.getNumberOfPolys(),o=e.getNumberOfStrips(),i=n+r+a+o,s=new Uint8Array(i),l=s,c=new Uint32Array(i),u=c;if(n){var d=0;t.verts.getCellSizes().forEach(function(e,t){u[t]=d,l[t]=e>1?hv.VTK_POLY_VERTEX:hv.VTK_VERTEX,d+=e+1}),u=u.subarray(n),l=l.subarray(n)}if(r){var f=0;t.lines.getCellSizes().forEach(function(e,t){u[t]=f,l[t]=e>2?hv.VTK_POLY_LINE:hv.VTK_LINE,1===e&&Zv("Building VTK_LINE ",t," with only one point, but VTK_LINE needs at least two points. Check the input."),f+=e+1}),u=u.subarray(r),l=l.subarray(r)}if(a){var p=0;t.polys.getCellSizes().forEach(function(e,t){switch(u[t]=p,e){case 3:l[t]=hv.VTK_TRIANGLE;break;case 4:l[t]=hv.VTK_QUAD;break;default:l[t]=hv.VTK_POLYGON}e<3&&Zv("Building VTK_TRIANGLE ",t," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=e+1}),u+=u.subarray(a),l+=l.subarray(a)}if(o){var g=0;l.fill(hv.VTK_TRIANGLE_STRIP,0,o),t.strips.getCellSizes().forEach(function(e,t){u[t]=g,g+=e+1})}t.cells=wv.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=vv.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellPoints=function(e){var n=t.cells.getCellType(e),r=null;switch(n){case hv.VTK_VERTEX:case hv.VTK_POLY_VERTEX:r=t.verts;break;case hv.VTK_LINE:case hv.VTK_POLY_LINE:r=t.lines;break;case hv.VTK_TRIANGLE:case hv.VTK_QUAD:case hv.VTK_POLYGON:r=t.polys;break;case hv.VTK_TRIANGLE_STRIP:r=t.strips;break;default:return r=null,{type:0,cellPointIds:null}}var a=t.cells.getCellLocation(e);return{cellType:n,cellPointIds:r.getCell(a)}},e.getPointCells=function(e){return t.links.getCells(e)},e.getCellEdgeNeighbors=function(e,n,r){var a=t.links.getLink(n),o=t.links.getLink(r);return a.cells.filter(function(t){return t!==e&&-1!==o.cells.indexOf(t)})},e.getCell=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=e.getCellPoints(t),a=n||Qv[r.cellType].newInstance();return a.initialize(e.getPoints(),r.cellPointIds),a}}(e,t)}var eh={newInstance:f.a.newInstance(Jv,"vtkPolyData"),extend:Jv};function th(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nh(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rh=f.a.vtkDebugMacro;function ah(e,t){t.classHierarchy.push("vtkActor");var n=function(e){for(var t=1;t=1;return n=(n=n&&(!t.texture||!t.texture.isTranslucent()))&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque())},e.makeProperty=ju.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){rh("Recomputing bounds..."),t.mapperBounds=n.concat();var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?r:e}if(null!==t.backfaceProperty){var a=t.backfaceProperty.getMTime();e=a>e?a:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()}}var oh={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ih(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oh,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),ah(e,t)}var sh={newInstance:f.a.newInstance(ih,"vtkActor"),extend:ih};function lh(e){return function(e){if(Array.isArray(e))return ch(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ch(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ch(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ch(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uh,n),f.a.obj(e,t),f.a.get(e,t,["renderWindow","renderer","openGLRenderWindow","interactor","container"]),f.a.event(e,t,"resize"),function(e,t){var n=e.invokeResize;delete e.invokeResize,t.renderWindow=lg.newInstance(),t.renderer=dm.newInstance(),t.renderWindow.addRenderer(t.renderer),t.openGLRenderWindow=zg.newInstance(),t.renderWindow.addView(t.openGLRenderWindow),t.interactor=Im.newInstance(),t.interactor.setInteractorStyle(Zm.newInstance()),t.interactor.setView(t.openGLRenderWindow),t.interactor.initialize(),e.setBackground=t.renderer.setBackground,e.setBackground.apply(e,lh(t.background)),e.resize=function(){if(t.container){var e=t.container.getBoundingClientRect(),r=window.devicePixelRatio||1;t.openGLRenderWindow.setSize(Math.floor(e.width*r),Math.floor(e.height*r)),n(),t.renderWindow.render()}},e.setContainer=function(e){t.container&&t.interactor.unbindEvents(t.container),t.container=e,t.openGLRenderWindow.setContainer(t.container),t.container&&t.interactor.bindEvents(t.container)},e.delete=f.a.chain(e.setContainer,t.openGLRenderWindow.delete,e.delete),t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}(e,t)}var fh={newInstance:f.a.newInstance(dh),extend:dh},ph={DEFAULT:0,GEOMETRY:1,SLICE:2,VOLUME:3,YZ_PLANE:4,XZ_PLANE:5,XY_PLANE:6},gh={PICKING_BUFFER:0,FRONT_BUFFER:1},mh={ViewTypes:ph,RenderingTypes:gh,CaptureOn:{MOUSE_MOVE:0,MOUSE_RELEASE:1}},vh=.5;var hh={contextVisibility:!0,handleVisibility:!0,hasFocus:!1};function yh(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hh,n),Bi.extend(e,t,n),Fm.extend(e,t,n),f.a.setGet(e,t,["contextVisibility","handleVisibility","widgetManager"]),f.a.get(e,t,["representations","widgetState"]),f.a.event(e,t,"ActivateHandle"),function(e,t){t.classHierarchy.push("vtkAbstractWidget"),t.actorToRepresentationMap=new WeakMap,e.getBounds=t.widgetState.getBounds,e.getNestedProps=function(){return t.representations},e.activateHandle=function(n){var r=n.selectedState,a=n.representation;t.widgetState.activateOnly(r),t.activeState=r,r&&r.updateManipulator&&r.updateManipulator(),e.invokeActivateHandle({selectedState:r,representation:a}),e.updateCursor&&e.updateCursor()},e.deactivateAllHandles=function(){t.widgetState.deactivate()},e.hasActor=function(e){return t.actorToRepresentationMap.has(e)},e.grabFocus=function(){t.hasFocus=!0},e.loseFocus=function(){t.hasFocus=!1},e.hasFocus=function(){return t.hasFocus},e.placeWidget=function(e){return t.widgetState.placeWidget(e)},e.getPlaceFactor=function(){return t.widgetState.getPlaceFactor()},e.setPlaceFactor=function(e){return t.widgetState.setPlaceFactor(e)},e.getRepresentationFromActor=function(e){return t.actorToRepresentationMap.get(e)},e.updateRepresentationForRender=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Th,n),sf.extend(e,t,n),f.a.setGet(e,t,["callback","useZValues"]),function(e,t){t.classHierarchy.push("vtkPixelSpaceCallbackMapper"),t.callback||(t.callback=function(){}),e.invokeCallback=function(e,n,r,a,s){if(t.callback){var l=n.getCompositeProjectionMatrix(r,-1,1);o.transpose(l,l);for(var c=e.getPoints(),u=new Float64Array(3),d=a.usize,f=a.vsize,p=d/2,g=f/2,m=[],v=0;ve.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ih,n),Bi.extend(e,t,n),f.a.algo(e,t,1,1),f.a.get(e,t,["labels","coincidentTopologyParameters"]),f.a.set(e,t,["displayScaleParams"]),f.a.setGet(e,t,["scaleInPixels"]),function(e,t){t.classHierarchy.push("vtkWidgetRepresentation");var n={mtimes:{},states:[]};function r(e,t){e&&e.setResolveCoincidentTopologyToPolygonOffset&&(e.setResolveCoincidentTopologyToPolygonOffset(),zd.forEach(function(n){if(t[n]){var r="setRelativeCoincidentTopology".concat(n,"OffsetParameters");if(e[r]){var a=t[n],o=a.factor,i=a.offset;e[r](o,i)}}}))}e.getActors=function(){return t.actors},e.getNestedProps=e.getActors,e.setLabels=function(){for(var n=arguments.length,r=new Array(n),a=0;a0&&void 0!==arguments[0]?arguments[0]:t.inputData[0];return n.mtimes.representation===e.getMTime()&&n.mtimes.input===r.getMTime()?n.states:(n.mtimes.representation=e.getMTime(),n.mtimes.input=r.getMTime(),n.states=[],t.labels.forEach(function(e){n.states=n.states.concat(r.getStatesWithLabel(e)||[])}),n.states)},e.getSelectedState=function(t,n){var r=e.getRepresentationStates();return n0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!0;switch(t.behavior){case Ph.HANDLE:o=e===gh.PICKING_BUFFER||a;break;case Ph.CONTEXT:o=e===gh.FRONT_BUFFER&&r;break;default:o=!0}for(var i=n&&o,s=0;s1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n=i;f--)d(f)}return n}function _h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Uh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Uh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Uh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qh,n),f.a.obj(e,t),f.a.setGet(e,t,["captureOn",{type:"enum",name:"viewType",enum:jh}]),f.a.get(e,t,["selections","widgets","viewId","pickingEnabled","useSvgLayer"]),Zh(e,t)}var Jh={newInstance:f.a.newInstance($h,"vtkWidgetManager"),extend:$h,Constants:mh};function ey(e){return function(e){if(Array.isArray(e))return ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]&&arguments[2];f.a.obj(e,t),f.a.get(e,t,["widgetState"]),f.a.event(e,t,"WidgetChange"),function(e,t){t.classHierarchy.push("vtkAbstractWidgetFactory");var n={};e.getWidgetForView=function(r){var a=r.viewId,o=r.renderer,i=r.viewType,s=r.initialValues;if(!n[a]){if(!o)return null;var l=Yh(o),c=l.interactor,u=l.apiSpecificRenderWindow,d=l.camera,p={},g={onWidgetChange:e.onWidgetChange};Object.assign(p,t,{viewType:i,renderer:o,camera:d,apiSpecificRenderWindow:u,factory:e}),f.a.safeArrays(p),bh.extend(g,p,s);var m=s;p.representations=e.getRepresentationsForViewType(i).map(function(e){var t=e.builder,n=e.labels,r=e.initialValues;return t.newInstance(ry(ry({labels:n},r),m))}),p.representations.forEach(function(e){e.setInputData(p.widgetState),e.getActors().forEach(function(t){p.actorToRepresentationMap.set(t,e)})}),t.behavior(g,p),["coincidentTopologyParameters"].concat(ey(t.methodsToLink||[])).forEach(function(e){var t,n="set".concat(f.a.capitalize(e)),r="get".concat(f.a.capitalize(e)),a=(ay(t={},e,[]),ay(t,n,[]),ay(t,r,[]),t);p.representations.forEach(function(t){t[e]&&a[e].push(t[e]),t[n]&&a[n].push(t[n]),t[r]&&a[r].push(t[r])}),Object.keys(a).forEach(function(e){var t=a[e];1===t.length?g[e]=t[0]:t.length>1&&(g[e]=f.a.chain.apply(f.a,ey(t)))})}),g.delete=f.a.chain(function(){delete n[a]},g.delete),g.setInteractor(c);var v=Object.freeze(g);return n[a]=v,v}return n[a]},e.getViewIds=function(){return Object.keys(n)},e.setVisibility=function(e){for(var t=Object.keys(n),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cy,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlaneManipulator"),e.handleEvent=function(e,n){return ly(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var dy={intersectDisplayWithPlane:ly,extend:uy,newInstance:f.a.newInstance(uy,"vtkPlaneManipulator")};function fy(e,t,n,r,a,o){var i=o.displayToWorld(e,t,0,a),s=[0,0,0];G(o.displayToWorld(e,t,1,a),i,s);var l=[0,0,0];z(r,s,l),z(l,s,l);var c=W([i[0]-n[0],i[1]-n[1],i[2]-n[2]],l),u=W(l,r),d=r.slice();return U(d,c/u),F(n,d,d),d}var py={origin:[0,0,0],normal:[0,0,1]};function gy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,py,n),f.a.obj(e,t),f.a.setGetArray(e,t,["origin","normal"],3),function(e,t){t.classHierarchy.push("vtkLineManipulator"),e.handleEvent=function(e,n){return fy(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var my={projectDisplayToLine:fy,extend:gy,newInstance:f.a.newInstance(gy,"vtkLineManipulator")},vy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function by(e){return function(e){if(Array.isArray(e))return Ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),sf.extend(e,t,n),f.a.algo(e,t,2,0),t.buildTime={},f.a.obj(t.buildTime,{mtime:0}),t.boundsTime={},f.a.obj(t.boundsTime,{mtime:0}),f.a.setGet(e,t,["orient","orientationMode","orientationArray","scaleArray","scaleFactor","scaleMode","scaling"]),f.a.get(e,t,["colorArray","matrixArray","normalArray","buildTime"]),function(e,t){t.classHierarchy.push("vtkGlyph3DMapper"),e.getOrientationModeAsString=function(){return f.a.enumToString(Cy,t.orientationMode)},e.setOrientationModeToDirection=function(){return e.setOrientationMode(Cy.DIRECTION)},e.setOrientationModeToRotation=function(){return e.setOrientationMode(Cy.ROTATION)},e.setOrientationModeToMatrix=function(){return e.setOrientationMode(Cy.MATRIX)},e.getOrientationArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=function(){return f.a.enumToString(Sy,t.scaleMode)},e.setScaleModeToScaleByMagnitude=function(){return e.setScaleMode(Sy.SCALE_BY_MAGNITUDE)},e.setScaleModeToScaleByComponents=function(){return e.setScaleMode(Sy.SCALE_BY_COMPONENTS)},e.setScaleModeToScaleByConstant=function(){return e.setScaleMode(Sy.SCALE_BY_CONSTANT)},e.getScaleArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.getBounds=function(){var n=e.getInputData(0),r=e.getInputData(1);return n&&r?(e.buildArrays(),t.bounds):Ne()},e.buildArrays=function(){var n=e.getInputData(0),r=e.getInputData(1);if(t.buildTime.getMTime()t.bounds[1]&&(t.bounds[1]=p[0]),p[1]>t.bounds[3]&&(t.bounds[3]=p[1]),p[2]>t.bounds[5]&&(t.bounds[5]=p[2]);var E=new Float32Array(T,36*S,9);a.fromMat4(E,P),a.invert(E,E),a.transpose(E,E)}var D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;var V=e.getLookupTable();V&&D&&(V.build(),t.colorArray=V.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}},e.getPrimitiveCount=function(){var t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}}}(e,t)}var Oy=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},r=Ay(Ay({},Ry),n);Rh.extend(e,t,r),f.a.setGet(e,t,["activeScaleFactor","activeColor","useActiveColor"]),function(e,t){t.classHierarchy.push("vtkHandleRepresentation")}(0,t)}};var Dy={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float32Array"};function Vy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dy,n),f.a.obj(e,t),f.a.setGet(e,t,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),f.a.setGetArray(e,t,["center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkSphereSource"),e.requestData=function(e,n){if(!t.deleted){var r=n[0],a=r?r.getPoints().getDataType():"Float32Array";r=eh.newInstance();var o=0,i=t.thetaResolution,s=t.startThetat.startTheta?t.endTheta:t.startTheta;l*=Math.PI/180;var c=t.startPhit.startPhi?t.endPhi:t.startPhi;u*=Math.PI/180,Math.abs(s-l)<2*Math.PI&&++i;var d=(l-s)/t.thetaResolution,p=t.startPhi<=0?1:0,g=t.phiResolution+(t.endPhi>=180?-1:0),m=t.phiResolution*i+2,v=2*t.phiResolution*t.thetaResolution,h=0,y=f.a.newTypedArray(a,3*m),b=new Float32Array(3*m),T=0,C=new Uint32Array(5*v);t.startPhi<=0&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]+t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=1,h++,o++),t.endPhi>=180&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]-t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=-1,h++,o++);for(var S=t.phiResolution-o,P=(u-c)/(t.phiResolution-1),w=0;w=180)for(var D=S-1+o,V=0;V2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ny,n),Ey.extend(e,t,n),f.a.get(e,t,["glyph","mapper","actor"]),function(e,t){function n(n){if(t.displayCallback){for(var r=[],a=e.getRepresentationStates(),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},r=Gy(Gy({},Uy),n);Rh.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkContextRepresentation")}(0,t)}};function Wy(e){return function(e){if(Array.isArray(e))return zy(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return zy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zy(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),jy.extend(e,t,n),f.a.setGetArray(e,t,["edgeColor"],3),f.a.get(e,t,["mapper","actor"]),function(e,t){var n;t.classHierarchy.push("vtkCroppingOutlineRepresentation"),t.internalPolyData=eh.newInstance({mtime:0}),t.points=new Float32Array(24),t.internalPolyData.getPoints().setData(t.points,3),t.internalPolyData.getLines().setData(Uint16Array.from(Ky)),t.mapper=sf.newInstance({scalarVisibility:!1}),t.actor=sh.newInstance(),(n=t.actor.getProperty()).setEdgeColor.apply(n,Wy(t.edgeColor)),t.mapper.setInputConnection(e.getOutputPort()),t.actor.setMapper(t.mapper),e.addActor(t.actor),e.requestData=function(n,r){var a=e.getRepresentationStates(n[0]);if(8===a.length){for(var o=0,i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ib,n),f.a.obj(e,t),f.a.setGet(e,t,["active"]),function(e,t){t.classHierarchy.push("vtkWidgetState");var n=[];t.labels={},t.nestedStates=[],e.bindState=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[ab];if(t.nestedStates.push(r),n.push(r.onModified(e.modified)),Array.isArray(a)&&a.length)for(var o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ub,n),f.a.setGetArray(e,t,["bounds"],6),f.a.get(e,t,["placeFactor"]),f.a.event(e,t,"BoundsChange"),t.bounds=t.bounds.slice(),function(e,t){var n=[],r=lb(Jt.INIT_BOUNDS);e.containsPoint=function(e,t,n){return Array.isArray(e)?Jt.containsPoint(r,e[0],e[1],e[2]):Jt.containsPoint(r,e,t,n)},e.placeWidget=function(a){t.bounds=[];for(var o=[(a[0]+a[1])/2,(a[2]+a[3])/2,(a[4]+a[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];n[i]=a[i],t.bounds[i]=(a[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()},e.setPlaceFactor=function(a){if(t.placeFactor!==a){t.placeFactor=a,t.bounds=[];for(var o=[(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];t.bounds[i]=(n[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()}}}(e,t)}},fb={color:.5};var pb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fb,n),f.a.setGet(e,t,["color"])}};function gb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return mb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),f.a.setGetArray(e,t,["corner"],3),function(e,t){e.translate=function(t,n,r){var a=gb(e.getCornerByReference(),3),o=a[0],i=a[1],s=a[2];e.setCorner(o+t,i+n,s+r)}}(e)}};function yb(e){return function(e){if(Array.isArray(e))return bb(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bb(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]&&arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.matrix=o.identity(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=t?r.toRadian:Cb}return function(e,t,n){t&&Tb(e.prototype,t),n&&Tb(e,n)}(e,[{key:"rotateFromDirections",value:function(e,t){var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(16);i.set(n,e[0],e[1],e[2]),i.set(r,t[0],t[1],t[2]),i.normalize(n,n),i.normalize(r,r);var s=i.dot(n,r);return s>=1?this:(i.cross(this.tmp,n,r),i.length(this.tmp)<1e-6&&(i.cross(this.tmp,[1,0,0],e),i.length(this.tmp)<1e-6&&i.cross(this.tmp,[0,1,0],e)),o.fromRotation(a,Math.acos(s),this.tmp),o.multiply(this.matrix,this.matrix,a),this)}},{key:"rotate",value:function(e,t){return i.set.apply(i,[this.tmp].concat(yb(t))),i.normalize(this.tmp,this.tmp),o.rotate(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}},{key:"rotateX",value:function(e){return o.rotateX(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateY",value:function(e){return o.rotateY(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateZ",value:function(e){return o.rotateZ(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"translate",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.translate(this.matrix,this.matrix,this.tmp),this}},{key:"scale",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.scale(this.matrix,this.matrix,this.tmp),this}},{key:"multiply",value:function(e){return o.multiply(this.matrix,this.matrix,e),this}},{key:"identity",value:function(){return o.identity(this.matrix),this}},{key:"apply",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if(ae(Sb,this.matrix))return this;for(var r=-1===n?e.length:t+3*n,a=t;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),f.a.setGetArray(e,t,["direction"],3),function(e,t){var n="degree"===t.angleUnit?wb.buildFromDegree():wb.buildFromRadian();e.rotateFromDirections=function(r,a){n.identity().rotateFromDirections(r,a).apply(t.direction),e.modified()},e.rotate=function(e,r){n.identity().rotate(e,r).apply(t.direction)},e.rotateX=function(e){n.identity().rotateX(e).apply(t.direction)},e.rotateY=function(e){n.identity().rotateY(e).apply(t.direction)},e.rotateZ=function(e){n.identity().rotateZ(e).apply(t.direction)}}(e,t)}};var Mb={manipulator:null};var Ab={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mb,n),f.a.setGet(e,t,["manipulator"]),function(e,t){e.updateManipulator=function(){if(t.manipulator){var e=t.origin,n=t.normal,r=t.direction,a=t.manipulator,o=a.setOrigin,i=a.setCenter,s=a.setNormal,l=a.setDirection;e&&o?o(e):e&&i&&i(e),r&&l?l(r):r&&!n&&s?s(r):n&&l&&l(n)}}}(e,t)}},Ib={name:""};var Rb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ib,n),f.a.setGet(e,t,["name"])}};function Eb(e,t){return 3===e.length&&3===t.length&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Db(e,t){var n={o:[],p1:[],p2:[]};e.normalize=function(){K(t.up),K(t.right),K(t.direction),e.modified()},e.updateFromOriginRightUp=function(r,a,o){(function(e,t,n,r){return Eb(e,r.o)&&Eb(t,r.p1)&&Eb(n,r.p2)})(r,a,o,n)||(n.o=r.slice(),n.p1=a.slice(),n.p2=o.slice(),t.up=[o[0]-r[0],o[1]-r[1],o[2]-r[2]],t.right=[a[0]-r[0],a[1]-r[1],a[2]-r[2]],z(t.up,t.right,t.direction),z(t.direction,t.up,t.right),e.normalize(),e.modified())}}var Vb={up:[0,1,0],right:[1,0,0],direction:[0,0,1]};var Lb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vb,n),f.a.setGetArray(e,t,["up","right","direction"],3),Db(e,t)}};function Nb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Bb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kb,n),f.a.setGetArray(e,t,["origin"],3),function(e,t){e.translate=function(t,n,r){var a=Nb(e.getOriginByReference(),3),o=a[0],i=a[1],s=a[2];e.setOrigin(o+t,i+n,s+r)}}(e)}},Gb={scale1:.5};var _b={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),f.a.setGet(e,t,["scale1"])}},Ub={scale3:[1,1,1]};var jb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ub,n),f.a.setGetArray(e,t,["scale3"],3)}},Wb={text:"DefaultText"};var zb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wb,n),f.a.setGet(e,t,["text"])}},Hb={visible:!0};var Kb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hb,n),f.a.setGet(e,t,["visible"]),e.isVisible=e.getVisible}},Xb={shape:""};var qb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xb,n),f.a.setGet(e,t,["shape"])}};function Yb(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};arguments.length>4&&void 0!==arguments[4]&&arguments[4]||sb.extend(n,r,t);for(var a=0;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pT,n),sy.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkImageCroppingWidget");var n=null;function r(e,n){t.widgetState.getStatesWithLabel(e).forEach(function(e){e.setVisible(n)})}e.setFaceHandlesEnabled=function(e){return r("faces",e)},e.setEdgeHandlesEnabled=function(e){return r("edges",e)},e.setCornerHandlesEnabled=function(e){return r("corners",e)},e.copyImageDataDescription=function(n){var r,a;(r=t.widgetState).setIndexToWorldT.apply(r,uT(n.getIndexToWorld())),(a=t.widgetState).setWorldToIndexT.apply(a,uT(n.getWorldToIndex()));var o=n.getDimensions();t.widgetState.getCroppingPlanes().setPlanes([0,o[0],0,o[1],0,o[2]]),e.modified()},e.updateHandles=function(){for(var e=t.widgetState.getCroppingPlanes().getPlanes(),n=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],r=[e[0],n[0],e[1]],a=[e[2],n[1],e[3]],o=[e[4],n[2],e[5]],i=t.widgetState.getIndexToWorldT(),s=function(e){return $y[e]},l=0;l<3;l++)for(var c=0;c<3;c++)for(var u=0;u<3;u++)if(1!==l||1!==c||1!==u){var d=[l,c,u].map(s).join(""),f=Jy([r[l],a[c],o[u]],i),p=cT(t.widgetState.getStatesWithLabel(d),1)[0];p.setOrigin.apply(p,uT(f))}},e.delete=f.a.chain(e.delete,function(){n&&n.unsubscribe()}),t.behavior=rb,t.widgetState=lT(),e.getRepresentationsForViewType=function(e){switch(e){case ph.DEFAULT:case ph.GEOMETRY:case ph.SLICE:case ph.VOLUME:default:return[{builder:ky,labels:["handles"]},{builder:Yy,labels:["corners"]}]}},n=t.widgetState.getCroppingPlanes().onModified(e.updateHandles);var a=dy.newInstance(),o=my.newInstance();t.widgetState.getStatesWithLabel("corners").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("edges").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("faces").forEach(function(e){return e.setManipulator(o)})}(e,t)}var mT={newInstance:f.a.newInstance(gT,"vtkImageCroppingWidget"),extend:gT};function vT(e){return function(e){if(Array.isArray(e))return hT(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bT,n),f.a.obj(e,t),f.a.algo(e,t,1,1),f.a.setGetArray(e,t,["croppingPlanes"],6),function(e,t){t.classHierarchy.push("vtkImageCropFilter"),e.reset=function(){var t=e.getInputData();t&&e.setCroppingPlanes.apply(e,vT(t.getExtent()))},e.requestData=function(e,n){var r=e[0];if(r){var a=r.getPointData().getScalars();if(a){var o=r.getExtent(),i=6===t.croppingPlanes.length?o.map(function(e,n){return n%2==0?Math.max(e,Math.round(t.croppingPlanes[n])):Math.min(e,Math.round(t.croppingPlanes[n]))}):o.slice();if(i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&i[4]===o[4]&&i[5]===o[5]){var s=Di.newInstance();return s.shallowCopy(r),void(n[0]=s)}for(var l=0;l<3;++l)if(i[2*l]>i[2*l+1]){var c=[i[2*l+1],i[2*l]];i[2*l]=c[0],i[2*l+1]=c[1]}for(var u=0;u<6;u+=2)i[u]=Math.max(i[u],o[u]),i[u+1]=Math.min(i[u+1],o[u+1]);for(var d=a.getNumberOfComponents(),f=(i[1]-i[0]+1)*(i[3]-i[2]+1)*(i[5]-i[4]+1)*d,p=a.getData(),g=r.getDimensions(),m=d*g[0],v=d*g[0]*g[1],h=(i[0]-o[0])*d,y=(i[1]-i[0]+1)*d,b=new p.constructor(f),T=0,C=i[4];C<=i[5];++C)for(var S=i[2];S<=i[3];++S){var P=h+(S-o[2])*m+(C-o[4])*v,w=P+y,x=p.subarray(P,w);b.set(x,T),T+=x.length}var O=Di.newInstance({extent:i,origin:r.getOrigin(),direction:r.getDirection(),spacing:r.getSpacing()}),M=Qe.newInstance({name:a.getName(),numberOfComponents:d,values:b});O.getPointData().setScalars(M),n[0]=O}else yT("No scalars from input")}else yT("Invalid or missing input")},e.isResetAvailable=function(){if(0===t.croppingPlanes.length)return!1;var n=e.getInputData();return!!n&&void 0!==n.getExtent().find(function(e,n){return Math.abs(t.croppingPlanes[n]-e)>Number.EPSILON})}}(e,t)}f.a.newInstance(TT,"vtkImageCropFilter");var CT=n(13),ST=Object.create(null);CT.filter(function(e){return e.RGBPoints}).filter(function(e){return"CIELAB"!==e.ColorSpace}).forEach(function(e){ST[e.Name]=e});var PT=Object.keys(ST);PT.sort();var wT={addPreset:function(e){e.RGBPoints&&"CIELAB"!==e.ColorSpace&&(ST[e.Name]||(PT.push(e.Name),PT.sort()),ST[e.Name]=e)},removePresetByName:function(e){var t=PT.indexOf(e);t>-1&&PT.splice(t,1),delete ST[e]},getPresetByName:function(e){return ST[e]},rgbPresetNames:PT},xT=n(14),OT=n.n(xT),MT=n(15),AT=n.n(MT);function IT(){return AT()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";var n=function(){function e(e,t){for(var r=0;r1?t-1:0),o=1;o1?r-1:0),a=1;a3&&void 0!==arguments[3]?arguments[3]:[];r([l,e,t,n],o)},m=function(e,t,n){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");r([c,e,t,n])};return self.addEventListener("message",function(e){var t=e.data;Array.isArray(t)?function(e,t,r){var n=function(t){t&&t instanceof b?d(e,p,t.payload,t.transferable):d(e,p,t)},o=function(t){d(e,s,{message:t.message,stack:t.stack})};try{var i=h(e,t,r);v(i)?i.then(n).catch(o):n(i)}catch(e){o(e)}}.apply(void 0,a(t)):t&&t.eventName&&i.emitLocally.apply(i,[t.eventName].concat(a(t.args)))}),i},e.exports.TransferableResponse=b},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);o()(function(e,t){var r=e.array,n=e.min,i=e.max,a=e.component||0,u=e.numberOfComponents||1,f=e.numberOfBins,l=i-n,c=new Float32Array(f);c.fill(0);for(var s=r.length,p=a;p1?t-1:0),n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:256,n=[];n.lengtho+s||do+l?f===l?o:o+f/(f-l)*(d-o-l):-f===l?o:o-f/(f+l)*(d-o-l))-o)/f,g=Math.exp(-4*p*p),m=1-p*p,v=i*(c<1?c*m+(1-c)*g:(2-c)*m+1*(c-1));v>n[u]&&(n[u]=v)}}return n}function jT(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{lineWidth:1,strokeStyle:"#000"},a=t[3],o=t[2]/(n.length-1),i=!!r.fillStyle,s=a+t[1];e.lineWidth=r.lineWidth,e.strokeStyle=r.strokeStyle,e.beginPath(),e.moveTo(t[0],t[1]+t[3]);for(var l=0;l3&&void 0!==arguments[3]?arguments[3]:[0,1];return[r[0]+(e-n[0])/n[2]*(r[1]-r[0]),(t-n[1])/n[3]]}function zT(e,t){var n=t.map(function(t){return Math.abs(t.position-e)}),r=Math.min.apply(Math,LT(n));return n.indexOf(r)}function HT(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(n){var r=n.offsetX,a=n.offsetY;t&&n.preventDefault(),e(r,a)}}function KT(){GT.filter(function(e){return e.ready}).forEach(function(e){e.callbacks.forEach(function(t){t.touches===e.touches&&t.clicks===e.count&&t.action.apply(t,LT(e.singleTouche))}),e.ts=0,e.count=0,e.touches=0,e.ready=!1})}function XT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return function(a){var o=a.target.getBoundingClientRect(),i=Array.prototype.map.call(a.touches,function(e){return[e.pageX-o.left,e.pageY-o.top]}).reduce(function(e,t){return[e[0]+t[0],e[1]+t[1]]},[0,0]).map(function(e){return e/a.touches.length});"touchstart"===a.type?(clearTimeout(GT[e].timeout),GT[e].ts=a.timeStamp,GT[e].singleTouche=i,GT[e].touches=a.touches.length):"touchmove"===a.type?(GT[e].ts=0,GT[e].count=0,GT[e].ready=!1):"touchend"===a.type&&(a.timeStamp-GT[e].ts1&&void 0!==arguments[1]?arguments[1]:{},a=r.numberOfBinToConsiders,o=void 0===a?1:a,i=r.numberOfBinsToSkip,s=void 0===i?1:i,l=r.numberOfComponents,c=void 0===l?1:l,u=r.component,d=void 0===u?0:u;t.histogram=null,t.histogramArray=n,t.dataRange=D(n,d,c);var f=RT(t.dataRange,2),p=f[0],g=f[1],m=Math.floor(n.length/4)||1;m+=m%c;for(var v=0,h=[],y=[];vr;)a.shift();for(var l=a.reduce(function(e,t){return e+t},0)/r,c=0,u=t.histogram.length;c1){for(var s=t.style.iconSize+t.style.padding,l=s,c=0;r>l;)c+=1,l+=s;switch(c){case 0:var u=e.addGaussian(0,1,.1,0,0),d=t.gaussians[u],p=DT({},d),g=_T.adjustPosition;t.activeGaussian=u,t.selectedGaussian=u,f.a.setImmediate(function(){e.onDown(n,r),t.dragAction={originalXY:[0,0],action:g,gaussian:d,originalGaussian:p}});break;case 1:-1!==t.selectedGaussian&&e.removeGaussian(t.selectedGaussian);break;default:t.selectedGaussian=-1,t.dragAction=null}}else if(o<0||o>1||i<0||i>1)t.selectedGaussian=-1,t.dragAction=null;else{var m=zT(o,t.gaussians);m!==t.selectedGaussian&&(t.selectedGaussian=m,e.modified())}return!0},e.onHover=function(n,r){var a=20/t.canvas.height,o=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),i=o[0],s=o[1],l=RT(WT(n,r,t.graphArea),1)[0],c=i<0?t.selectedGaussian:zT(i,t.gaussians);t.canvas.style.cursor="default";var u=t.gaussians[c];if(t.enableRangeZoom&&l>=0&&rt.rangeZoom[1]-d?t.canvas.style.cursor=FT.adjustZoom:t.canvas.style.cursor=FT.adjustPosition,t.dragAction={rangeZoom:t.rangeZoom,action:_T.adjustZoom}}else if(u&&l>=0){var f=1-s,p=null;p=f>u.height+a?"adjustPosition":f>u.height-a?Math.abs(i-u.position).5*u.height+a?"adjustPosition":f>.5*u.height-a?Math.abs(i-u.position)a?"adjustPosition":"adjustWidth",t.canvas.style.cursor=FT[p];var g=_T[p],m=DT({},u);t.dragAction={originalXY:[i,s],action:g,gaussian:u,originalGaussian:m}}return c!==t.activeGaussian&&(t.activeGaussian=c,e.modified()),!0},e.onDown=function(n,r){t.mouseIsDown||e.invokeAnimation(!0),t.mouseIsDown=!0;var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);t.gaussianSide=0;var i=t.gaussians[o];return i&&(t.gaussianSide=i.position-a),o!==t.selectedGaussian&&a>0&&(t.selectedGaussian=o,e.modified()),!0},e.onDrag=function(n,r){if(t.dragAction){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];(0,t.dragAction.action)(o,i,DT({gaussianSide:t.gaussianSide,model:t,publicAPI:e},t.dragAction))&&(t.opacities=UT(t.gaussians,t.piecewiseSize),e.invokeOpacityChange(e,!0)),e.modified()}return!0},e.onUp=function(n,r){return t.mouseIsDown&&e.invokeAnimation(!1),t.mouseIsDown=!1,!0},e.onLeave=function(n,r){return e.onUp(n,r),t.canvas.style.cursor="default",t.activeGaussian=-1,e.modified(),!0},e.onAddGaussian=function(n,r){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];return o>=0&&e.addGaussian(o,1-i,.1,0,0),!0},e.onRemoveGaussian=function(n,r){var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);return a>=0&&-1!==o&&e.removeGaussian(o),!0},e.bindMouseListeners=function(){if(!t.listeners){var n=function(){return!!t.mouseIsDown},r=function(){for(var e=GT.length,t=arguments.length,n=new Array(t),r=0;r1){var l=Math.round(t.style.iconSize/2-t.style.strokeWidth),c=Math.round(l+o+t.style.strokeWidth);e.beginPath(),e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor,e.arc(c-o/2,c,l,0,2*Math.PI,!1),e.fillStyle=t.style.buttonFillColor,e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c),e.stroke(),e.moveTo(c-o/2,c-l+t.style.strokeWidth+2),e.lineTo(c-o/2,c+l-t.style.strokeWidth-2),e.stroke(),-1===t.selectedGaussian?(e.fillStyle=t.style.buttonDisableFillColor,e.lineWidth=t.style.buttonDisableStrokeWidth,e.strokeStyle=t.style.buttonDisableStrokeColor):(e.fillStyle=t.style.buttonFillColor,e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor),e.beginPath(),e.arc(c-o/2,c+o/2+t.style.iconSize,l,0,2*Math.PI,!1),e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c+o/2+t.style.iconSize),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c+o/2+t.style.iconSize),e.stroke()}if(t.histogram&&jT(e,i,YT(t.histogram,t.rangeZoom),{lineWidth:1,strokeStyle:t.style.histogramColor,fillStyle:t.style.histogramColor}),jT(e,i,YT(t.opacities,t.enableRangeZoom&&t.rangeZoom),{lineWidth:t.style.strokeWidth,strokeStyle:t.style.strokeColor}),t.colorTransferFunction&&t.colorTransferFunction.getSize()){var u=t.dataRange||t.colorTransferFunction.getMappingRange();t.colorCanvas&&t.colorCanvasMTime===t.colorTransferFunction.getMTime()||(t.colorCanvasMTime=t.colorTransferFunction.getMTime(),t.colorCanvas=function(e,t,n,r){var a=r||document.createElement("canvas");a.setAttribute("width",t),a.setAttribute("height",256);for(var o=a.getContext("2d"),i=e.getUint8Table(n[0],n[1],t,4),s=o.getImageData(0,0,t,256),l=0;l<256;l++)s.data.set(i,4*l*t);for(var c=256*t*4,u=4*t,d=3;d0&&(a=Math.min(a,i)),t.opacities[i]>0&&(o=Math.max(o,i));return[n[0]+a*r,n[0]+o*r]};var n=e.setEnableRangeZoom;e.setEnableRangeZoom=function(e){var r=n(e);return r&&(t.colorCanvasMTime=0,t.rangeZoom=[0,1]),r};var r=e.setRangeZoom;e.setRangeZoom=function(){var e=r.apply(void 0,arguments);return e&&(t.colorCanvasMTime=0),e},e.onModified(function(){return e.render()}),e.setSize.apply(e,LT(t.size))}var $T={histogram:[],numberOfBins:256,histogramArray:null,dataRange:[0,1],gaussians:[],opacities:[],size:[600,300],piecewiseSize:256,colorCanvasMTime:0,gaussianMinimumHeight:.05,style:{backgroundColor:"rgba(255, 255, 255, 1)",histogramColor:"rgba(200, 200, 200, 0.5)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(0, 0, 150)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",handleColor:"rgb(0, 150, 0)",strokeWidth:2,activeStrokeWidth:3,buttonStrokeWidth:1.5,handleWidth:3,iconSize:20,padding:10,zoomControlHeight:10,zoomControlColor:"#999"},activeGaussian:-1,selectedGaussian:-1,enableRangeZoom:!0,rangeZoom:[0,1]};function JT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$T,n),f.a.obj(e,t),f.a.setGet(e,t,["piecewiseSize","numberOfBins","colorTransferFunction","backgroundImage","enableRangeZoom","gaussianMinimumHeight"]),f.a.setGetArray(e,t,["rangeZoom"],2),f.a.get(e,t,["size","canvas","gaussians"]),f.a.event(e,t,"opacityChange"),f.a.event(e,t,"animation"),f.a.event(e,t,"zoomChange"),QT(e,t)}var eC=DT({newInstance:f.a.newInstance(JT,"vtkPiecewiseGaussianWidget"),extend:JT},ZT);var tC={center:[0,0,0],rotationFactor:1,displayCenter:[0,0]};var nC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tC,n),f.a.setGet(e,t,["rotationFactor"]),f.a.setGetArray(e,t,["displayCenter"],2),f.a.setGetArray(e,t,["center"],3),function(e,t){t.classHierarchy.push("vtkCompositeCameraManipulator"),e.computeDisplayCenter=function(e,n){var r=e.computeWorldToDisplay(n,t.center[0],t.center[1],t.center[2]);t.displayCenter[0]=r[0],t.displayCenter[1]=r[1]}}(e,t)}};var rC={button:1,shift:!1,control:!1,alt:!1,dragEnabled:!0,scrollEnabled:!1};var aC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rC,n),f.a.setGet(e,t,["button","shift","control","alt"]),f.a.set(e,t,["dragEnabled","scrollEnabled"]),function(e,t){t.classHierarchy.push("vtkCompositeMouseManipulator"),e.startInteraction=function(){},e.endInteraction=function(){},e.onButtonDown=function(e,t,n){},e.onButtonUp=function(e){},e.onMouseMove=function(e,t,n){},e.onStartScroll=function(e,t,n){},e.onScroll=function(e,t,n){},e.onEndScroll=function(e){},e.isDragEnabled=function(){return t.dragEnabled},e.isScrollEnabled=function(){return t.scrollEnabled}}(e,t)}};var oC={};function iC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballRotateManipulator");var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(3),s=new Float64Array(16),l=new Float64Array(3),c=new Float64Array(3),u=new Float64Array(3);e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,d,f){if(f){var p=d.getActiveCamera(),g=p.getPosition(),m=p.getFocalPoint();o.identity(s);var v=t.center,h=t.rotationFactor;o.translate(s,s,v);var y=t.previousPosition.x-f.x,b=t.previousPosition.y-f.y,T=e.getView().getSize(),C=p.getViewUp();o.rotate(s,s,x(360*y/T[0]*h),C),z(p.getDirectionOfProjection(),C,l),o.rotate(s,s,x(-360*b/T[1]*h),l),c[0]=-v[0],c[1]=-v[1],c[2]=-v[2],o.translate(s,s,c),i.transformMat4(n,g,s),i.transformMat4(r,m,s),u[0]=C[0]+g[0],u[1]=C[1]+g[1],u[2]=C[2]+g[2],i.transformMat4(a,u,s),p.setPosition(n[0],n[1],n[2]),p.setFocalPoint(r[0],r[1],r[2]),p.setViewUp(a[0]-n[0],a[1]-n[1],a[2]-n[2]),p.orthogonalizeViewUp(),d.resetCameraClippingRange(),e.getLightFollowCamera()&&d.updateLightsGeometryToFollowCamera(),t.previousPosition=f}}}(e,t)}var sC={newInstance:f.a.newInstance(iC,"vtkMouseCameraTrackballRotateManipulator"),extend:iC};var lC={};function cC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lC,n),f.a.obj(e,t),nC.extend(e,t,n),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballPanManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,n,r){if(r){var a=r,o=t.previousPosition;t.previousPosition=r;var i=n.getActiveCamera(),s=i.getPosition(),l=i.getFocalPoint();if(i.getParallelProjection()){i.orthogonalizeViewUp();var c=i.getViewUp(),u=[0,0,0];z(i.getViewPlaneNormal(),c,u);var d=e.getView().getSize()[1],f=(a.x-o.x)/d,p=(o.y-a.y)/d,g=i.getParallelScale();p*=2*g;var m=u[0]*(f*=2*g)+c[0]*p;s[0]+=m,l[0]+=m,m=u[1]*f+c[1]*p,s[1]+=m,l[1]+=m,m=u[2]*f+c[2]*p,s[2]+=m,l[2]+=m,i.setPosition(s[0],s[1],s[2]),i.setFocalPoint(l[0],l[1],l[2])}else{var v=t.center,h=e.getInteractorStyle(),y=h.computeWorldToDisplay(n,v[0],v[1],v[2])[2],b=h.computeDisplayToWorld(n,a.x,a.y,y),T=h.computeDisplayToWorld(n,o.x,o.y,y),C=[s[0]+(T[0]-b[0]),s[1]+(T[1]-b[1]),s[2]+(T[2]-b[2])],S=[l[0]+(T[0]-b[0]),l[1]+(T[1]-b[1]),l[2]+(T[2]-b[2])];i.setPosition(C[0],C[1],C[2]),i.setFocalPoint(S[0],S[1],S[2])}n.resetCameraClippingRange(),e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()}}}(e,t)}var uC={newInstance:f.a.newInstance(cC,"vtkMouseCameraTrackballPanManipulator"),extend:cC};var dC={zoomScale:0,flipDirection:!1};function fC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),f.a.setGet(e,t,["flipDirection"]),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballZoomManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView().getSize(),o=n.getActiveCamera(),i=t.flipDirection?-1:1;if(o.getParallelProjection())t.zoomScale=1.5/a[1]*i;else{var s=o.getClippingRange();t.zoomScale=s[1]/a[1]*1.5*i}},e.onMouseMove=function(e,n,r){if(r){var a=t.previousPosition.y-r.y,o=n.getActiveCamera();if(o.getParallelProjection()){var i=a*t.zoomScale;o.setParallelScale((1-i)*o.getParallelScale())}else{var s=o.getPosition(),l=o.getFocalPoint(),c=o.getDirectionOfProjection(),u=a*t.zoomScale,d=u*c[0];s[0]+=d,l[0]+=d,d=u*c[1],s[1]+=d,l[1]+=d,d=u*c[2],s[2]+=d,l[2]+=d,o.getFreezeFocalPoint()||o.setFocalPoint(l[0],l[1],l[2]),o.setPosition(s[0],s[1],s[2]),n.resetCameraClippingRange()}e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera(),t.previousPosition=r}},e.onScroll=function(e,t,n){if(n){var r=t.getActiveCamera(),a=1-n/10;r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/a):(r.dolly(a),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}}(e,t)}var pC={newInstance:f.a.newInstance(fC,"vtkMouseCameraTrackballZoomManipulator"),extend:fC};var gC={horizontalListener:null,verticalListener:null,scrollListener:null};function mC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gC,n),f.a.obj(e,t),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseRangeManipulator");var n=new Map;function r(e,t){return t*((e.max-e.min)/(e.step+1))}function a(e,t){var r=e.getValue(),a=t*e.scale+n.get(e),o=r+a,i=o-e.min,s=Math.round(i/e.step);o=e.min+e.step*s,o=Math.max(o,e.min),(o=Math.min(o,e.max))!==r?(e.setValue(o),n.set(e,0)):o===e.min&&a<0||o===e.max&&a>0?n.set(e,0):n.set(e,a)}e.setHorizontalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.horizontalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.horizontalListener,0),e.modified()},e.setVerticalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.verticalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.verticalListener,0),e.modified()},e.setScrollListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.scrollListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.scrollListener,0),e.modified()},e.removeHorizontalListener=function(){t.verticalListener&&(n.delete(t.verticalListener),delete t.verticalListener,e.modified())},e.removeVerticalListener=function(){t.horizontalListener&&(n.delete(t.horizontalListener),delete t.horizontalListener,e.modified())},e.removeScrollListener=function(){t.scrollListener&&(n.delete(t.scrollListener),delete t.scrollListener,e.modified())},e.removeAllListeners=function(){e.removeHorizontalListener(),e.removeVerticalListener(),e.removeScrollListener()},e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView(),o=a.getContainerSize()[0]/a.getSize()[0],i=a.getViewportSize(n);t.containerSize=i.map(function(e){return e*o})},e.onMouseMove=function(e,n,o){if((t.verticalListener||t.horizontalListener)&&o){if(t.horizontalListener){var i=(o.x-t.previousPosition.x)/t.containerSize[0],s=r(t.horizontalListener,i);a(t.horizontalListener,s)}if(t.verticalListener){var l=(o.y-t.previousPosition.y)/t.containerSize[1],c=r(t.verticalListener,l);a(t.verticalListener,c)}t.previousPosition=o}},e.onScroll=function(e,n,r){t.scrollListener&&r&&a(t.scrollListener,r*t.scrollListener.step)},e.onStartScroll=e.onScroll}(e,t)}var vC={newInstance:f.a.newInstance(mC,"vtkMouseRangeManipulator"),extend:mC};function hC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bC=f.a.vtkDebugMacro,TC=Km.States,CC={type:"StartInteractionEvent"},SC={type:"InteractionEvent"},PC={type:"EndInteractionEvent"};function wC(e,t,n,r,a,o){var i=e.getActiveCamera(),s=i.getFocalPoint(),l=(s=t.getInteractorStyle().computeWorldToDisplay(e,s[0],s[1],s[2]))[2],c=t.getInteractorStyle().computeDisplayToWorld(e,n,r,l),u=t.getInteractorStyle().computeDisplayToWorld(e,a,o,l),d=[u[0]-c[0],u[1]-c[1],u[2]-c[2]];s=i.getFocalPoint();var f=i.getPosition();i.setFocalPoint(d[0]+s[0],d[1]+s[1],d[2]+s[2]),i.setPosition(d[0]+f[0],d[1]+f[1],d[2]+f[2])}var xC={dollyToPosition:function(e,t,n,r){var a=n.getActiveCamera();if(a.getParallelProjection()){var o=r.getView().getSize(),i=o[0]/2,s=o[1]/2,l=t.x,c=t.y;wC(n,r,i,s,l,c),a.setParallelScale(a.getParallelScale()/e),wC(n,r,l,c,i,s)}else{var u=a.getFocalPoint(),d=a.getViewPlaneNormal();u=r.getInteractorStyle().computeWorldToDisplay(n,u[0],u[1],u[2]);var f=r.getInteractorStyle().computeDisplayToWorld(n,t.x,t.y,u[2]);a.setFocalPoint(f[0],f[1],f[2]),a.dolly(e),n.resetCameraClippingRange();var p=a.getPosition();u=a.getFocalPoint();var g=[0,0,0],m=d[0]*(u[0]-p[0])+d[1]*(u[1]-p[1])+d[2]*(u[2]-p[2]);m/=Math.pow(d[0],2)+Math.pow(d[1],2)+Math.pow(d[2],2),g[0]=p[0]+d[0]*m,g[1]=p[1]+d[1]*m,g[2]=p[2]+d[2]*m,a.setFocalPoint(g[0],g[1],g[2]),n.resetCameraClippingRange()}},translateCamera:wC,dollyByFactor:function(e,t,n){if(!Number.isNaN(n)){var r=t.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}};var OC={cachedMousePosition:null,currentManipulator:null,currentWheelManipulator:null,centerOfRotation:[0,0,0],rotationFactor:1};function MC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,OC,n),Km.extend(e,t,n),f.a.setGet(e,t,["rotationFactor"]),f.a.get(e,t,["mouseManipulators","keyboardManipulators","vrManipulators","gestureManipulators"]),f.a.setGetArray(e,t,["centerOfRotation"],3),function(e,t){t.classHierarchy.push("vtkInteractorStyleManipulator"),t.mouseManipulators=[],t.keyboardManipulators=[],t.vrManipulators=[],t.gestureManipulators=[],t.currentManipulator=null,t.currentWheelManipulator=null,t.centerOfRotation=[0,0,0],t.rotationFactor=1,e.removeAllManipulators=function(){e.removeAllMouseManipulators(),e.removeAllKeyboardManipulators(),e.removeAllVRManipulators(),e.removeAllGestureManipulators()},e.removeAllMouseManipulators=function(){t.mouseManipulators=[]},e.removeAllKeyboardManipulators=function(){t.keyboardManipulators=[]},e.removeAllVRManipulators=function(){t.vrManipulators=[]},e.removeAllGestureManipulators=function(){t.gestureManipulators=[]};var n=function(t,n){var r=n.indexOf(t);return-1!==r&&(n.splice(r,1),e.modified(),!0)};e.removeMouseManipulator=function(e){return n(e,t.mouseManipulators)},e.removeKeyboardManipulator=function(e){return n(e,t.keyboardManipulators)},e.removeVRManipulator=function(e){return n(e,t.vrManipulators)},e.removeGestureManipulator=function(e){return n(e,t.gestureManipulators)};var r=function(t,n){return-1===n.indexOf(t)&&(n.push(t),e.modified(),!0)};e.addMouseManipulator=function(e){return r(e,t.mouseManipulators)},e.addKeyboardManipulator=function(e){return r(e,t.keyboardManipulators)},e.addVRManipulator=function(e){return r(e,t.vrManipulators)},e.addGestureManipulator=function(e){return r(e,t.gestureManipulators)},e.getNumberOfMouseManipulators=function(){return t.mouseManipulators.length},e.getNumberOfKeyboardManipulators=function(){return t.keyboardManipulators.length},e.getNumberOfVRManipulators=function(){return t.vrManipulators.length},e.getNumberOfGestureManipulators=function(){return t.gestureManipulators.length},e.resetCurrentManipulator=function(){t.currentManipulator=null,t.currentWheelManipulator=null},e.handleLeftButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(1,n)},e.handleMiddleButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(2,n)},e.handleRightButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(3,n)},e.handleButton3D=function(n){n&&(t.currentManipulator=e.findVRManipulator(n.device,n.input,n.pressed),t.currentManipulator?(t.currentManipulator.onButton3D(e,n.pokedRenderer,t.state,n.device,n.input,n.pressed),n.pressed?e.startCameraPose():e.endCameraPose()):bC("No manipulator found"))},e.handleMove3D=function(n){t.currentManipulator&&t.state===TC.IS_CAMERA_POSE&&t.currentManipulator.onMove3D(e,n.pokedRenderer,t.state,n)},e.onButtonDown=function(n,r){t.currentManipulator||(t.currentManipulator=e.findMouseManipulator(n,r.shiftKey,r.controlKey,r.altKey),t.currentManipulator?(t.currentManipulator.setCenter&&t.currentManipulator.setCenter(t.centerOfRotation),t.currentManipulator.setRotationFactor&&t.currentManipulator.setRotationFactor(t.rotationFactor),t.currentManipulator.startInteraction(),t.currentManipulator.onButtonDown(t.interactor,r.pokedRenderer,r.position),t.interactor.requestAnimation(e.onButtonDown),e.invokeStartInteractionEvent(CC)):bC("No manipulator found"))},e.findMouseManipulator=function(e,n,r,a){for(var o=null,i=t.mouseManipulators.length;i--;){var s=t.mouseManipulators[i];s&&s.getButton()===e&&s.getShift()===n&&s.getControl()===r&&s.getAlt()===a&&s.isDragEnabled()&&(o=s)}return o},e.findVRManipulator=function(e,n){for(var r=null,a=t.vrManipulators.length;a--;){var o=t.vrManipulators[a];o&&o.getDevice()===e&&o.getInput()===n&&(r=o)}return r},e.handleLeftButtonRelease=function(){e.onButtonUp(1)},e.handleMiddleButtonRelease=function(){e.onButtonUp(2)},e.handleRightButtonRelease=function(){e.onButtonUp(3)},e.onButtonUp=function(n){t.currentManipulator&&t.currentManipulator.getButton&&t.currentManipulator.getButton()===n&&(t.currentManipulator.onButtonUp(t.interactor),t.currentManipulator.endInteraction(),t.currentManipulator=null,t.interactor.cancelAnimation(e.onButtonDown),e.invokeEndInteractionEvent(PC))},e.handleStartMouseWheel=function(n){if(!t.currentWheelManipulator){for(var r=null,a=t.mouseManipulators.length;a--;){var o=t.mouseManipulators[a];o&&o.isScrollEnabled()&&o.getShift()===n.shiftKey&&o.getControl()===n.controlKey&&o.getAlt()===n.altKey&&(r=o)}r?(t.currentWheelManipulator=r,t.currentWheelManipulator.onStartScroll(t.interactor,n.pokedRenderer,n.spinY),t.currentWheelManipulator.startInteraction(),t.interactor.requestAnimation(e.handleStartMouseWheel),e.invokeStartInteractionEvent(CC)):bC("No manipulator found")}},e.handleEndMouseWheel=function(){t.currentWheelManipulator&&t.currentWheelManipulator.onEndScroll&&(t.currentWheelManipulator.onEndScroll(t.interactor),t.currentWheelManipulator.endInteraction(),t.currentWheelManipulator=null,t.interactor.cancelAnimation(e.handleStartMouseWheel),e.invokeEndInteractionEvent(PC))},e.handleMouseWheel=function(n){t.currentWheelManipulator&&t.currentWheelManipulator.onScroll&&(t.currentWheelManipulator.onScroll(t.interactor,n.pokedRenderer,n.spinY,t.cachedMousePosition),e.invokeInteractionEvent(SC))},e.handleMouseMove=function(n){t.cachedMousePosition=n.position,t.currentManipulator&&t.currentManipulator.onMouseMove&&(t.currentManipulator.onMouseMove(t.interactor,n.pokedRenderer,n.position),e.invokeInteractionEvent(SC))},e.handleKeyPress=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyPress}).forEach(function(r){r.onKeyPress(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyDown=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyDown}).forEach(function(r){r.onKeyDown(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyUp=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyUp}).forEach(function(r){r.onKeyUp(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleStartPinch=function(n){e.startDolly();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPinchEnabled()&&(a.onStartPinch(t.interactor,n.scale),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPinch),e.invokeStartInteractionEvent(CC)},e.handleEndPinch=function(){e.endDolly();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPinchEnabled()&&(r.onEndPinch(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPinch),e.invokeEndInteractionEvent(PC)},e.handleStartRotate=function(n){e.startRotate();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isRotateEnabled()&&(a.onStartRotate(t.interactor,n.rotation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartRotate),e.invokeStartInteractionEvent(CC)},e.handleEndRotate=function(){e.endRotate();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isRotateEnabled()&&(r.onEndRotate(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartRotate),e.invokeEndInteractionEvent(PC)},e.handleStartPan=function(n){e.startPan();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPanEnabled()&&(a.onStartPan(t.interactor,n.translation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPan),e.invokeStartInteractionEvent(CC)},e.handleEndPan=function(){e.endPan();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPanEnabled()&&(r.onEndPan(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPan),e.invokeEndInteractionEvent(PC)},e.handlePinch=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPinchEnabled()&&(o.onPinch(t.interactor,n.pokedRenderer,n.scale),a++)}a&&e.invokeInteractionEvent(SC)},e.handlePan=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPanEnabled()&&(o.onPan(t.interactor,n.pokedRenderer,n.translation),a++)}a&&e.invokeInteractionEvent(SC)},e.handleRotate=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isRotateEnabled()&&(o.onRotate(t.interactor,n.pokedRenderer,n.rotation),a++)}a&&e.invokeInteractionEvent(SC)}}(e,t)}var AC=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,IC,n),f.a.obj(e,t),f.a.get(e,t,["renderer"]),f.a.getArray(e,t,["selectionPoint","pickPosition"]),f.a.setGet(e,t,["pickFromList","pickList"]),function(e,t){t.classHierarchy.push("vtkAbstractPicker"),e.initialize=function(){t.renderer=null,t.selectionPoint[0]=0,t.selectionPoint[1]=0,t.selectionPoint[2]=0,t.pickPosition[0]=0,t.pickPosition[1]=0,t.pickPosition[2]=0},e.initializePickList=function(){t.pickList=[]},e.addPickList=function(e){t.pickList.push(e)},e.deletePickList=function(e){var n=t.pickList.indexOf(e);-1!==n&&t.pickList.splice(n,1)}}(e,t)}var EC={newInstance:f.a.newInstance(RC,"vtkAbstractPicker"),extend:RC};function DC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var LC=f.a.vtkErrorMacro,NC=f.a.vtkWarningMacro;function BC(e,t){t.classHierarchy.push("vtkPicker");var n=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kC,n),EC.extend(e,t,n),f.a.setGet(e,t,["tolerance"]),f.a.setGetArray(e,t,["mapperPosition"],3),f.a.get(e,t,["mapper","dataSet","actors","pickedPositions"]),f.a.event(e,t,"pickChange"),BC(e,t)}var GC={newInstance:f.a.newInstance(FC,"vtkPicker"),extend:FC},_C=f.a.vtkErrorMacro;var UC={pointId:-1,pointIJK:[],useCells:!1};function jC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,UC,n),GC.extend(e,t,n),f.a.getArray(e,t,["pointIJK"]),f.a.get(e,t,["pointId"]),f.a.setGet(e,t,["useCells"]),function(e,t){t.classHierarchy.push("vtkPointPicker"),e.intersectWithLine=function(n,r,a,o){var i=Number.MAX_VALUE;if(o.isA("vtkImageMapper")){var s=o.intersectWithLineForPointPicking(n,r);s&&(i=s.t,t.pointIJK=s.ijk)}else o.isA("vtkMapper")&&(i=e.intersectActorWithLine(n,r,a,o));return i},e.intersectActorWithLine=function(e,n,r,a){var o=a.getInputData(),i=0,s=o.getPoints().getNumberOfPoints();if(s<=i)return 2;for(var l=[],c=0;c<3;c++)l[c]=n[c]-e[c];var u,d=W(l,l);if(0===d)return _C("Cannot process points"),2;var f=-1,p=Number.MAX_VALUE,g=Number.MAX_VALUE,m=[],v=[],h=[],y=o.getPoints();if(t.useCells)for(var b=o.getPolys().getData(),T=b[0],C=o.getPolys().getNumberOfCells(),S=0;S=0&&u<=1&&u<=p+t.tolerance){for(var M=0,A=0;A<3;A++){m[A]=e[A]+u*l[A];var I=Math.abs(h[A]-m[A]);I>M&&(M=I)}M<=r&&M=0&&u<=1&&u<=p+t.tolerance){for(var R=0,E=0;E<3;E++){m[E]=e[E]+u*l[E];var D=Math.abs(h[E]-m[E]);D>R&&(R=D)}R<=r&&Re.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qC,n),t.normal=[0,0,1],t.center=[0,0,0],f.a.obj(e,t),f.a.setGet(e,t,["xResolution","yResolution"]),f.a.setGetArray(e,t,["origin"],3),f.a.getArray(e,t,["point1","point2","normal","center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkPlaneSource"),e.requestData=function(n,r){if(!t.deleted){var a=r[0],o=a?a.getPoints().getDataType():"Float32Array",i=eh.newInstance(),s=new Float32Array(3),l=new Float32Array(3);if(G(t.point1,t.origin,s),G(t.point2,t.origin,l),e.updatePlane(s,l)){var c=t.xResolution,u=t.yResolution,d=(c+1)*(u+1),p=c*u,g=f.a.newTypedArray(o,3*d);i.getPoints().setData(g,3);var m=new Uint32Array(5*p);i.getPolys().setData(m,1);var v=new Float32Array(3*d),h=Qe.newInstance({numberOfComponents:3,values:v,name:"Normals"});i.getPointData().setNormals(h);var y=new Float32Array(2*d),b=Qe.newInstance({numberOfComponents:2,values:y,name:"TextureCoordinates"});i.getPointData().setTCoords(b);for(var T=new Float32Array(2),C=0,S=0;S2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nS,n),f.a.obj(e,t),f.a.set(e,t,["property"]),f.a.get(e,t,["value"]),f.a.setGet(e,t,["coordinateSystem","referenceCoordinate","renderer"]),f.a.getArray(e,t,["value"],3),function(e,t){t.classHierarchy.push("vtkCoordinate"),e.setValue=function(){if(t.deleted)return tS("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1?1e3*e:1e3;this.actor.getMapper().setMaximumSamplesPerRay(t),this.renderWindow.render()}get resolution(){return Math.round(1/this._raysDistance)}get presetsList(){return wT.rgbPresetNames}set widgetElement(e){this.PGwidgetElement=e;let t=e.offsetHeight?e.offsetHeight-5:100,n=e.offsetWidth?e.offsetWidth-5:300;this.PGwidget.setSize(n,t),this.PGwidget.setContainer(this.PGwidgetElement),this.PGwidget.render()}set rescaleLUT(e){let t;this._rescaleLUT=e,t=this._rescaleLUT&&this.PGwidget?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),this.ctfun.setMappingRange(...t),this.ctfun.updateRange()}set rangeLUT([e,t]){this._rangeLUT=[e,t],this.actor.getProperty().getRGBTransferFunction(0).setMappingRange(e,t)}set cropWidget(e){this._cropWidget||this.setupCropWidget(),this._cropWidget.setVisibility(e),this._widgetManager.renderWidgets(),this.renderWindow.render()}set lut(e){const t=vs.newInstance();let n;t.applyColorMap(wT.getPresetByName(e)),n=this._rescaleLUT&&this._PGwidgetLoaded?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),t.setMappingRange(...n),t.updateRange(),this.actor.getProperty().setRGBTransferFunction(0,t);const r=Ts.newInstance();this.actor.getProperty().setScalarOpacity(0,r),this.ctfun=t,this.ofun=r,this.updateWidget()}set blurOnInteraction(e){this._blurOnInteraction=e;let t=this.renderWindow.getInteractor(),n=this.actor.getMapper();e?(t.onLeftButtonPress(()=>{n.setSampleDistance(5*this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()})):(t.onLeftButtonPress(()=>{n.setSampleDistance(this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()}))}initVR(){const e=fh.newInstance();e.setContainer(this.element),e.setBackground([0,0,0]),e.onResize(()=>{let t=[e.getContainer().getBoundingClientRect().width,e.getContainer().getBoundingClientRect().height];e.getRenderWindow().getViews()[0].setSize(t),this.VERBOSE&&console.log("resize",t)}),window.addEventListener("resize",t=>{e.resize()}),e.resize(),this.renderer=e.getRenderer(),this.renderWindow=e.getRenderWindow(),this._genericRenderWindow=e,this.setupPGwidget()}setImage(e){this.renderer.removeAllVolumes();let t=Ys(e);this.actor=t,this.lut="Grayscale",this.resolution=2,this.renderer.addVolume(t),this.setCamera(t.getCenter()),this.PGwidget&&(this.updateWidget(),this.setWidgetCallbacks()),this.setActorProperties(),this.setupInteractor(),this.blurOnInteraction=!0,this._genericRenderWindow.resize(),this.renderer.resetCamera(),this.renderWindow.render()}setCamera(e){this.renderer.resetCamera(),this.renderer.getActiveCamera().zoom(1.5),this.renderer.getActiveCamera().elevation(70),this.renderer.getActiveCamera().setViewUp(0,0,1),this.renderer.getActiveCamera().setFocalPoint(e[0],e[1],e[2]),this.renderer.getActiveCamera().setPosition(e[0],e[1]-2e3,e[2]),this.renderer.getActiveCamera().setThickness(1e4),this.renderer.getActiveCamera().setParallelProjection(!0)}getLutList(){return wT.rgbPresetNames}setActorProperties(){this.actor.getProperty().setScalarOpacityUnitDistance(0,30),this.actor.getProperty().setInterpolationTypeToLinear(),this.actor.getProperty().setUseGradientOpacity(0,!0),this.actor.getProperty().setGradientOpacityMinimumValue(0,2),this.actor.getProperty().setGradientOpacityMinimumOpacity(0,0),this.actor.getProperty().setGradientOpacityMaximumValue(0,20),this.actor.getProperty().setGradientOpacityMaximumOpacity(0,2),this.actor.getProperty().setShade(!0),this.actor.getProperty().setAmbient(.3),this.actor.getProperty().setDiffuse(.7),this.actor.getProperty().setSpecular(.3),this.actor.getProperty().setSpecularPower(.8)}setupCropWidget(){const e=Jh.newInstance();e.setRenderer(this.renderer);const t=mT.newInstance(),n=(e.addWidget(t),t.getWidgetState().getCroppingPlanes());n.onModified(()=>{const e=function(e,t){const n=l.create();o.getRotation(n,e.getIndexToWorld());const r=e=>{const t=[0,0,0];return i.transformQuat(t,e,n),t},[a,s,c,u,d,f]=t,p=e.indexToWorld([a,c,d]),g=e.indexToWorld([s,u,f]);return[ft.newInstance({normal:r([1,0,0]),origin:p}),ft.newInstance({normal:r([-1,0,0]),origin:g}),ft.newInstance({normal:r([0,1,0]),origin:p}),ft.newInstance({normal:r([0,-1,0]),origin:g}),ft.newInstance({normal:r([0,0,1]),origin:p}),ft.newInstance({normal:r([0,0,-1]),origin:g})]}(a,n.getPlanes());r.removeAllClippingPlanes(),e.forEach(e=>{r.addClippingPlane(e)}),r.modified()});let r=this.actor.getMapper(),a=r.getInputData();t.copyImageDataDescription(a),t.set({faceHandlesEnabled:!0,edgeHandlesEnabled:!0,cornerHandlesEnabled:!0}),e.enablePicking(),this._widgetManager=e,this._cropWidget=t,this.renderWindow.render()}setupPGwidget(){let e=this.PGwidgetElement?this.PGwidgetElement.offsetWidth-5:300,t=this.PGwidgetElement?this.PGwidgetElement.offsetHeight-5:100;const n=eC.newInstance({numberOfBins:256,size:[e,t]});n.updateStyle({backgroundColor:"rgba(255, 255, 255, 0.6)",histogramColor:"rgba(50, 50, 50, 0.8)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(255, 255, 255)",handleColor:"rgb(50, 150, 50)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",strokeWidth:1,activeStrokeWidth:1.5,buttonStrokeWidth:1,handleWidth:1,iconSize:0,padding:1}),n.setContainer(this.PGwidgetElement),window.addEventListener("resize",e=>{n.setSize(this.PGwidgetElement.offsetWidth-5,this.PGwidgetElement.offsetHeight-5),n.render()}),this.PGwidget=n}updateWidget(){const e=this.actor.getMapper().getInputData().getPointData().getScalars();this.PGwidget.setDataArray(e.getData());let t=this.PGwidget.getGaussians();if(t.length>0){let e=t[0];e.position=this.wl,e.width=this.ww,this.PGwidget.setGaussians([e])}else{const e=1,t=0,n=1.8;this.PGwidget.addGaussian(this.wl,e,this.ww,t,n)}this.PGwidget.applyOpacity(this.ofun),this.PGwidget.setColorTransferFunction(this.ctfun),this.ctfun.onModified(()=>{this.PGwidget.render(),this.renderWindow.render()}),this._PGwidgetLoaded=!0}setWidgetCallbacks(){this.PGwidget.bindMouseListeners(),this.PGwidget.onAnimation(e=>{e?this.renderWindow.getInteractor().requestAnimation(this.PGwidget):this.renderWindow.getInteractor().cancelAnimation(this.PGwidget)}),this.PGwidget.onOpacityChange(e=>{if(this.PGwidget=e,this.gaussians=e.getGaussians().slice(),this.PGwidget.applyOpacity(this.ofun),this.renderWindow.getInteractor().isAnimating()||this.renderWindow.render(),this._rescaleLUT&&this.PGwidget){const e=this.PGwidget.getOpacityRange();this.ctfun.setMappingRange(...e),this.ctfun.updateRange()}})}setupInteractor(){const e=sC.newInstance({button:1}),t=uC.newInstance({button:3,control:!0}),n=pC.newInstance({button:3,scrollEnabled:!0}),r=vC.newInstance({button:1,shift:!0});let a=this;r.setVerticalListener(-1,1,.001,function(){return a.wl},function(e){let t=a.wl+(e-a.wl)/25;a.wl=t;let n=a.PGwidget.getGaussians().slice();n[0].position=a.wl,a.PGwidget.setGaussians(n)}),r.setHorizontalListener(.1,2.1,.001,function(){return a.ww},function(e){let t=a.ww+(e-a.ww)/5;a.ww=t;let n=a.PGwidget.getGaussians().slice();n[0].width=a.ww,a.PGwidget.setGaussians(n)});const o=AC.newInstance();o.addMouseManipulator(r),o.addMouseManipulator(e),o.addMouseManipulator(t),o.addMouseManipulator(n),o.setCenterOfRotation(this.actor.getCenter()),this.renderWindow.getInteractor().setInteractorStyle(o),this.renderWindow.getInteractor().onMouseWheel(()=>this.resetMeasurementState()),this.renderWindow.getInteractor().onRightButtonPress(()=>this.resetMeasurementState())}resetMeasurementState(e){this._measurementState?(this._measurementState.p1=new Array(2),this._measurementState.p2=new Array(2),this._measurementState.p3=new Array(2),this._measurementState.p1_world=new Array(2),this._measurementState.p2_world=new Array(2),this._measurementState.p3_world=new Array(2),this._measurementState.label=null):e&&(e.p1=new Array(2),e.p2=new Array(2),e.p3=new Array(2),e.p1_world=new Array(2),e.p2_world=new Array(2),e.p3_world=new Array(2),e.label=null)}setTool(e,t,n){switch(this._leftButtonCb&&this._leftButtonCb.unsubscribe(),e){case"Length":case"Angle":this._initPicker(n,e);break;case"Rotation":this.resetMeasurementState(n),this.setupInteractor();break;default:console.warn("No tool found for",e)}}_initPicker(e,t){this.blurOnInteraction=!1;let n=this.renderWindow.getInteractor().getInteractorStyle().getMouseManipulators().filter(e=>"vtkMouseCameraTrackballRotateManipulator"==e.getClassName()).pop();this.renderWindow.getInteractor().getInteractorStyle().removeMouseManipulator(n);const r=WC.newInstance();if(r.setPickFromList(1),r.initializePickList(),!this._pickingPlane){const e=ZC.newInstance({xResolution:1e3,yResolution:1e3});let t=this.renderer.getActiveCamera();e.setPoint1(0,0,1e3),e.setPoint2(1e3,0,0),e.setCenter(this.actor.getCenter()),e.setNormal(t.getDirectionOfProjection());const n=sf.newInstance();n.setInputConnection(e.getOutputPort());const r=sh.newInstance();r.setMapper(n),r.getProperty().setOpacity(.01),this.renderer.addActor(r),this._pickingPlane=e,this._planeActor=r}r.addPickList(this._planeActor),this._leftButtonCb=this.renderWindow.getInteractor().onLeftButtonPress(n=>{if(this.renderer!==n.pokedRenderer)return;const a=n.position,o=[a.x,a.y,0];if(r.pick(o,this.renderer),0===r.getActors().length){const e=r.getPickPosition();this.VERBOSE&&console.log(`No point picked, default: ${e}`)}else{const n=r.getPickedPositions()[0];this.VERBOSE&&console.log(`Picked: ${n}`);const a=aS.newInstance();a.setCoordinateSystemToWorld(),a.setValue(...n);const o=a.getComputedDisplayValue(this.renderer);!function(e,t,n,r){oS[r](e,t,n)}(e,o,n,t),this.VERBOSE&&console.log(e),this._measurementState=e}this.renderWindow.render()})}resetView(){let e=this.actor.getCenter();console.log(e),this.setCamera(e),this.renderWindow.render()}resize(){this._genericRenderWindow.resize()}destroy(){this.element=null,this._genericRenderWindow.delete(),this._genericRenderWindow=null,this.actor&&(this.actor.getMapper().delete(),this.actor.delete(),this.actor=null),this._planeActor&&(this._planeActor.getMapper().delete(),this._planeActor.delete(),this._planeActor=null),this.PGwidgetElement&&(this.PGwidgetElement=null,this.PGwidget.getCanvas().remove(),this.PGwidget.delete(),this.PGwidget=null,this.gaussians=null),this._cropWidget&&(this._cropWidget.delete(),this._cropWidget=null)}}function uS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRSlice"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulator=uC.newInstance({button:1,shift:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n={sliceNormal:[0,0,0],sliceRange:[0,0],slicePosition:[0,0,0]};function r(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}let a=null,o=null;const i=e.setInteractor;e.setInteractor=(n=>{if(i(n),a&&(a.unsubscribe(),a=null),o&&(o.unsubscribe(),o=null),n){const i=n.getCurrentRenderer().getActiveCamera();a=i.onModified(()=>{r(),e.modified()}),o=n.onAnimation(()=>{const{slabThickness:e}=t,n=i.getDistance(),r=n-e/2,a=n+e/2;i.setClippingRange(r,a)})}}),e.handleMouseMove=f.a.chain(e.handleMouseMove,()=>{const e=t.interactor.getCurrentRenderer(),{slabThickness:n}=t,r=e.getActiveCamera(),a=r.getDistance(),o=a-n/2,i=a+n/2;r.setClippingRange(o,i)});const s=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(s(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.getSlice=(()=>{const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=e.getSliceNormal(),a=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]),o=n.getFocalPoint();return a.apply(o),o[0]}),e.setSlice=(n=>{const r=t.interactor.getCurrentRenderer().getActiveCamera();if(t.volumeMapper){const a=e.getSliceRange(),o=t.volumeMapper.getBounds(),i=function(e,t,n){return en?n:e}(n,...a),s=[(o[0]+o[1])/2,(o[2]+o[3])/2,(o[4]+o[5])/2],l=r.getDistance(),c=r.getDirectionOfProjection();Fe.normalize(c);const u=(a[1]+a[0])/2,d=[s[0]-c[0]*u,s[1]-c[1]*u,s[2]-c[2]*u],f=[d[0]+c[0]*i,d[1]+c[1]*i,d[2]+c[2]*i],p=[f[0]-c[0]*l,f[1]-c[1]*l,f[2]-c[2]*l];r.setPosition(...p),r.setFocalPoint(...f);const g=e.getOnScroll();g&&g(f)}}),e.getSliceRange=(()=>{if(t.volumeMapper){const r=e.getSliceNormal();if(r[0]===n.sliceNormal[0]&&r[1]===n.sliceNormal[1]&&r[2]===n.sliceNormal[2])return n.sliceRange;const a=function(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}(t.volumeMapper.getBounds()),o=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);a.forEach(e=>o.apply(e));let i=1/0,s=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>s&&(s=t),t{if(t.volumeMapper&&t.interactor){return t.interactor.getCurrentRenderer().getActiveCamera().getDirectionOfProjection()}return[0,0,0]}),e.setSliceNormal=((n,r=[0,1,0])=>{const a=t.interactor.getCurrentRenderer().getActiveCamera();t.sliceNormal=[...n],t.viewUp=[...r];const o=[...n],i=[...r];if(t.volumeMapper){Fe.normalize(o);let n=t.volumeMapper;!t.volumeMapper.getInputData&&t.volumeMapper.getMapper&&(n=t.volumeMapper.getMapper());let r=function(e){if(9!==e.length)throw Error("Array not length 9");return[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]]]}(n.getInputData().getDirection());Fe.transpose3x3(r,r),Fe.multiply3x3_vect3(r,o,o);let s=a.getFocalPoint(),l=a.getDistance(),c=a.getViewAngle();if(Number.isNaN(l)||void 0===l){const e=t.volumeMapper.getBounds(),n=Math.sqrt(Fe.distance2BetweenPoints([e[0],e[2],e[4]],[e[1],e[3],e[5]]));s=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],c=90,l=n/(2*Math.tan(c/360*Math.PI))}const u=[s[0]-o[0]*l,s[1]-o[1]*l,s[2]-o[2]*l];Fe.multiply3x3_vect3(r,i,i);const{slabThickness:d}=t;a.setPosition(...u),a.setDistance(l),a.setDirectionOfProjection(...o),a.setViewUp(...i),a.setViewAngle(c),a.setClippingRange(l-d/2,l+d/2),e.setCenterOfRotation(s)}}),e.setSlabThickness=(e=>{t.slabThickness=e;const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=n.getDistance();n.setClippingRange(r-e/2,r+e/2)}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulator),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),r()}const dS={slabThickness:.1};function fS(e,t,n={}){Object.assign(t,dS,n),AC.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onScroll"]),f.a.get(e,t,["slabThickness","viewUp"]),uS(e,t)}const pS=f.a.newInstance(fS,"vtkInteractorStyleMPRSlice");var gS=Object.assign({newInstance:pS,extend:fS});const{States:mS}=Gm;function vS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRWindowLevel"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n=e.handleMouseMove;e.handleMouseMove=(r=>{const a=[r.position.x,r.position.y];t.state===mS.IS_WINDOW_LEVEL&&(e.windowLevelFromMouse(a),e.invokeInteractionEvent({type:"InteractionEvent"})),n&&n(r)});const r=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(r(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.windowLevelFromMouse=(([n,r])=>{const a=t.volumeMapper.getMapper().getInputData().getPointData().getScalars().getRange(),o=(a[1]-a[0])/1024*t.levelScale,i=(n-t.wlStartPos[0])*o,s=(r-t.wlStartPos[1])*o*.5;let{windowWidth:l,windowCenter:c}=e.getWindowLevel();l=Math.max(1,Math.round(l+i)),c=Math.round(c+s),e.setWindowLevel(l,c),t.wlStartPos=[n,r];const u=e.getOnLevelsChanged();u&&u({windowCenter:c,windowWidth:l})}),e.getWindowLevel=(()=>{return function(e,t){const n=Math.abs(e-t);return{windowWidth:n,windowCenter:e+n/2}}(...t.volumeMapper.getProperty().getRGBTransferFunction(0).getMappingRange().slice())}),e.setWindowLevel=((e,n)=>{const r=function(e,t){return{lower:t-e/2,upper:t+e/2}}(e,n);t.volumeMapper.getProperty().getRGBTransferFunction(0).setMappingRange(r.lower,r.upper)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(n=>{t.wlStartPos=[n.position.x,n.position.y],n.shiftKey||n.controlKey?a&&a(n):e.startWindowLevel()}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case mS.IS_WINDOW_LEVEL:e.endWindowLevel();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const hS={wlStartPos:[0,0],levelScale:1};function yS(e,t,n={}){Object.assign(t,hS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onLevelsChanged","levelScale"]),vS(e,t)}const bS=f.a.newInstance(yS,"vtkInteractorStyleMPRWindowLevel");var TS=Object.assign({newInstance:bS,extend:yS});const{States:CS}=Gm;function SS(e,t){function n(t){const n=[t.position.x,t.position.y],r=t.pokedRenderer,a=e.getOnClickCallback(),o=aS.newInstance();o.setCoordinateSystemToDisplay(),o.setValue(n[0],n[1],0);const i=o.getComputedWorldValue(r);i.length&&a({worldPos:i,displayPos:n}),e.invokeInteractionEvent({type:"InteractionEvent"})}t.classHierarchy.push("vtkInteractorStyleMPRCrosshairs"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const r=e.handleMouseMove;e.handleMouseMove=(e=>{t.state===CS.IS_SLICE&&n(e),r&&r(e)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(r=>{r.shiftKey||r.controlKey?a&&a(r):t.volumeMapper&&(n(r),e.startSlice())});const o=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(o(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case CS.IS_SLICE:e.endSlice();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const PS={};function wS(e,t,n={}){Object.assign(t,PS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onClickCallback"]),SS(e,t)}const xS=f.a.newInstance(wS,"vtkInteractorStyleMPRCrosshairs");var OS=Object.assign({newInstance:xS,extend:wS});const{States:MS}=Gm;function AS(e,t){function n(){e.removeAllMouseManipulators(),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),e.addMouseManipulator(t.leftManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}t.classHierarchy.push("vtkInteractorStyleMPRPanZoom"),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1}),e.setLeftButton=(e=>{"zoom"==e?t.leftManipulator=pC.newInstance({button:1}):"pan"==e?t.leftManipulator=uC.newInstance({button:1}):console.error("No tool found for",e),n()}),t.leftButtonTool||(t.leftButtonTool="pan"),e.setLeftButton(t.leftButtonTool),n();const r=e.setInteractor;e.setInteractor=(n=>{if(r(n),null===n)return;let a="pan"==t.leftButtonTool?e.getOnPanChanged():e.getOnZoomChanged();n.onAnimation(a)})}const IS={wlStartPos:[0,0],levelScale:1};function RS(e,t,n={}){Object.assign(t,IS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onPanChanged","onZoomChanged","levelScale"]),AS(e,t)}const ES=f.a.newInstance(RS,"vtkInteractorStyleMPRPanZoom");var DS=Object.assign({newInstance:ES,extend:RS});const VS=[[0,0,1],[-1,0,0],[0,1,0]],LS=[[0,-1,0],[0,0,1],[0,0,1]];class NS{constructor(e,t,n){this.VERBOSE=!1,this._key=e,this._element=n,this._volume=null,this._renderer=null,this._parallel=!0,this.slicePlaneNormal=VS[t],this.sliceViewUp=LS[t],this.slicePlaneXRotation=0,this.slicePlaneYRotation=0,this.viewRotation=0,this._sliceThickness=.1,this._blendMode="MIP",this.window={width:0,center:0},this._cachedSlicePlane=[...this.slicePlaneNormal],this._cachedSliceViewUp=[...this.sliceViewUp],this._genericRenderWindow=fh.newInstance({background:[0,0,0]}),this._genericRenderWindow.setContainer(n),this._renderWindow=this._genericRenderWindow.getRenderWindow(),this._renderer=this._genericRenderWindow.getRenderer(),this._parallel&&this._renderer.getActiveCamera().setParallelProjection(!0),this._genericRenderWindow.getOpenGLRenderWindow().buildPass(!0),this.onResize()}set blendMode(e){this._blendMode=e,this.updateBlendMode(this._sliceThickness,this._blendMode)}set sliceThickness(e){this._sliceThickness=e;const t=this._renderWindow.getInteractor().getInteractorStyle();t.setSlabThickness&&t.setSlabThickness(this._sliceThickness),this.updateBlendMode(this._sliceThickness,this._blendMode)}set wwwl([e,t]){this.window.center=t,this.window.width=e,this._genericRenderWindow.getRenderWindow().render()}get camera(){return this._genericRenderWindow.getRenderer().getActiveCamera()}initView(e,t,n,r){this._volume=e;const a=gS.newInstance();a.setOnScroll(n),this._renderWindow.getInteractor().setInteractorStyle(a),this.VERBOSE&&console.log(this._volumes);const o=this._volume.getMapper();a.setVolumeMapper(o);const i=a.getSliceRange();a.setSlice((i[0]+i[1])/2),this.updateVolumesForRendering(),this.VERBOSE&&console.log("view data",this._key,t.views[this.key]),this.updateSlicePlane(t.views[this._key]),this.fill2DView(this._genericRenderWindow,this._key),r()}updateVolumesForRendering(){this._renderer.removeAllVolumes(),this._volume&&(this._volume.isA("vtkVolume")?this._renderer.addVolume(this._volume):console.warn("Data to is not vtkVolume data")),this._renderWindow.render()}updateSlicePlane(e){let t=this._cachedSlicePlane,n=this._cachedSliceViewUp;this.VERBOSE&&console.log(e);let r=[];i.cross(r,e.sliceViewUp,e.slicePlaneNormal),i.normalize(r,r);let a=e.sliceViewUp;const s=o.create();o.rotate(s,s,Xs(e.slicePlaneYRotation),a),o.rotate(s,s,Xs(e.slicePlaneXRotation),r),this.VERBOSE&&console.log(t,e.slicePlaneNormal,s),i.transformMat4(t,e.slicePlaneNormal,s);const c=l.create();l.setAxisAngle(c,t,Xs(-e.viewRotation)),l.normalize(c,c);const u=l.create();l.setAxisAngle(u,r,Xs(e.slicePlaneXRotation)),l.normalize(u,u);const d=l.create();l.add(d,u,c),i.transformQuat(n,e.sliceViewUp,c);const f=this._genericRenderWindow.getRenderWindow(),p=f.getInteractor().getInteractorStyle();p&&p.setSliceNormal&&p.setSliceNormal(t,n),f.render()}fill2DView(){const e=this._renderer.computeVisiblePropBounds(),t=[(e[1]-e[0])/2,(e[3]-e[2])/2,(e[5]-e[4])/2],n=this._genericRenderWindow.getContainer().clientWidth/this._genericRenderWindow.getContainer().clientHeight;let r,a;"left"===this._key?(r=t[1],a=t[2]):"front"===this._key?(r=t[0],a=t[2]):"top"===this._key&&(r=t[0],a=t[1]),n>=r/a?this._renderer.getActiveCamera().setParallelScale(a+1):this._renderer.getActiveCamera().setParallelScale(r/n+1),this.onResize()}onResize(){this._genericRenderWindow.resize()}updateBlendMode(e,t){if(e>=1)switch(t){case"MIP":this._volume.getMapper().setBlendModeToMaximumIntensity();break;case"MINIP":this._volume.getMapper().setBlendModeToMinimumIntensity();break;case"AVG":this._volume.getMapper().setBlendModeToAverageIntensity();break;case"none":default:this._volume.getMapper().setBlendModeToComposite()}else this._volume.getMapper().setBlendModeToComposite();this._renderWindow.render()}setInteractor(e){const t=this._genericRenderWindow.getRenderWindow(),n=t.getInteractor().getInteractorStyle();t.getInteractor().setInteractorStyle(e),e.setInteractor(t.getInteractor()),t.getInteractor().setInteractorStyle(e),e.setSliceNormal&&n.getSliceNormal()&&e.setSliceNormal(n.getSliceNormal(),n.getViewUp()),e.setSlabThickness&&n.getSlabThickness()&&e.setSlabThickness(n.getSlabThickness()),e.setVolumeMapper(this._volume)}destroy(){this.VERBOSE&&console.log("DESTROY",this._key),this.VERBOSE=null,this._key=null,this._element=null,this._volume.getMapper()&&this._volume.getMapper().delete(),this._volume.delete(),this._volume=null,this._renderer.delete(),this._renderer=null,this._parallel=null,this.slicePlaneNormal=null,this.sliceViewUp=null,this.slicePlaneXRotation=null,this.slicePlaneYRotation=null,this.viewRotation=null,this._sliceThickness=null,this._blendMode=null,this.window=null,this._cachedSlicePlane=null,this._cachedSliceViewUp=null,this._genericRenderWindow.delete()}}class BS{constructor(e){this.VERBOSE=!1,this.syncWindowLevels=!0,this._activeTool=null,this.elements=e,this.volume=null,this.sliceIntersection=[0,0,0],this.mprViews={},this.initMPR()}set wwwl([e,t]){const n=t-e/2,r=t+e/2;this.volume.getProperty().getRGBTransferFunction(0).setMappingRange(n,r),Object.keys(this.elements).forEach((n,r)=>{this.mprViews[n].wwwl=[e,t]})}initMPR(){Object.keys(this.elements).forEach((e,t)=>{try{this.mprViews[e]=new NS(e,t,this.elements[e].element)}catch(t){console.error("Error creating MPRView",e),console.error(t)}}),this.VERBOSE&&console.log("initialized")}getInitialState(){let e=Object.keys(this.mprViews).reduce((e,t)=>{let{slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,_sliceThickness:s,_blendMode:l,window:c}=e[t];return e[t]={slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,sliceThickness:s,blendMode:l,window:c},e},Object.assign({},this.mprViews));return{interactorCenters:Object.keys(this.elements).reduce((e,t)=>({...e,[t]:[0,0]}),{}),sliceIntersection:[...this.sliceIntersection],views:e}}setImage(e,t){let n=Ys(t);this.volume=n,this.sliceIntersection=function(e){const t=e.getBounds();return[(t[0]+t[1])/2,(t[2]+t[3])/2,(t[4]+t[5])/2]}(n.getMapper()),e.sliceIntersection=[...this.sliceIntersection],Object.keys(this.elements).forEach(t=>{this.mprViews[t].initView(n,e,()=>{this.onScrolled.call(this,e)},()=>{this.onScrolled.call(this,e)})}),this._activeTool&&this.setTool(this._activeTool,e)}setTool(e,t){switch(e){case"level":this.setLevelTool(t);break;case"crosshair":this.setCrosshairTool(t);break;case"zoom":this.setZoomTool(t);break;case"pan":this.setPanTool(t)}}setPanTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"pan"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnPanChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="pan"}setZoomTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"zoom"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnZoomChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="zoom"}setLevelTool(e){Object.entries(e.views).forEach(([t])=>{const n=TS.newInstance();n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnLevelsChanged(n=>{this.updateLevels({...n,srcKey:t},e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="level"}setCrosshairTool(e){let t=this;Object.entries(e.views).forEach(([n])=>{const r=OS.newInstance();r.setOnScroll(()=>{t.onScrolled(e)}),r.setOnClickCallback(({worldPos:r})=>{t.onCrosshairPointSelected({worldPos:r,srcKey:n},e)}),this.mprViews[n].setInteractor(r)}),this._activeTool="crosshair"}onCrosshairPointSelected({srcKey:e,worldPos:t},n){Object.keys(this.elements).forEach(r=>{if(r!==e){const e=this.mprViews[r]._genericRenderWindow.getRenderWindow(),n=e.getInteractor().getInteractorStyle(),a=n.getSliceNormal(),o=wb.buildFromDegree().identity().rotateFromDirections(a,[1,0,0]),i=t.slice();o.apply(i);const s=i[0];n.setSlice(s),e.render()}this.updateInteractorCenters(n)}),this.sliceIntersection=[...t],n.sliceIntersection=[...t]}updateLevels({windowCenter:e,windowWidth:t,srcKey:n},r){r.views[n].window.center=e,r.views[n].window.width=t,this.syncWindowLevels&&Object.keys(this.elements).filter(e=>e!==n).forEach(n=>{this.mprViews[n].wwwl=[t,e]})}onScrolled(e){let t=[];Object.keys(this.elements).forEach(e=>{const n=this.mprViews[e].camera;t.push({position:n.getFocalPoint(),normal:n.getDirectionOfProjection()})});const n=qs(...t);return Number.isNaN(n)||n.some(e=>Number.isNaN(e))||(this.sliceIntersection=[...n],e.sliceIntersection=[...n],this.VERBOSE&&console.log("updating slice intersection",n)),this.updateInteractorCenters(e),n}onRotate(e,t,n,r){switch(e){case"top":"x"===t?r.views.front.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneYRotation=n);break;case"left":"x"===t?r.views.top.slicePlaneXRotation=n:"y"===t&&(r.views.front.slicePlaneXRotation=n);break;case"front":"x"===t?r.views.top.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneXRotation=n)}Object.keys(this.elements).filter(t=>t!==e).forEach(e=>{this.mprViews[e].updateSlicePlane(r.views[e])}),this.VERBOSE&&console.log("afterOnRotate",r)}onThickness(e,t,n,r){const a=n>1;let o;switch(e){case"top":"x"===t?o="front":"y"===t&&(o="left");break;case"left":"x"===t?o="top":"y"===t&&(o="front");break;case"front":"x"===t?o="top":"y"===t&&(o="left")}a&&"none"===this.mprViews[o].blendMode&&(this.mprViews[o].blendMode="MIP",r.mprViews[o].blendMode="MIP"),this.mprViews[o].sliceThickness=n,r.views[o].sliceThickness=n}updateInteractorCenters(e){Object.keys(this.elements).forEach(t=>{const n=this.mprViews[t]._genericRenderWindow.getRenderer(),r=aS.newInstance();r.setCoordinateSystemToWorld(),r.setValue(...this.sliceIntersection);const a=r.getComputedDisplayValue(n);this.VERBOSE&&console.log("interactor center",t,a),e.interactorCenters[t]=a})}resize(e,t){t?this.mprViews[t].onResize():Object.values(this.mprViews).forEach(e=>{e.onResize()}),this.updateInteractorCenters(e)}destroy(){Object.keys(this.elements).forEach(e=>{this.mprViews[e].destroy()})}}n.d(t,"MPRManager",function(){return BS}),n.d(t,"VRView",function(){return cS}),n.d(t,"loadDemoSerieWithLarvitar",function(){return Ks}),n.d(t,"buildVtkVolume",function(){return zs}),console.groupCollapsed("%c** dtk **","background: #0aa658; color: #000000; line-height: 1.6"),console.log(`Version ${c.a}`),console.log("Detected graphic card:"),console.log(function(){const e=document.createElement("canvas").getContext("webgl");if(!e)return{error:"no webgl"};const t=e.getExtension("WEBGL_debug_renderer_info");return t?{vendor:e.getParameter(t.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:{error:"no WEBGL_debug_renderer_info"}}()),console.groupEnd("dtk")}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.diglettk=t():e.diglettk=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=30)}([function(e,t,n){"use strict";(function(e){n.d(t,"k",function(){return b}),n.d(t,"l",function(){return T}),n.d(t,"m",function(){return C}),n.d(t,"e",function(){return w}),n.d(t,"f",function(){return x}),n.d(t,"g",function(){return R}),n.d(t,"b",function(){return E}),n.d(t,"h",function(){return L}),n.d(t,"i",function(){return N}),n.d(t,"c",function(){return B}),n.d(t,"j",function(){return F}),n.d(t,"d",function(){return _});var r=n(1);function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){"@babel/helpers - typeof";return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};M(t);var n=[];function r(e){n[e]=null}return Number.isInteger(t.mtime)||(t.mtime=++g),t.classHierarchy=["vtkObject"],e.isDeleted=function(){return!!t.deleted},e.modified=function(r){t.deleted?T("instance deleted - cannot call any method"):r&&r0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1;return Object.keys(n).forEach(function(i){var s=a?null:e["set".concat(O(i))];s&&Array.isArray(n[i])&&s.length>1?o=s.apply(void 0,c(n[i]))||o:s?o=s(n[i])||o:(-1!==["mtime"].indexOf(i)||r||C("Warning: Set value to model directly ".concat(i,", ").concat(n[i])),t[i]=n[i],o=!0)}),o},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error("Cannot ShallowCopy ".concat(n.getClassName()," into ").concat(e.getClassName()));var a=n.get(),o=Object.keys(t).sort();Object.keys(a).sort().forEach(function(e){var n=o.indexOf(e);-1===n?r&&b("add ".concat(e," in shallowCopy")):o.splice(n,1),t[e]=a[e]}),o.length&&r&&b("Untouched keys: ".concat(o.join(", "))),e.modified()},e}function E(e,t,n){n.forEach(function(n){"object"===o(n)?e["get".concat(O(n.name))]=function(){return t[n.name]}:e["get".concat(O(n))]=function(){return t[n]}})}P.Float32Array=Float32Array,P.Float64Array=Float64Array,P.Uint8Array=Uint8Array,P.Int8Array=Int8Array,P.Uint16Array=Uint16Array,P.Int16Array=Int16Array,P.Uint32Array=Uint32Array,P.Int32Array=Int32Array,P.Uint8ClampedArray=Uint8ClampedArray;var D={enum:function(e,t,n){return function(r){if("string"==typeof r){if(void 0!==n.enum[r])return t[n.name]!==n.enum[r]&&(t[n.name]=n.enum[r],e.modified(),!0);throw T("Set Enum with invalid argument ".concat(n,", ").concat(r)),new RangeError("Set Enum with invalid string argument")}if("number"==typeof r){if(t[n.name]!==r){if(-1!==Object.keys(n.enum).map(function(e){return n.enum[e]}).indexOf(r))return t[n.name]=r,e.modified(),!0;throw T("Set Enum outside numeric range ".concat(n,", ").concat(r)),new RangeError("Set Enum outside numeric range")}return!1}throw T("Set Enum with invalid argument (String/Number) ".concat(n,", ").concat(r)),new TypeError("Set Enum with invalid argument (String/Number)")}}};function V(e){if("object"===o(e)){var t=D[e.type];if(t)return function(n,r){return t(n,r,e)};throw T("No setter for field ".concat(e)),new TypeError("No setter for field")}return function(t,n){return function(r){return n.deleted?(T("instance deleted - cannot call any method"),!1):n[e]!==r&&(n[e]=r,t.modified(),!0)}}}function L(e,t,n){n.forEach(function(n){"object"===o(n)?e["set".concat(O(n.name))]=V(n)(e,t):e["set".concat(O(n))]=V(n)(e,t)})}function N(e,t,n){E(e,t,n),L(e,t,n)}function B(e,t,n){n.forEach(function(n){e["get".concat(O(n))]=function(){return[].concat(t[n])},e["get".concat(O(n),"ByReference")]=function(){return t[n]}})}function k(e,t,n,r){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach(function(n){e["set".concat(O(n))]=function(){if(t.deleted)return T("instance deleted - cannot call any method"),!1;for(var o=arguments.length,i=new Array(o),s=0;s4&&void 0!==arguments[4]?arguments[4]:void 0;B(e,t,n),k(e,t,n,r,a)}var G=Symbol("Event abort");function _(e,t){var n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n={};return e(n,{},t),Object.freeze(n)};return t&&r.a.register(t,n),n}function U(e){return e&&e.isA&&e.isA("vtkObject")}function j(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=function(e,n){t.keystore[e]=n},e.getKey=function(e){return t.keystore[e]},e.getAllKeys=function(){return Object.keys(t.keystore)},e.deleteKey=function(e){return delete t.keystore[e]},e.clearKeystore=function(){return e.getAllKeys().forEach(function(e){return delete t.keystore[e]})}}var W=1,z="__root__";var H=10,K=40,X=800;t.a={algo:function(e,t,n,a){function o(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?T("instance deleted - cannot call any method"):r>=t.numberOfInputs?T("algorithm ".concat(e.getClassName()," only has ").concat(t.numberOfInputs," input ports. To add more input ports, use addInputData()")):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function i(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)T("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){var a="algorithm ".concat(e.getClassName()," only has ");return a+="".concat(t.numberOfInputs),void T(a+=" input ports. To add more input ports, use addInputConnection()")}t.inputData[r]=null,t.inputConnection[r]=n}}function s(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(T("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(r.a):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(r.a):t.inputConnection=[],t.output?t.output=t.output.map(r.a):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(r.a):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=function(){for(var n=e.getMTime(),r=a,o=1/0;r--;){if(!t.output[r])return!0;var i=t.output[r].getMTime();if(io)return!0;return!1},t.numberOfInputs){for(var l=t.numberOfInputs;l--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=i,e.addInputData=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,o(e,t.numberOfInputs-1))},e.addInputConnection=function(e){t.deleted?T("instance deleted - cannot call any method"):(t.numberOfInputs++,i(e,t.numberOfInputs-1))},e.getInputData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}a&&(e.getOutputData=s,e.getOutputPort=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=function(){return s(t)};return n.filter=e,n}),e.update=function(){var n=[];if(t.numberOfInputs)for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:"Scalars";t.inputArrayToProcess.length1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error("Invalid callback for event ".concat(n)),null;if(t.deleted)return T("instance deleted - cannot call any method"),null;var o=i++;return r.push([o,e,a]),r.sort(function(e,t){return t[2]-e[2]}),function(e){return Object.freeze({unsubscribe:function(){s(e)}})}(o)},e.delete=function(){o(),r.forEach(function(e){return s(a(e,1)[0])})}},EVENT_ABORT:G,formatBytesToProperUnit:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,r=["TB","GB","MB","KB"],a=Number(e),o="B";a>n;)a/=n,o=r.pop();return"".concat(a.toFixed(t)," ").concat(o)},formatNumbersWithThousandSeparator:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ",n=[],r=e;r>1e3;)n.push("000".concat(r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)},get:E,getArray:B,getCurrentGlobalMTime:function(){return g},getStateArrayMapFunc:A,isVtkObject:U,keystore:j,newInstance:_,newTypedArray:w,newTypedArrayFrom:x,normalizeWheel:function(e){var t=0,n=0,r=0,a=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*H,a=n*H,"deltaY"in e&&(a=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(1===e.deltaMode?(r*=K,a*=K):(r*=X,a*=X)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:a}},obj:R,proxy:function(e,t){j(e,t);var n=e.delete;t.proxyId="".concat(W++),t.ui=JSON.parse(JSON.stringify(t.ui||[])),E(e,t,["proxyId","proxyGroup","proxyName"]),N(e,t,["proxyManager"]);var r={},a={};function o(e,t){a[t]||(a[t]=[]);for(var n=a[t],i=0;i0&&void 0!==arguments[0]?arguments[0]:z,r=[],o=t.proxyId,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:z;return a[e]}(n)||[],l=0;l1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];var r=null,a=[],o=0,i=!1;function s(n){var s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;var c=[],u=null;for(o=a.length;o--;){var d=a[o];d.instance===n?u=d:c.push(d)}if(!u)return null;var f=u.instance["get".concat(O(u.propertyName))]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],i=n.onModified(s),u=a[0];return a.push({instance:n,propertyName:r,subscription:i}),o&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set(l({},r,t.propertyLinkMap[e].value)):u&&s(u.instance,!0)),{unsubscribe:function(){return c(n,r)}}},unbind:c,unsubscribe:function(){for(;a.length;)a.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=u,u},e.listPropertyNames=function(){return i().map(function(e){return e.name})},e.getPropertyByName=function(e){return i().find(function(t){return t.name===e})},e.getPropertyDomainByName=function(e){return(r[e]||{}).domain},e.getProxySection=function(){return{id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}},e.delete=function(){for(var r=Object.keys(t.propertyLinkMap),a=r.length;a--;)t.propertyLinkMap[r[a]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},I(function(){if(t.links)for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};t.this=e;for(var a=Object.keys(r),o=a.length,i=function(){var i=a[o];t[i]=r[i];var s=n[i];e["set".concat(O(i))]=function(n){n!==t[i]&&(t[i]=n,function(e){for(var n=Object.keys(e),r=n.length;r--;){var a=n[r];t[a].set(e[a])}}(s[n]),e.modified())}};o--;)i();a.length&&E(e,t,a)},safeArrays:M,set:L,setArray:k,setGet:N,setGetArray:F,setImmediate:I,setLoggerFunction:function(e,t){y[e]&&(y[e]=t||h)},throttle:function(e,t){var n=!1,r=null;function a(){n=!1,null!==r&&(o.apply(void 0,c(r)),r=null)}function o(){for(var o=arguments.length,i=new Array(o),s=0;s2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(U(t)){if(a.indexOf(t)>=0)return r;a.push(t);var o=n(t);void 0!==o&&r.push(o);var i=t.get();Object.keys(i).forEach(function(t){var o=i[t];Array.isArray(o)?o.forEach(function(t){e(t,n,r,a)}):e(o,n,r,a)})}return r},TYPED_ARRAYS:P,uncapitalize:function(e){return e.charAt(0).toLowerCase()+e.slice(1)},VOID:m,vtkDebugMacro:b,vtkErrorMacro:T,vtkInfoMacro:function(){y.info.apply(y,arguments)},vtkLogMacro:function(){y.log.apply(y,arguments)},vtkOnceErrorMacro:function(e){S[e]||(y.error(e),S[e]=!0)},vtkWarningMacro:C}}).call(this,n(7))},function(e,t,n){"use strict";(function(e){function r(e){"@babel/helpers - typeof";return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return s});var i={vtkObject:function(){return null}};function s(t){if(null===t||void 0===t)return t;if(t.isA)return t;if(!t.vtkClass)return e.console&&e.console.error&&e.console.error("Invalid VTK object"),null;var n=i[t.vtkClass];if(!n)return e.console&&e.console.error&&e.console.error("No vtk class found for Object of type ".concat(t.vtkClass)),null;var l=function(e){for(var t=1;t 0\nuniform float vSpecularPower;\nuniform float vAmbient;\nuniform float vDiffuse;\nuniform float vSpecular;\n//VTK::Light::Dec\n#endif\n\n// possibly define vtkGradientOpacityOn\n//VTK::GradientOpacityOn\n#ifdef vtkGradientOpacityOn\nuniform float goscale0;\nuniform float goshift0;\nuniform float gomin0;\nuniform float gomax0;\n#if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\nuniform float goscale1;\nuniform float goshift1;\nuniform float gomin1;\nuniform float gomax1;\n#if vtkNumComponents >= 3\nuniform float goscale2;\nuniform float goshift2;\nuniform float gomin2;\nuniform float gomax2;\n#endif\n#if vtkNumComponents >= 4\nuniform float goscale3;\nuniform float goshift3;\nuniform float gomin3;\nuniform float gomax3;\n#endif\n#endif\n#endif\n\n// if you want to see the raw tiled\n// data in webgl1 uncomment the following line\n// #define debugtile\n\n// camera values\nuniform float camThick;\nuniform float camNear;\nuniform float camFar;\nuniform int cameraParallel;\n\n// values describing the volume geometry\nuniform vec3 vOriginVC;\nuniform vec3 vSpacing;\nuniform ivec3 volumeDimensions; // 3d texture dimensions\nuniform vec3 vPlaneNormal0;\nuniform float vPlaneDistance0;\nuniform vec3 vPlaneNormal1;\nuniform float vPlaneDistance1;\nuniform vec3 vPlaneNormal2;\nuniform float vPlaneDistance2;\nuniform vec3 vPlaneNormal3;\nuniform float vPlaneDistance3;\nuniform vec3 vPlaneNormal4;\nuniform float vPlaneDistance4;\nuniform vec3 vPlaneNormal5;\nuniform float vPlaneDistance5;\n\n//VTK::ClipPlane::Dec\n\n// opacity and color textures\nuniform sampler2D otexture;\nuniform float oshift0;\nuniform float oscale0;\nuniform sampler2D ctexture;\nuniform float cshift0;\nuniform float cscale0;\n\n// jitter texture\nuniform sampler2D jtexture;\n\n// some 3D texture values\nuniform float sampleDistance;\nuniform vec3 vVCToIJK;\n\n// the heights defined below are the locations\n// for the up to four components of the tfuns\n// the tfuns have a height of 2XnumComps pixels so the\n// values are computed to hit the middle of the two rows\n// for that component\n#ifdef vtkIndependentComponentsOn\n#if vtkNumComponents == 2\nuniform float mix0;\nuniform float mix1;\n#define height0 0.25\n#define height1 0.75\n#endif\n#if vtkNumComponents == 3\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\n#define height0 0.17\n#define height1 0.5\n#define height2 0.83\n#endif\n#if vtkNumComponents == 4\nuniform float mix0;\nuniform float mix1;\nuniform float mix2;\nuniform float mix3;\n#define height0 0.125\n#define height1 0.375\n#define height2 0.625\n#define height3 0.875\n#endif\n#endif\n\n#if vtkNumComponents >= 2\nuniform float oshift1;\nuniform float oscale1;\nuniform float cshift1;\nuniform float cscale1;\n#endif\n#if vtkNumComponents >= 3\nuniform float oshift2;\nuniform float oscale2;\nuniform float cshift2;\nuniform float cscale2;\n#endif\n#if vtkNumComponents >= 4\nuniform float oshift3;\nuniform float oscale3;\nuniform float cshift3;\nuniform float cscale3;\n#endif\n\n// declaration for intermixed geometry\n//VTK::ZBuffer::Dec\n\n// Lighting values\n//VTK::Light::Dec\n\n//=======================================================================\n// Webgl2 specific version of functions\n#if __VERSION__ == 300\n\nuniform highp sampler3D texture1;\n\nvec4 getTextureValue(vec3 pos)\n{\n vec4 tmp = texture(texture1, pos);\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.a = tmp.g;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n return tmp;\n}\n\n//=======================================================================\n// WebGL1 specific version of functions\n#else\n\nuniform sampler2D texture1;\n\nuniform float texWidth;\nuniform float texHeight;\nuniform int xreps;\nuniform int xstride;\nuniform int ystride;\n\n// if computing triliear values from multiple z slices\n#ifdef vtkTriliearOn\nvec4 getTextureValue(vec3 ijk)\n{\n float zoff = 1.0/float(volumeDimensions.z);\n vec4 val1 = getOneTextureValue(ijk);\n vec4 val2 = getOneTextureValue(vec3(ijk.xy, ijk.z + zoff));\n\n float indexZ = float(volumeDimensions)*ijk.z;\n float zmix = indexZ - floor(indexZ);\n\n return mix(val1, val2, zmix);\n}\n\nvec4 getOneTextureValue(vec3 ijk)\n#else // nearest or fast linear\nvec4 getTextureValue(vec3 ijk)\n#endif\n{\n vec3 tdims = vec3(volumeDimensions);\n\n#ifdef debugtile\n vec2 tpos = vec2(ijk.x, ijk.y);\n vec4 tmp = texture2D(texture1, tpos);\n tmp.a = 1.0;\n\n#else\n int z = int(ijk.z * tdims.z);\n int yz = z / xreps;\n int xz = z - yz*xreps;\n\n int tileWidth = volumeDimensions.x/xstride;\n int tileHeight = volumeDimensions.y/ystride;\n\n xz *= tileWidth;\n yz *= tileHeight;\n\n float ni = float(xz) + (ijk.x*float(tileWidth));\n float nj = float(yz) + (ijk.y*float(tileHeight));\n\n vec2 tpos = vec2(ni/texWidth, nj/texHeight);\n\n vec4 tmp = texture2D(texture1, tpos);\n\n#if vtkNumComponents == 1\n tmp.a = tmp.r;\n#endif\n#if vtkNumComponents == 2\n tmp.g = tmp.a;\n#endif\n#if vtkNumComponents == 3\n tmp.a = length(tmp.rgb);\n#endif\n#endif\n\n return tmp;\n}\n\n// End of Webgl1 specific code\n//=======================================================================\n#endif\n\n//=======================================================================\n// compute the normal and gradient magnitude for a position\nvec4 computeNormal(vec3 pos, float scalar, vec3 tstep)\n{\n vec4 result;\n\n result.x = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)).a - scalar;\n result.y = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)).a - scalar;\n result.z = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)).a - scalar;\n\n // divide by spacing\n result.xyz /= vSpacing;\n\n result.w = length(result.xyz);\n\n // rotate to View Coords\n result.xyz =\n result.x * vPlaneNormal0 +\n result.y * vPlaneNormal2 +\n result.z * vPlaneNormal4;\n\n if (result.w > 0.0)\n {\n result.xyz /= result.w;\n }\n return result;\n}\n\n#ifdef vtkImageLabelOutlineOn\nvec3 fragCoordToIndexSpace(vec4 fragCoord) {\n vec4 pcPos = vec4(\n (fragCoord.x / vpWidth - 0.5) * 2.0,\n (fragCoord.y / vpHeight - 0.5) * 2.0,\n (fragCoord.z - 0.5) * 2.0,\n 1.0);\n\n vec4 worldCoord = PCWCMatrix * pcPos;\n vec4 vertex = (worldCoord/worldCoord.w);\n\n return (vWCtoIDX * vertex).xyz / vec3(volumeDimensions);\n}\n#endif\n\n//=======================================================================\n// compute the normals and gradient magnitudes for a position\n// for independent components\nmat4 computeMat4Normal(vec3 pos, vec4 tValue, vec3 tstep)\n{\n mat4 result;\n vec4 distX = getTextureValue(pos + vec3(tstep.x, 0.0, 0.0)) - tValue;\n vec4 distY = getTextureValue(pos + vec3(0.0, tstep.y, 0.0)) - tValue;\n vec4 distZ = getTextureValue(pos + vec3(0.0, 0.0, tstep.z)) - tValue;\n\n // divide by spacing\n distX /= vSpacing.x;\n distY /= vSpacing.y;\n distZ /= vSpacing.z;\n\n mat3 rot;\n rot[0] = vPlaneNormal0;\n rot[1] = vPlaneNormal2;\n rot[2] = vPlaneNormal4;\n\n#if !defined(vtkComponent0Proportional)\n result[0].xyz = vec3(distX.r, distY.r, distZ.r);\n result[0].a = length(result[0].xyz);\n result[0].xyz *= rot;\n if (result[0].w > 0.0)\n {\n result[0].xyz /= result[0].w;\n }\n#endif\n\n// optionally compute the 2nd component\n#if vtkNumComponents >= 2 && !defined(vtkComponent1Proportional)\n result[1].xyz = vec3(distX.g, distY.g, distZ.g);\n result[1].a = length(result[1].xyz);\n result[1].xyz *= rot;\n if (result[1].w > 0.0)\n {\n result[1].xyz /= result[1].w;\n }\n#endif\n\n// optionally compute the 3rd component\n#if vtkNumComponents >= 3 && !defined(vtkComponent2Proportional)\n result[2].xyz = vec3(distX.b, distY.b, distZ.b);\n result[2].a = length(result[2].xyz);\n result[2].xyz *= rot;\n if (result[2].w > 0.0)\n {\n result[2].xyz /= result[2].w;\n }\n#endif\n\n// optionally compute the 4th component\n#if vtkNumComponents >= 4 && !defined(vtkComponent3Proportional)\n result[3].xyz = vec3(distX.a, distY.a, distZ.a);\n result[3].a = length(result[3].xyz);\n result[3].xyz *= rot;\n if (result[3].w > 0.0)\n {\n result[3].xyz /= result[3].w;\n }\n#endif\n\n return result;\n}\n\n//=======================================================================\n// Given a normal compute the gradient opacity factors\n//\nfloat computeGradientOpacityFactor(\n vec4 normal, float goscale, float goshift, float gomin, float gomax)\n{\n#if defined(vtkGradientOpacityOn)\n return clamp(normal.a*goscale + goshift, gomin, gomax);\n#else\n return 1.0;\n#endif\n}\n\n#if vtkLightComplexity > 0\nvoid applyLighting(inout vec3 tColor, vec4 normal)\n{\n vec3 diffuse = vec3(0.0, 0.0, 0.0);\n vec3 specular = vec3(0.0, 0.0, 0.0);\n //VTK::Light::Impl\n tColor.rgb = tColor.rgb*(diffuse*vDiffuse + vAmbient) + specular*vSpecular;\n}\n#endif\n\n//=======================================================================\n// Given a texture value compute the color and opacity\n//\nvec4 getColorForValue(vec4 tValue, vec3 posIS, vec3 tstep)\n{\n#ifdef vtkImageLabelOutlineOn\n vec3 centerPosIS = fragCoordToIndexSpace(gl_FragCoord); // pos in texture space\n vec4 centerValue = getTextureValue(centerPosIS);\n bool pixelOnBorder = false;\n vec4 tColor = texture2D(ctexture, vec2(centerValue.r * cscale0 + cshift0, 0.5));\n\n // Get alpha of segment from opacity function.\n tColor.a = texture2D(otexture, vec2(centerValue.r * oscale0 + oshift0, 0.5)).r;\n\n // Only perform outline check on fragments rendering voxels that aren't invisible.\n // Saves a bunch of needless checks on the background.\n // TODO define epsilon when building shader?\n if (float(tColor.a) > 0.01) {\n for (int i = -outlineThickness; i <= outlineThickness; i++) {\n for (int j = -outlineThickness; j <= outlineThickness; j++) {\n if (i == 0 || j == 0) {\n continue;\n }\n\n vec4 neighborPixelCoord = vec4(gl_FragCoord.x + float(i),\n gl_FragCoord.y + float(j),\n gl_FragCoord.z, gl_FragCoord.w);\n\n vec3 neighborPosIS = fragCoordToIndexSpace(neighborPixelCoord);\n vec4 value = getTextureValue(neighborPosIS);\n\n // If any of my neighbours are not the same value as I\n // am, this means I am on the border of the segment.\n // We can break the loops\n if (any(notEqual(value, centerValue))) {\n pixelOnBorder = true;\n break;\n }\n }\n\n if (pixelOnBorder == true) {\n break;\n }\n }\n\n // If I am on the border, I am displayed at full opacity\n if (pixelOnBorder == true) {\n tColor.a = 1.0;\n }\n }\n\n#else\n // compute the normal and gradient magnitude if needed\n // We compute it as a vec4 if possible otherwise a mat4\n //\n vec4 goFactor = vec4(1.0,1.0,1.0,1.0);\n\n // compute the normal vectors as needed\n #if (vtkLightComplexity > 0) || defined(vtkGradientOpacityOn)\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n mat4 normalMat = computeMat4Normal(posIS, tValue, tstep);\n #if !defined(vtkComponent0Proportional)\n vec4 normal0 = normalMat[0];\n #endif\n #if !defined(vtkComponent1Proportional)\n vec4 normal1 = normalMat[1];\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n vec4 normal2 = normalMat[2];\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n vec4 normal3 = normalMat[3];\n #endif\n #endif\n #endif\n #else\n vec4 normal0 = computeNormal(posIS, tValue.a, tstep);\n #endif\n #endif\n\n // compute gradient opacity factors as needed\n #if defined(vtkGradientOpacityOn)\n #if !defined(vtkComponent0Proportional)\n goFactor.x =\n computeGradientOpacityFactor(normal0, goscale0, goshift0, gomin0, gomax0);\n #endif\n #if defined(vtkIndependentComponentsOn) && (vtkNumComponents > 1)\n #if !defined(vtkComponent1Proportional)\n goFactor.y =\n computeGradientOpacityFactor(normal1, goscale1, goshift1, gomin1, gomax1);\n #endif\n #if vtkNumComponents > 2\n #if !defined(vtkComponent2Proportional)\n goFactor.z =\n computeGradientOpacityFactor(normal2, goscale2, goshift2, gomin2, gomax2);\n #endif\n #if vtkNumComponents > 3\n #if !defined(vtkComponent3Proportional)\n goFactor.w =\n computeGradientOpacityFactor(normal3, goscale3, goshift3, gomin3, gomax3);\n #endif\n #endif\n #endif\n #endif\n #endif\n\n // single component is always independent\n #if vtkNumComponents == 1\n vec4 tColor = texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, 0.5));\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, 0.5)).r;\n #endif\n\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n vec4 tColor = mix0*texture2D(ctexture, vec2(tValue.r * cscale0 + cshift0, height0));\n #if !defined(vtkComponent0Proportional)\n tColor.a = goFactor.x*mix0*texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.r * oscale0 + oshift0, height0)).r;\n tColor *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix0));\n #endif\n\n vec3 tColor1 = mix1*texture2D(ctexture, vec2(tValue.g * cscale1 + cshift1, height1)).rgb;\n #if !defined(vtkComponent1Proportional)\n tColor.a += goFactor.y*mix1*texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.g * oscale1 + oshift1, height1)).r;\n tColor1 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix1));\n #endif\n\n #if vtkNumComponents >= 3\n vec3 tColor2 = mix2*texture2D(ctexture, vec2(tValue.b * cscale2 + cshift2, height2)).rgb;\n #if !defined(vtkComponent2Proportional)\n tColor.a += goFactor.z*mix2*texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.b * oscale2 + oshift2, height2)).r;\n tColor2 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix2));\n #endif\n\n #if vtkNumComponents >= 4\n vec3 tColor3 = mix3*texture2D(ctexture, vec2(tValue.a * cscale3 + cshift3, height3)).rgb;\n #if !defined(vtkComponent3Proportional)\n tColor.a += goFactor.w*mix3*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n #else\n float pwfValue = texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, height3)).r;\n tColor3 *= pwfValue;\n tColor.a *= mix(pwfValue, 1.0, (1.0 - mix3));\n #endif\n #endif\n #endif\n #else // then not independent\n\n #if vtkNumComponents == 2\n float lum = tValue.r * cscale0 + cshift0;\n float alpha = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale1 + oshift1, 0.5)).r;\n vec4 tColor = vec4(lum, lum, lum, alpha);\n #endif\n #if vtkNumComponents == 3\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale0 + oshift0, 0.5)).r;\n #endif\n #if vtkNumComponents == 4\n vec4 tColor;\n tColor.r = tValue.r * cscale0 + cshift0;\n tColor.g = tValue.g * cscale1 + cshift1;\n tColor.b = tValue.b * cscale2 + cshift2;\n tColor.a = goFactor.x*texture2D(otexture, vec2(tValue.a * oscale3 + oshift3, 0.5)).r;\n #endif\n #endif // dependent\n\n // apply lighting if requested as appropriate\n #if vtkLightComplexity > 0\n #if !defined(vtkComponent0Proportional)\n applyLighting(tColor.rgb, normal0);\n #endif\n #if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n #if !defined(vtkComponent1Proportional)\n applyLighting(tColor1, normal1);\n #endif\n #if vtkNumComponents >= 3\n #if !defined(vtkComponent2Proportional)\n applyLighting(tColor2, normal2);\n #endif\n #if vtkNumComponents >= 4\n #if !defined(vtkComponent3Proportional)\n applyLighting(tColor3, normal3);\n #endif\n #endif\n #endif\n #endif\n#endif\n\n// perform final independent blend as needed\n#if defined(vtkIndependentComponentsOn) && vtkNumComponents >= 2\n tColor.rgb += tColor1;\n#if vtkNumComponents >= 3\n tColor.rgb += tColor2;\n#if vtkNumComponents >= 4\n tColor.rgb += tColor3;\n#endif\n#endif\n#endif\n\n#endif\n\n\n\n\n\n\n\nreturn tColor;\n}\n\n\n\n//=======================================================================\n// Apply the specified blend mode operation along the ray's path.\n//\nvoid applyBlend(vec3 posIS, vec3 endIS, float sampleDistanceIS, vec3 tdims)\n{\n vec3 tstep = 1.0/tdims;\n\n // start slightly inside and apply some jitter\n vec3 delta = endIS - posIS;\n vec3 stepIS = normalize(delta)*sampleDistanceIS;\n float raySteps = length(delta)/sampleDistanceIS;\n\n // avoid 0.0 jitter\n float jitter = 0.01 + 0.99*texture2D(jtexture, gl_FragCoord.xy/32.0).r;\n float stepsTraveled = jitter;\n\n // local vars for the loop\n vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\n vec4 tValue;\n vec4 tColor;\n\n // if we have less than one step then pick the middle point\n // as our value\n // if (raySteps <= 1.0)\n // {\n // posIS = (posIS + endIS)*0.5;\n // }\n\n // Perform initial step at the volume boundary\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n #if vtkBlendMode == 0 // COMPOSITE_BLEND\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n // handle very thin volumes\n if (raySteps <= 1.0)\n {\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps);\n gl_FragData[0] = tColor;\n return;\n }\n\n tColor.a = 1.0 - pow(1.0 - tColor.a, jitter);\n color = vec4(tColor.rgb*tColor.a, tColor.a);\n posIS += (jitter*stepIS);\n\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n\n float mix = (1.0 - color.a);\n\n // this line should not be needed but nvidia seems to not handle\n // the break correctly on windows/chrome 58 angle\n //mix = mix * sign(max(raySteps - stepsTraveled - 1.0, 0.0));\n\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n stepsTraveled++;\n posIS += stepIS;\n if (color.a > 0.99) { color.a = 1.0; break; }\n }\n\n if (color.a < 0.99 && (raySteps - stepsTraveled) > 0.0)\n {\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // now map through opacity and color\n tColor = getColorForValue(tValue, posIS, tstep);\n tColor.a = 1.0 - pow(1.0 - tColor.a, raySteps - stepsTraveled);\n\n float mix = (1.0 - color.a);\n color = color + vec4(tColor.rgb*tColor.a, tColor.a)*mix;\n }\n\n gl_FragData[0] = vec4(color.rgb/color.a, color.a);\n #endif\n #if vtkBlendMode == 1 || vtkBlendMode == 2\n // MAXIMUM_INTENSITY_BLEND || MINIMUM_INTENSITY_BLEND\n // Find maximum/minimum intensity along the ray.\n\n // Define the operation we will use (min or max)\n #if vtkBlendMode == 1\n #define OP max\n #else\n #define OP min\n #endif\n\n // If the clipping range is shorter than the sample distance\n // we can skip the sampling loop along the ray.\n if (raySteps <= 1.0)\n {\n gl_FragData[0] = getColorForValue(tValue, posIS, tstep);\n return;\n }\n\n vec4 value = tValue;\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // Update the maximum value if necessary\n value = OP(tValue, value);\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n tValue = getTextureValue(posIS);\n value = OP(tValue, value);\n\n // Now map through opacity and color\n gl_FragData[0] = getColorForValue(value, posIS, tstep);\n #endif\n #if vtkBlendMode == 3 //AVERAGE_INTENSITY_BLEND\n vec4 averageIPScalarRangeMin = vec4 (\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n //VTK::AverageIPScalarRangeMin,\n 1.0);\n vec4 averageIPScalarRangeMax = vec4(\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n //VTK::AverageIPScalarRangeMax,\n 1.0);\n\n vec4 sum = vec4(0.);\n\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n }\n\n if (raySteps <= 1.0) {\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n return;\n }\n\n posIS += (jitter*stepIS);\n\n // Sample along the ray until MaximumSamplesValue,\n // ending slightly inside the total distance\n for (int i = 0; i < //VTK::MaximumSamplesValue ; ++i)\n {\n // If we have reached the last step, break\n if (stepsTraveled + 1.0 >= raySteps) { break; }\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation.\n // Notes:\n // - We are comparing all values in the texture to see if any of them\n // are outside of the scalar range. In the future we might want to allow\n // scalar ranges for each component.\n // - We are setting the alpha channel for averageIPScalarRangeMin and\n // averageIPScalarRangeMax so that we do not trigger this 'continue'\n // based on the alpha channel comparison.\n // - There might be a better way to do this. I'm not sure if there is an\n // equivalent of 'any' which only operates on RGB, though I suppose\n // we could write an 'anyRGB' function and see if that is faster.\n averageIPScalarRangeMin.a = tValue.a;\n averageIPScalarRangeMax.a = tValue.a;\n if (any(lessThan(tValue, averageIPScalarRangeMin)) ||\n any(greaterThan(tValue, averageIPScalarRangeMax))) {\n continue;\n }\n\n // Sum the values across each step in the path\n sum += tValue;\n\n // Otherwise, continue along the ray\n stepsTraveled++;\n posIS += stepIS;\n }\n\n // Perform the last step along the ray using the\n // residual distance\n posIS = endIS;\n\n // compute the scalar\n tValue = getTextureValue(posIS);\n\n // One can control the scalar range by setting the AverageIPScalarRange to disregard scalar values, not in the range of interest, from the average computation\n if (all(greaterThanEqual(tValue, averageIPScalarRangeMin)) &&\n all(lessThanEqual(tValue, averageIPScalarRangeMax))) {\n sum += tValue;\n\n stepsTraveled++;\n }\n\n sum /= vec4(stepsTraveled, stepsTraveled, stepsTraveled, 1.0);\n\n gl_FragData[0] = getColorForValue(sum, posIS, tstep);\n #endif\n}\n\n//=======================================================================\n// Compute a new start and end point for a given ray based\n// on the provided bounded clipping plane (aka a rectangle)\nvoid getRayPointIntersectionBounds(\n vec3 rayPos, vec3 rayDir,\n vec3 planeDir, float planeDist,\n inout vec2 tbounds, vec3 vPlaneX, vec3 vPlaneY,\n float vSize1, float vSize2)\n{\n float result = dot(rayDir, planeDir);\n if (result == 0.0)\n {\n return;\n }\n result = -1.0 * (dot(rayPos, planeDir) + planeDist) / result;\n vec3 xposVC = rayPos + rayDir*result;\n vec3 vxpos = xposVC - vOriginVC;\n vec2 vpos = vec2(\n dot(vxpos, vPlaneX),\n dot(vxpos, vPlaneY));\n\n // on some apple nvidia systems this does not work\n // if (vpos.x < 0.0 || vpos.x > vSize1 ||\n // vpos.y < 0.0 || vpos.y > vSize2)\n // even just\n // if (vpos.x < 0.0 || vpos.y < 0.0)\n // fails\n // so instead we compute a value that represents in and out\n //and then compute the return using this value\n float xcheck = max(0.0, vpos.x * (vpos.x - vSize1)); // 0 means in bounds\n float check = sign(max(xcheck, vpos.y * (vpos.y - vSize2))); // 0 means in bounds, 1 = out\n\n tbounds = mix(\n vec2(min(tbounds.x, result), max(tbounds.y, result)), // in value\n tbounds, // out value\n check); // 0 in 1 out\n}\n\n//=======================================================================\n// given a\n// - ray direction (rayDir)\n// - starting point (vertexVCVSOutput)\n// - bounding planes of the volume\n// - optionally depth buffer values\n// - far clipping plane\n// compute the start/end distances of the ray we need to cast\nvec2 computeRayDistances(vec3 rayDir, vec3 tdims)\n{\n vec2 dists = vec2(100.0*camFar, -1.0);\n\n vec3 vSize = vSpacing*(tdims - 1.0);\n\n // all this is in View Coordinates\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal0, vPlaneDistance0, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal1, vPlaneDistance1, dists, vPlaneNormal2, vPlaneNormal4,\n vSize.y, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal2, vPlaneDistance2, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal3, vPlaneDistance3, dists, vPlaneNormal0, vPlaneNormal4,\n vSize.x, vSize.z);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal4, vPlaneDistance4, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n getRayPointIntersectionBounds(vertexVCVSOutput, rayDir,\n vPlaneNormal5, vPlaneDistance5, dists, vPlaneNormal0, vPlaneNormal2,\n vSize.x, vSize.y);\n\n //VTK::ClipPlane::Impl\n\n // do not go behind front clipping plane\n dists.x = max(0.0,dists.x);\n\n // do not go PAST far clipping plane\n float farDist = -camThick/rayDir.z;\n dists.y = min(farDist,dists.y);\n\n // Do not go past the zbuffer value if set\n // This is used for intermixing opaque geometry\n //VTK::ZBuffer::Impl\n\n return dists;\n}\n\n//=======================================================================\n// Compute the index space starting position (pos) and end\n// position\n//\nvoid computeIndexSpaceValues(out vec3 pos, out vec3 endPos, out float sampleDistanceIS, vec3 rayDir, vec2 dists)\n{\n // compute starting and ending values in volume space\n pos = vertexVCVSOutput + dists.x*rayDir;\n pos = pos - vOriginVC;\n // convert to volume basis and origin\n pos = vec3(\n dot(pos, vPlaneNormal0),\n dot(pos, vPlaneNormal2),\n dot(pos, vPlaneNormal4));\n\n endPos = vertexVCVSOutput + dists.y*rayDir;\n endPos = endPos - vOriginVC;\n endPos = vec3(\n dot(endPos, vPlaneNormal0),\n dot(endPos, vPlaneNormal2),\n dot(endPos, vPlaneNormal4));\n\n float delta = length(endPos - pos);\n\n pos *= vVCToIJK;\n endPos *= vVCToIJK;\n\n float delta2 = length(endPos - pos);\n sampleDistanceIS = sampleDistance*delta2/delta;\n}\n\nvoid main()\n{\n\n vec3 rayDirVC;\n\n if (cameraParallel == 1)\n {\n // Camera is parallel, so the rayDir is just the direction of the camera.\n rayDirVC = vec3(0.0, 0.0, -1.0);\n } else {\n // camera is at 0,0,0 so rayDir for perspective is just the vc coord\n rayDirVC = normalize(vertexVCVSOutput);\n }\n\n vec3 tdims = vec3(volumeDimensions);\n\n // compute the start and end points for the ray\n vec2 rayStartEndDistancesVC = computeRayDistances(rayDirVC, tdims);\n\n // do we need to composite? aka does the ray have any length\n // If not, bail out early\n if (rayStartEndDistancesVC.y <= rayStartEndDistancesVC.x)\n {\n discard;\n }\n\n // IS = Index Space\n vec3 posIS;\n vec3 endIS;\n float sampleDistanceIS;\n computeIndexSpaceValues(posIS, endIS, sampleDistanceIS, rayDirVC, rayStartEndDistancesVC);\n\n // Perform the blending operation along the ray\n applyBlend(posIS, endIS, sampleDistanceIS, tdims);\n}\n"},function(e,t,n){var r;!function(a){"use strict";function o(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function i(e,t,n,r,a,i){return o(function(e,t){return e<>>32-t}(o(o(t,e),o(r,i)),a),n)}function s(e,t,n,r,a,o,s){return i(t&n|~t&r,e,t,a,o,s)}function l(e,t,n,r,a,o,s){return i(t&r|n&~r,e,t,a,o,s)}function c(e,t,n,r,a,o,s){return i(t^n^r,e,t,a,o,s)}function u(e,t,n,r,a,o,s){return i(n^(t|~r),e,t,a,o,s)}function d(e,t){var n,r,a,i,d;e[t>>5]|=128<>>9<<4)]=t;var f=1732584193,p=-271733879,g=-1732584194,m=271733878;for(n=0;n>5]>>>t%32&255);return n}function p(e){var t,n=[];for(n[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<>>4&15)+"0123456789abcdef".charAt(15&t);return r}function m(e){return unescape(encodeURIComponent(e))}function v(e){return function(e){return f(d(p(e),8*e.length))}(m(e))}function h(e,t){return function(e,t){var n,r,a=p(e),o=[],i=[];for(o[15]=i[15]=void 0,a.length>16&&(a=d(a,8*e.length)),n=0;n<16;n+=1)o[n]=909522486^a[n],i[n]=1549556828^a[n];return r=d(o.concat(p(t)),512+8*t.length),f(d(i.concat(r),640))}(m(e),m(t))}function y(e,t,n){return t?n?h(t,e):function(e,t){return g(h(e,t))}(t,e):n?v(e):function(e){return g(v(e))}(e)}void 0===(r=function(){return y}.call(t,n,t,e))||(e.exports=r)}()},function(e){e.exports=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,7.54296e-7,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,1.11641e-7,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,3.63578e-7,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,4.05298e-7,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4.264e-8,0,6.20844e-7,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,3.3216e-7,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,4.05432e-7,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,4.55569e-8]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,4.55569e-8,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}]},function(e,t,n){"use strict";var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(a)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments[3];return new Promise(function(o,i){var s=n._messageId++;n._messages.set(s,[o,i,a]),n._worker.postMessage([s,t,e],r||[])})}},{key:"postMessage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];return new Promise(function(a,o){var i=t._messageId++;t._messages.set(i,[a,o,r]),t._worker.postMessage([i,e],n||[])})}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r>>0,e=(r*=e)>>>0,e+=4294967296*(r-=e)}return 2.3283064365386963e-10*(e>>>0)}}();t.next=function(){var e=2091639*t.s0+2.3283064365386963e-10*t.c;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=0|e)},t.c=1,t.s0=n(" "),t.s1=n(" "),t.s2=n(" "),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function l(e,t){var n=new i(e),r=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,r&&("object"==typeof r&&s(r,n),a.state=function(){return s(n,{})}),a}a&&a.exports?a.exports=l:n(2)&&n(4)?void 0===(r=function(){return l}.call(t,n,t,a))||(a.exports=r):this.alea=l}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new function(e){var t=this,n="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor128=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorwow=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,a=t.i;return e=r[a],n=(e^=e>>>7)^e<<24,n^=(e=r[a+1&7])^e>>>10,n^=(e=r[a+3&7])^e>>>3,n^=(e=r[a+4&7])^e<<7,e=r[a+7&7],n^=(e^=e<<13)^e<<9,r[a]=n,t.i=a+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=""+t,n=0;n0;--n)e.next()}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.x&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xorshift7=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,a=t.X,o=t.i;return t.w=r=r+1640531527|0,n=a[o+34&127],e=a[o=o+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=a[o]=n^e,t.i=o,n+(r^r>>>16)|0},function(e,t){var n,r,a,o,i,s=[],l=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,l=Math.max(l,t.length)),a=0,o=-32;o>>15,r^=r<<4,r^=r>>>13,o>=0&&(i=i+1640531527|0,a=0==(n=s[127&o]^=r+i)?a+1:0);for(a>=128&&(s[127&(t&&t.length||0)]=-1),a=127,o=512;o>0;--o)r=s[a+34&127],n=s[a=a+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[a]=r^n;e.w=i,e.X=s,e.i=a}(t,e)}(e),r=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&(r.X&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.xor4096=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){(function(e){var r;!function(e,a,o){function i(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new function(e){var t=this,n="";t.next=function(){var e=t.b,n=t.c,r=t.d,a=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^a,a=a-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^a,t.a=a-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,r&&("object"==typeof r&&i(r,n),a.state=function(){return i(n,{})}),a}a&&a.exports?a.exports=s:n(2)&&n(4)?void 0===(r=function(){return s}.call(t,n,t,a))||(a.exports=r):this.tychei=s}(0,e,n(2))}).call(this,n(3)(e))},function(e,t,n){var r;!function(a,o,i){var s,l=256,c=6,u="random",d=i.pow(l,c),f=i.pow(2,52),p=2*f,g=l-1;function m(e,t,n){var r=[],m=h(function e(t,n){var r,a=[],o=typeof t;if(n&&"object"==o)for(r in t)try{a.push(e(t[r],n-1))}catch(e){}return a.length?a:"string"==o?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,y(o)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(l):(e=new Uint8Array(l),(a.crypto||a.msCrypto).getRandomValues(e)),y(e)}catch(e){var t=a.navigator,n=t&&t.plugins;return[+new Date,a,n,a.screen,y(o)]}}():e,3),r),b=new function(e){var t,n=e.length,r=this,a=0,o=r.i=r.j=0,i=r.S=[];n||(e=[n++]);for(;a=p;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|b.g(4)},T.quick=function(){return b.g(4)/4294967296},T.double=T,h(y(b.S),o),(t.pass||n||function(e,t,n,r){return r&&(r.S&&v(r,b),e.state=function(){return v(b,{})}),n?(i[u]=e,t):e})(T,m,"global"in t?t.global:this==i,t.state)}function v(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function h(e,t){for(var n,r=e+"",a=0;a=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var l=r.call(i,"catchLoc"),c=r.call(i,"finallyLoc");if(l&&c){if(this.prev=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;M(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:I(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:3,t=[];t.length1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=-1/0,o=t,i=e.length;o1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:for(var n=0,r=0;r2&&void 0!==arguments[2]?arguments[2]:1e-6;if(e.length!==t.length)return!1;return e.every(function(e,r){return Math.abs(e-t[r])<=n})}var ae=re;function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!"".concat(e).includes("e"))return+"".concat(Math.round("".concat(e,"e+").concat(t)),"e-").concat(t);var n="".concat(e).split("e"),r="";return+n[1]+t>0&&(r="+"),+"".concat(Math.round("".concat(+n[0],"e").concat(r).concat(+n[1]+t)),"e-").concat(t)}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=oe(e[0],n),t[1]=oe(e[1],n),t[2]=oe(e[2],n),t}function se(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g,m,v,h,b,C,S=w(t),P=w(t),x=function(e,t,n,r,a){h=e[t][n],v=e[r][a],e[t][n]=h-m*(v+h*p),e[r][a]=v+m*(h-v*p)};for(l=0;l3&&Math.abs(n[l])+h===Math.abs(n[l])&&Math.abs(n[s])+h===Math.abs(n[s]))e[l][s]=0;else if(Math.abs(e[l][s])>u){for(v=n[s]-n[l],Math.abs(v)+h===Math.abs(v)?f=e[l][s]/v:(d=.5*v/e[l][s],f=1/(Math.abs(d)+Math.sqrt(1+d*d)),d<0&&(f=-f)),b=1/Math.sqrt(1+f*f),p=(m=f*b)/(1+b),v=f*e[l][s],P[l]-=v,P[s]+=v,n[l]-=v,n[s]+=v,e[l][s]=0,o=0;o<=l-1;o++)x(e,o,l,o,s);for(o=l+1;o<=s-1;o++)x(e,l,o,o,s);for(o=s+1;o=T)return y("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=C&&(C=n[i=a]);if(i!==o)for(n[i]=n[o],n[o]=C,a=0;a>1)+(1&t);for(o=0;o=0&&c++;if(c(r=l>s?l:s)?c:r,a[i]=1,0!==r&&(a[i]/=r)}var u=Math.abs(t[0][0])*a[0],d=Math.abs(t[1][0])*a[1],f=Math.abs(t[2][0])*a[2];o[0]=0,d>=(r=u)&&(r=d,o[0]=1),f>=r&&(o[0]=2),0!==o[0]&&(P(t[o[0]],t[0]),a[o[0]]=a[0]);var p=Math.abs(t[1][1])*a[1],g=Math.abs(t[2][1])*a[2];o[1]=1,g>=(r=p)&&(o[1]=2,P(t[2],t[1])),o[2]=2;var m=0;if(te(t)<0){m=1;for(var v=0;v<3;v++)t[0][v]=-t[0][v],t[1][v]=-t[1][v],t[2][v]=-t[2][v]}var h=w(4);if(le(t,h),ne(h,t),m)for(var y=0;y<3;y++)t[0][y]=-t[0][y],t[1][y]=-t[1][y],t[2][y]=-t[2][y];1!==o[1]&&P(t[o[1]],t[1]),0!==o[0]&&P(t[o[0]],t[0])}function ue(e,t,n){var r,a,o,i,s,l,c=[w(3),w(3),w(3)],u=w(3),d=w(3);for(r=0;r<3;r++)c[r][0]=e[r][0],c[r][1]=e[r][1],c[r][2]=e[r][2],u[r]=c[r],d[r]=n[r];if(se(u,3,t,d),t[0]!==t[1]||t[0]!==t[2]){for(J(n,n),r=0;r<3;r++)if(t[(r+1)%3]===t[(r+2)%3]){for(l=Math.abs(n[r][0]),i=0,a=1;a<3;a++)l<(s=Math.abs(n[r][a]))&&(l=s,i=a);return i!==r&&(s=t[i],t[i]=t[r],t[r]=s,P(n[r],n[i])),n[i][i]<0&&(n[i][0]=-n[i][0],n[i][1]=-n[i][1],n[i][2]=-n[i][2]),o=(i+2)%3,n[a=(i+1)%3][0]=0,n[a][1]=0,n[a][2]=0,n[a][a]=1,z(n[i],n[a],n[o]),K(n[o]),z(n[o],n[i],n[a]),void J(n,n)}for(l=Math.abs(n[0][0]),i=0,r=1;r<3;r++)l<(s=Math.abs(n[r][0]))&&(l=s,i=r);for(0!==i&&(s=t[i],t[i]=t[0],t[0]=s,P(n[i],n[0])),Math.abs(n[1][1])i&&(i=c);if(0===i)return y("Unable to factor linear system"),0;d[r]=1/i}for(a=0;a=i&&(i=l,u=r)}if(a!==u){for(o=0;o=0)for(o=i;o<=a-1;o++)l-=e[a][o]*n[o];else 0!==l&&(i=a);n[a]=l}for(a=r-1;a>=0;a--){for(l=n[a],o=a+1;o3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,o=r||w(n),i=a||w(n);if(0===de(e,o,n))return 0;for(var s=0;sl?l=i:il?l=s:s0?(l-c)/l:0)>0?(n=o===l?1/6*(i-s)/(l-c):i===l?1/3+1/6*(s-o)/(l-c):2/3+1/6*(o-i)/(l-c))<0&&(n+=1):n=0,t[0]=n,t[1]=r,t[2]=u}function he(e,t){var n,r,a,o=m(e,3),i=o[0],s=o[1],l=o[2];i>1/6&&i<=1/3?(r=1,n=(1/3-i)/(1/6),a=0):i>1/3&&i<=.5?(r=1,a=(i-1/3)/(1/6),n=0):i>.5&&i<=2/3?(a=1,r=(2/3-i)/(1/6),n=0):i>2/3&&i<=5/6?(a=1,n=(i-2/3)/(1/6),r=0):i>5/6&&i<=1?(n=1,a=(1-i)/(1/6),r=0):(n=1,r=i/(1/6),a=0),n=s*n+(1-s),r=s*r+(1-s),a=s*a+(1-s),n*=l,r*=l,a*=l,t[0]=n,t[1]=r,t[2]=a}function ye(e,t){var n=m(e,3),r=(n[0]+16)/116,a=n[1]/500+r,o=r-n[2]/200;r=Math.pow(r,3)>.008856?Math.pow(r,3):(r-16/116)/7.787,a=Math.pow(a,3)>.008856?Math.pow(a,3):(a-16/116)/7.787,o=Math.pow(o,3)>.008856?Math.pow(o,3):(o-16/116)/7.787;t[0]=.9505*a,t[1]=1*r,t[2]=1.089*o}function be(e,t){var n=m(e,3),r=n[0]/.9505,a=n[1]/1,o=n[2]/1.089;r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,t[0]=116*a-16,t[1]=500*(r-a),t[2]=200*(a-o)}function Te(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2],i=3.2406*r+-1.5372*a+-.4986*o,s=-.9689*r+1.8758*a+.0415*o,l=.0557*r+-.204*a+1.057*o;i>.0031308?i=1.055*Math.pow(i,1/2.4)-.055:i*=12.92,s>.0031308?s=1.055*Math.pow(s,1/2.4)-.055:s*=12.92,l>.0031308?l=1.055*Math.pow(l,1/2.4)-.055:l*=12.92;var c=i;c1&&(i/=c,s/=c,l/=c),i<0&&(i=0),s<0&&(s=0),l<0&&(l=0),t[0]=i,t[1]=s,t[2]=l}function Ce(e,t){var n=m(e,3),r=n[0],a=n[1],o=n[2];r>.04045?r=Math.pow((r+.055)/1.055,2.4):r/=12.92,a>.04045?a=Math.pow((a+.055)/1.055,2.4):a/=12.92,o>.04045?o=Math.pow((o+.055)/1.055,2.4):o/=12.92,t[0]=.4124*r+.3576*a+.1805*o,t[1]=.2126*r+.7152*a+.0722*o,t[2]=.0193*r+.1192*a+.9505*o}function Se(e,t){var n=[0,0,0];Ce(e,n),be(n,t)}function Pe(e,t){var n=[0,0,0];ye(e,n),Te(n,t)}function we(e){e[0]=1,e[1]=-1,e[2]=1,e[3]=-1,e[4]=1,e[5]=-1}function xe(e){return!(e[1]-e[0]<0)}function Oe(e,t,n){n[0]=Math.min(e[0],t[0]),n[1]=Math.max(e[0],t[0]),n[2]=Math.min(e[1],t[1]),n[3]=Math.max(e[1],t[1]),n[4]=Math.min(e[2],t[2]),n[5]=Math.max(e[2],t[2])}function Me(e,t,n){return en?n:e}function Ae(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return r[0]=Me(e[0],t[0],n[0]),r[1]=Me(e[1],t[1],n[1]),r[2]=Me(e[2],t[2],n[2]),r}var Ie=S("GetScalarTypeFittingRange"),Re=S("GetAdjustedScalarRange");var Ee=function(e){return!Number.isFinite(e)},De=Number.isFinite,Ve=Number.isNaN,Le=Ve;function Ne(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Be(e){var t=Math.floor(255*e);return t>15?t.toString(16):"0".concat(t.toString(16))}function ke(e){return Math.round(255*e)}var Fe={Pi:function(){return Math.PI},radiansFromDegrees:x,degreesFromRadians:O,round:M,floor:A,ceil:I,ceilLog2:V,min:R,max:E,arrayMin:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=1/0,a=t,o=e.length;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=-1/0,a=t,o=e.length;a=0;--a)if(n[a]0&&void 0!==arguments[0]?arguments[0]:0;return e+((arguments.length>1&&void 0!==arguments[1]?arguments[1]:1)-e)*Math.random()},gaussian:k,add:F,subtract:G,multiplyScalar:U,multiplyScalar2D:j,multiplyAccumulate:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r},multiplyAccumulate2D:function(e,t,n,r){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r},dot:W,outer:function(e,t,n){for(var r=0;r<3;r++)for(var a=0;a<3;a++)n[r][a]=e[r]*t[a]},cross:z,norm:H,normalize:K,perpendiculars:function(e,t,n,r){var a,o,i,s=e[0]*e[0],l=e[1]*e[1],c=e[2]*e[2],u=Math.sqrt(s+l+c);s>l&&s>c?(a=0,o=1,i=2):l>c?(a=1,o=2,i=0):(a=2,o=0,i=1);var d=e[a]/u,f=e[o]/u,p=e[i]/u,g=Math.sqrt(d*d+p*p);if(0!==r){var m=Math.sin(r),v=Math.cos(r);t&&(t[a]=(p*v-d*f*m)/g,t[o]=m*g,t[i]=(-d*v-f*p*m)/g),n&&(n[a]=(-p*m-d*f*v)/g,n[o]=v*g,n[i]=(d*m-f*p*v)/g)}else t&&(t[a]=p/g,t[o]=0,t[i]=-d/g),n&&(n[a]=-d*f/g,n[o]=g,n[i]=-f*p/g)},projectVector:function(e,t,n){var r=W(t,t);if(0===r)return n[0]=0,n[1]=0,n[2]=0,!1;for(var a=W(e,t)/r,o=0;o<3;o++)n[o]=t[o];return U(n,a),!0},projectVector2D:function(e,t,n){var r=X(t,t);if(0===r)return n[0]=0,n[1]=0,!1;for(var a=X(e,t)/r,o=0;o<2;o++)n[o]=t[o];return j(n,a),!0},distance2BetweenPoints:q,angleBetweenVectors:Y,gaussianAmplitude:function(e,t,n){var r=Math.abs(e-n);return 1/Math.sqrt(2*Math.PI*t)*Math.exp(-Math.pow(r,2)/(2*t))},gaussianWeight:function(e,t,n){var r=Math.abs(e-n);return Math.exp(-Math.pow(r,2)/(2*t))},dot2D:X,outer2D:function(e,t,n){for(var r=0;r<2;r++)for(var a=0;a<2;a++)n[r][a]=e[r]*t[a]},norm2D:Z,normalize2D:function(e){var t=Z(e);return 0!==t&&(e[0]/=t,e[1]/=t),t},determinant2x2:Q,LUFactor3x3:function(e,t){for(var n,r,a,o=[0,0,0],i=0;i<3;i++)a=Math.abs(e[i][0]),(r=Math.abs(e[i][1]))>a&&(a=r),(r=Math.abs(e[i][2]))>a&&(a=r),o[i]=1/a;a=o[0]*Math.abs(e[0][0]),n=0,(r=o[1]*Math.abs(e[1][0]))>=a&&(a=r,n=1),(r=o[2]*Math.abs(e[2][0]))>=a&&(n=2),0!==n&&(P(e[n],e[0]),o[n]=o[0]),t[0]=n,e[1][0]/=e[0][0],e[2][0]/=e[0][0],e[1][1]-=e[1][0]*e[0][1],e[2][1]-=e[2][0]*e[0][1],a=o[1]*Math.abs(e[1][1]),n=1,(r=o[2]*Math.abs(e[2][1]))>=a&&(n=2,P(e[2],e[1]),o[2]=o[1]),t[1]=n,e[2][1]/=e[1][1],e[1][2]-=e[1][0]*e[0][2],e[2][2]-=e[2][0]*e[0][2]+e[2][1]*e[1][2],t[2]=2},LUSolve3x3:function(e,t,n){var r=n[t[0]];n[t[0]]=n[0],n[0]=r,r=n[t[1]],n[t[1]]=n[1],n[1]=r-e[1][0]*n[0],r=n[t[2]],n[t[2]]=n[2],n[2]=r-e[2][0]*n[0]-e[2][1]*n[1],n[2]/=e[2][2],n[1]=(n[1]-e[1][2]*n[2])/e[1][1],n[0]=(n[0]-e[0][1]*n[1]-e[0][2]*n[2])/e[0][0]},linearSolve3x3:function(e,t,n){var r=e[0][0],a=e[0][1],o=e[0][2],i=e[1][0],s=e[1][1],l=e[1][2],c=e[2][0],u=e[2][1],d=e[2][2],f=+Q(s,u,l,d),p=-Q(i,c,l,d),g=+Q(i,c,s,u),m=-Q(a,u,o,d),v=+Q(r,c,o,d),h=-Q(r,c,a,u),y=+Q(a,s,o,l),b=-Q(r,i,o,l),T=+Q(r,i,a,s),C=r*f+a*p+o*g,S=f*t[0]+m*t[1]+y*t[2],P=p*t[0]+v*t[1]+b*t[2],w=g*t[0]+h*t[1]+T*t[2];n[0]=S/C,n[1]=P/C,n[2]=w/C},multiply3x3_vect3:function(e,t,n){var r=e[0][0]*t[0]+e[0][1]*t[1]+e[0][2]*t[2],a=e[1][0]*t[0]+e[1][1]*t[1]+e[1][2]*t[2],o=e[2][0]*t[0]+e[2][1]*t[1]+e[2][2]*t[2];n[0]=r,n[1]=a,n[2]=o},multiply3x3_mat3:$,multiplyMatrix:function(e,t,n,r,a,o,i){r!==a&&h("Number of columns of A must match number of rows of B.");for(var s=0;sE&&(r=Math.abs(e[a][o]));for(var i=0;i6&&void 0!==arguments[6])||arguments[6];if(eC&&(f=0,d[c]=0);if(f&&1===a)return y("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),me(e,t,n,o);if(f)g=1;else for(c=0;c1&&void 0!==arguments[1]?arguments[1]:[0,.5,1];switch(e.length){case 3:return t[0]=17*parseInt(e[0],16)/255,t[1]=17*parseInt(e[1],16)/255,t[2]=17*parseInt(e[2],16)/255,t;case 4:return t[0]=17*parseInt(e[1],16)/255,t[1]=17*parseInt(e[2],16)/255,t[2]=17*parseInt(e[3],16)/255,t;case 6:return t[0]=parseInt(e.substr(0,2),16)/255,t[1]=parseInt(e.substr(2,2),16)/255,t[2]=parseInt(e.substr(4,2),16)/255,t;case 7:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t;case 9:return t[0]=parseInt(e.substr(1,2),16)/255,t[1]=parseInt(e.substr(3,2),16)/255,t[2]=parseInt(e.substr(5,2),16)/255,t[3]=parseInt(e.substr(7,2),16)/255,t;default:return t}},rgb2hsv:ve,hsv2rgb:he,lab2xyz:ye,xyz2lab:be,xyz2rgb:Te,rgb2xyz:Ce,rgb2lab:Se,lab2rgb:Pe,uninitializeBounds:we,areBoundsInitialized:xe,computeBoundsFromPoints:Oe,clampValue:Me,clampVector:Ae,clampAndNormalizeValue:function(e,t){var n=0;return t[0]!==t[1]&&(n=((n=et[1]?t[1]:e)-t[0])/(t[1]-t[0])),n},getScalarTypeFittingRange:Ie,getAdjustedScalarRange:Re,extentIsWithinOtherExtent:function(e,t){if(!e||!t)return 0;for(var n=0;n<6;n+=2)if(e[n]t[n+1]||e[n+1]t[n+1])return 0;return 1},boundsIsWithinOtherBounds:function(e,t,n){if(!e||!t)return 0;for(var r=0;r<6;r+=2)if(e[r]+n[r/2]t[r+1]||e[r+1]+n[r/2]t[r+1])return 0;return 1},pointIsWithinBounds:function(e,t,n){if(!e||!t||!n)return 0;for(var r=0;r<3;r++)if(e[r]+n[r]t[2*r+1])return 0;return 1},solve3PointCircle:function(e,t,n,r){for(var a=w(3),o=w(3),i=w(3),s=w(3),l=w(3),c=w(3),u=0;u<3;++u)a[u]=e[u]-t[u],o[u]=t[u]-n[u],i[u]=n[u]-e[u],s[u]=-a[u],l[u]=-o[u],c[u]=-i[u];var d=H(s),f=H(l),p=H(i),g=w(3);z(a,o,g);for(var m=H(g),v=d*f*p/(2*m),h=2*m*m,y=f*f*W(a,c)/h,b=p*p*W(s,o)/h,T=d*d*W(i,l)/h,C=0;C<3;++C)r[C]=y*e[C]+b*t[C]+T*n[C];return v},inf:1/0,negInf:-1/0,isInf:Ee,isNan:Ve,isNaN:Ve,isFinite:De,createUninitializedBounds:Ne,getMajorAxisIndex:function(e){for(var t=-1,n=-1,r=0;rt&&(n=r,t=a)}return n},floatToHex2:Be,floatRGB2HexCode:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#";return"".concat(t).concat(e.map(Be).join(""))},float2CssRGBA:function(e){return 3===e.length?"rgb(".concat(e.map(ke).join(", "),")"):"rgba(".concat(ke(e[0]||0),", ").concat(ke(e[1]||0),", ").concat(ke(e[2]||0),", ").concat(e[3]||0,")")}};function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _e(e){for(var t=1;ta&&(e=a),t1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=We(),a=e.length,o=0;if(t<0&&n>1){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=e||[];n.length<=t;)n.push(null);return n}function Ke(e){return Object.prototype.toString.call(e).slice(8,-1)}var Xe={computeRange:ze,createRangeHelper:We,getDataType:Ke,getMaxNorm:function(e){for(var t=e.getNumberOfComponents(),n=0,r=0;rn&&(n=a)}return n}};var qe={name:"",numberOfComponents:1,size:0,dataType:d.DefaultDataType,rangeTuple:[0,0]};function Ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,qe,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");t.values?Array.isArray(t.values)&&(t.values=f.f(t.dataType,t.values)):t.values=f.e(t.dataType,t.size),t.values&&(t.size=t.values.length,t.dataType=Ke(t.values)),f.g(e,t),f.h(e,t,["name","numberOfComponents"]),function(e,t){function n(){t.ranges=null,e.modified()}t.classHierarchy.push("vtkDataArray"),e.getElementComponentSize=function(){return t.values.BYTES_PER_ELEMENT},e.getComponent=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=function(e,r,a){a!==t.values[e*t.numberOfComponents+r]&&(t.values[e*t.numberOfComponents+r]=a,n())},e.getData=function(){return t.values},e.getRange=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=e<0?t.numberOfComponents:e,r=null;return t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents)),(r=t.ranges[n])?(t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple):(r=ze(t.values,e,t.numberOfComponents),t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple)},e.setRange=function(e,n){t.ranges||(t.ranges=He(t.ranges,t.numberOfComponents));var r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=function(e,n){for(var r=e*t.numberOfComponents,a=0;a1&&void 0!==arguments[1]?arguments[1]:je,r=t.numberOfComponents||1;n.length!==r&&(n.length=r);var a=e*r;if(1===r)n[0]=t.values[a];else if(2===r)n[0]=t.values[a],n[1]=t.values[a+1];else if(3===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2];else if(4===r)n[0]=t.values[a],n[1]=t.values[a+1],n[2]=t.values[a+2],n[3]=t.values[a+3];else for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=function(){return t.numberOfComponents},e.getNumberOfValues=function(){return t.values.length},e.getNumberOfTuples=function(){return t.values.length/t.numberOfComponents},e.getDataType=function(){return t.dataType},e.newClone=function(){return Ze({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents})},e.getName=function(){return t.name||(e.modified(),t.name="vtkDataArray".concat(e.getMTime())),t.name},e.setData=function(e,r){t.values=e,t.size=e.length,t.dataType=Ke(e),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),n()},e.getState=function(){var n=_e(_e({},t),{},{vtkClass:e.getClassName()});n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(function(e){n[e]||delete n[e]});var r={};return Object.keys(n).sort().forEach(function(e){r[e]=n[e]}),r.mtime&&delete r.mtime,r}}(e,t)}var Ze=f.d(Ye,"vtkDataArray"),Qe=_e(_e({newInstance:Ze,extend:Ye},Xe),d);function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var et=1e-6,tt="coincide",nt="disjoint";function rt(e,t,n){var r=n[0]*(e[0]-t[0])+n[1]*(e[1]-t[1])+n[2]*(e[2]-t[2]);return Math.abs(r)}function at(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a);r[0]=e[0]-o*n[0],r[1]=e[1]-o*n[1],r[2]=e[2]-o*n[2]}function ot(e,t,n){var r=W(e,t),a=W(t,t);return 0===a&&(a=1),n[0]=e[0]-r*t[0]/a,n[1]=e[1]-r*t[1]/a,n[2]=e[2]-r*t[2]/a,n}function it(e,t,n,r){var a=[];G(e,t,a);var o=W(n,a),i=W(n,n);0!==i?(r[0]=e[0]-o*n[0]/i,r[1]=e[1]-o*n[1]/i,r[2]=e[2]-o*n[2]/i):(r[0]=e[0],r[1]=e[1],r[2]=e[2])}function st(e,t,n,r){var a={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],i=[];G(t,e,o),G(n,e,i);var s=W(r,i),l=W(r,o);return(l<0?-l:l)<=(s<0?-s*et:s*et)?a:(a.t=s/l,a.x[0]=e[0]+a.t*o[0],a.x[1]=e[1]+a.t*o[1],a.x[2]=e[2]+a.t*o[2],a.intersection=!0,a.betweenPoints=a.t>=0&&a.t<=1,a)}function lt(e,t,n,r){var a={intersection:!1,l0:[],l1:[],error:null},o=[];z(t,r,o);var i,s=o.map(function(e){return Math.abs(e)});if(s[0]+s[1]+s[2]s[1]&&s[0]>s[2]?"x":s[1]>s[2]?"y":"z";var c=[],u=-W(t,e),d=-W(r,n);switch(i){case"x":c[0]=0,c[1]=(d*t[2]-u*r[2])/o[0],c[2]=(u*r[1]-d*t[1])/o[0];break;case"y":c[0]=(u*r[2]-d*t[2])/o[1],c[1]=0,c[2]=(d*t[0]-u*r[0])/o[1];break;case"z":c[0]=(d*t[1]-u*r[1])/o[2],c[1]=(u*r[0]-d*t[0])/o[2],c[2]=0}return a.l0=c,F(c,o,a.l1),a.intersection=!0,a}var ct={evaluate:function(e,t,n){return e[0]*(n[0]-t[0])+e[1]*(n[1]-t[1])+e[2]*(n[2]-t[2])},distanceToPlane:rt,projectPoint:at,projectVector:ot,generalizedProjectPoint:it,intersectWithLine:st,intersectWithPlane:lt,DISJOINT:nt,COINCIDE:tt};var ut={normal:[0,0,1],origin:[0,0,0]};function dt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ut,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlane"),e.distanceToPlane=function(e){return rt(e,t.origin,t.normal)},e.projectPoint=function(e,n){at(e,t.origin,t.normal,n)},e.projectVector=function(e,n){return ot(e,t.normal,n)},e.push=function(e){if(0!==e)for(var n=0;n<3;n++)t.origin[n]+=e*t.normal[n]},e.generalizedProjectPoint=function(e,n){it(e,t.origin,t.normal,n)},e.evaluateFunction=function(e,n,r){return Array.isArray(e)?t.normal[0]*(e[0]-t.origin[0])+t.normal[1]*(e[1]-t.origin[1])+t.normal[2]*(e[2]-t.origin[2]):t.normal[0]*(e-t.origin[0])+t.normal[1]*(n-t.origin[1])+t.normal[2]*(r-t.origin[2])},e.evaluateGradient=function(e){return[t.normal[0],t.normal[1],t.normal[2]]},e.intersectWithLine=function(e,n){return st(e,n,t.origin,t.normal)},e.intersectWithPlane=function(e,n){return lt(e,n,t.origin,t.normal)}}(e,t)}var ft=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n(arguments.length<=1?void 0:arguments[1])?r:arguments.length<=1?void 0:arguments[1],e[2]=a<(arguments.length<=2?void 0:arguments[2])?a:arguments.length<=2?void 0:arguments[2],e[3]=o>(arguments.length<=2?void 0:arguments[2])?o:arguments.length<=2?void 0:arguments[2],e[4]=i<(arguments.length<=3?void 0:arguments[3])?i:arguments.length<=3?void 0:arguments[3],e[5]=s>(arguments.length<=3?void 0:arguments[3])?s:arguments.length<=3?void 0:arguments[3]}function Ot(e,t,n,r,a,o,i){var s=ht(e,6),l=s[0],c=s[1],u=s[2],d=s[3],f=s[4],p=s[5];void 0===i?(e[0]=Math.min(t[0],l),e[1]=Math.max(t[1],c),e[2]=Math.min(t[2],u),e[3]=Math.max(t[3],d),e[4]=Math.min(t[4],f),e[5]=Math.max(t[5],p)):(e[0]=Math.min(t,l),e[1]=Math.max(n,c),e[2]=Math.min(r,u),e[3]=Math.max(a,d),e[4]=Math.min(o,f),e[5]=Math.max(i,p))}function Mt(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t,e[1]=t>i?t:i,e[2]=n,e[3]=n>l?n:l,e[4]=r,e[5]=r>u?r:u,o!==t||s!==n||c!==r}function At(e,t,n,r){var a=ht(e,6),o=a[0],i=a[1],s=a[2],l=a[3],c=a[4],u=a[5];return e[0]=t=0?(e[0]*=t,e[1]*=t):(e[0]=t*e[1],e[1]=t*e[0]),n>=0?(e[2]*=n,e[3]*=n):(e[2]=n*e[3],e[3]=n*e[2]),r>=0?(e[4]*=r,e[5]*=r):(e[4]=r*e[5],e[5]=r*e[4]),!0)}function Et(e){return[.5*(e[0]+e[1]),.5*(e[2]+e[3]),.5*(e[4]+e[5])]}function Dt(e,t){return e[2*t+1]-e[2*t]}function Vt(e){return[Dt(e,0),Dt(e,1),Dt(e,2)]}function Lt(e){return e.slice(0,2)}function Nt(e){return e.slice(2,4)}function Bt(e){return e.slice(4,6)}function kt(e){var t=Vt(e);return t[0]>t[1]?t[0]>t[2]?t[0]:t[2]:t[1]>t[2]?t[1]:t[2]}function Ft(e){if(St(e)){var t=Vt(e);return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])}return null}function Gt(e){return[e[0],e[2],e[4]]}function _t(e){return[e[1],e[3],e[5]]}function Ut(e,t){return e<=0&&t>=0||e>=0&&t<=0}function jt(e,t){for(var n=0,r=0;r<2;r++)for(var a=2;a<4;a++)for(var o=4;o<6;o++)t[n]=[e[r],e[a],e[o]],n++}function Wt(e,t,n){t[0]=e[0],t[1]=e[2],t[2]=e[4],n[0]=e[1],n[1]=e[3],n[2]=e[5]}function zt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Et(e);return t[0]=e[1]-n[0],t[1]=e[3]-n[1],t[2]=e[5]-n[2],t}function Ht(e,t,n,r){for(var a=[].concat(Tt),o=e.getData(),i=0;ie[2*u+1]?(i[u]=0,c[u]=e[2*u+1],o=!1):i[u]=2;if(o)return r[0]=t[0],r[1]=t[1],r[2]=t[2],a[0]=0,1;for(var d=0;d<3;d++)2!==i[d]&&0!==n[d]?l[d]=(c[d]-t[d])/n[d]:l[d]=-1;for(var f=0;f<3;f++)l[s]1||l[s]<0)return 0;a[0]=l[s];for(var p=0;p<3;p++)if(s!==p){if(r[p]=t[p]+l[s]*n[p],r[p]e[2*p+1])return 0}else r[p]=c[p];return 1}function Xt(e,t,n){for(var r=[],a=0,o=1,i=1,s=4;s<=5;++s){r[2]=e[s];for(var l=2;l<=3;++l){r[1]=e[l];for(var c=0;c<=1;++c)if(r[0]=e[c],a=ft.evaluate(n,t,r),i&&(o=a>=0?1:-1,i=0),0===a||o>0&&a<0||o<0&&a>0)return 1}}return 0}function qt(e,t){if(!St(e)||!St(t))return!1;for(var n,r=[0,0,0,0,0,0],a=0;a<3;a++)if(n=!1,t[2*a]>=e[2*a]&&t[2*a]<=e[2*a+1]?(n=!0,r[2*a]=t[2*a]):e[2*a]>=t[2*a]&&e[2*a]<=t[2*a+1]&&(n=!0,r[2*a]=e[2*a]),t[2*a+1]>=e[2*a]&&t[2*a+1]<=e[2*a+1]?(n=!0,r[2*a+1]=t[2*a+1]):e[2*a+1]>=t[2*a]&&e[2*a+1]<=t[2*a+1]&&(n=!0,r[2*a+1]=e[2*a+1]),!n)return!1;return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],!0}function Yt(e,t){if(!St(e)||!St(t))return!1;for(var n=0;n<3;n++)if(!(t[2*n]>=e[2*n]&&t[2*n]<=e[2*n+1]||e[2*n]>=t[2*n]&&e[2*n]<=t[2*n+1]||t[2*n+1]>=e[2*n]&&t[2*n+1]<=e[2*n+1]||e[2*n+1]>=t[2*n]&&e[2*n+1]<=t[2*n+1]))return!1;return!0}function Zt(e,t,n,r){return!(te[1])&&(!(ne[3])&&!(re[5]))}function Qt(e,t,n){for(var 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],o=0,i=0;i<2;i++)for(var s=2;s<4;s++)for(var l=4;l<6;l++){var c=[e[i],e[s],e[l]];a[o++]=ft.evaluate(n,t,c)}for(var u=2;u--&&!(Ut(a[r[u][0]],a[r[u][4]])&&Ut(a[r[u][1]],a[r[u][5]])&&Ut(a[r[u][2]],a[r[u][6]])&&Ut(a[r[u][3]],a[r[u][7]])););if(u<0)return!1;for(var d=Math.sign(n[u]),f=Math.abs((e[2*u+1]-e[2*u])*n[u]),p=d>0?1:0,g=0;g<4;g++)if(0!==f){var m=Math.abs(a[r[u][g]])/f;d>0&&mp&&(p=m)}var v=(1-p)*e[2*u]+p*e[2*u+1];return d>0?e[2*u]=v:e[2*u+1]=v,!0}var $t=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bounds=t,this.bounds||(this.bounds=new Float64Array(6),Pt(this.bounds,Tt))}return function(e,t,n){t&&mt(e.prototype,t),n&&mt(e,n)}(e,[{key:"getBounds",value:function(){return this.bounds}},{key:"equals",value:function(e){return Ct(this.bounds,e)}},{key:"isValid",value:function(){return St(this.bounds)}},{key:"setBounds",value:function(e){return Pt(this.bounds,e)}},{key:"reset",value:function(){return wt(this.bounds)}},{key:"addPoint",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tn,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkFieldData");var n=e.getState;t.arrays&&(t.arrays=t.arrays.map(function(e){return{data:Object(en.a)(e.data)}})),e.initialize=function(){e.initializeFields(),e.copyAllOn(),e.clearFieldFlags()},e.initializeFields=function(){t.arrays=[],t.copyFieldFlags={},e.modified()},e.copyStructure=function(n){e.initializeFields(),t.copyFieldFlags=n.getCopyFieldFlags().map(function(e){return e}),t.arrays=n.arrays().map(function(e){return{array:e}})},e.getNumberOfArrays=function(){return t.arrays.length},e.getNumberOfActiveArrays=function(){return t.arrays.length},e.addArray=function(e){return t.arrays=[].concat(t.arrays,{data:e}),t.arrays.length-1},e.removeAllArrays=function(){t.arrays=[]},e.removeArray=function(e){t.arrays=t.arrays.filter(function(t){return e!==t.data.getName()})},e.removeArrayByIndex=function(e){t.arrays=t.arrays.filter(function(t,n){return n!==e})},e.getArrays=function(){return t.arrays.map(function(e){return e.data})},e.getArray=function(t){return"number"==typeof t?e.getArrayByIndex(t):e.getArrayByName(t)},e.getArrayByName=function(e){return t.arrays.reduce(function(t,n,r){return n.data.getName()===e?n.data:t},null)},e.getArrayWithIndex=function(e){return t.arrays.reduce(function(t,n,r){return n.data&&n.data.getName()===e?{array:n.data,index:r}:t},{array:null,index:-1})},e.getArrayByIndex=function(e){return e>=0&&e=0},e.getArrayName=function(e){var n=t.arrays[e];return n?n.data.getName():""},e.getCopyFieldFlags=function(){return t.copyFieldFlags},e.getFlag=function(e){return t.copyFieldFlags[e]},e.passData=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;n.getArrays().forEach(function(n){var o=e.getFlag(n.getName());if(!1!==o&&(!t.doCopyAllOff||!0===o)&&n){var i=e.getArrayByName(n.getName());if(i){if(n.getNumberOfComponents()===i.getNumberOfComponents())if(r>-1&&r-1?a:r;i.setTuple(s,n.getTuple(r))}else for(var l=0;ln.getNumberOfTuples())e.addArray(n);else{var c=n.getNumberOfComponents(),u=n.getNumberOfValues(),d=a>-1?a:r;ue?t.data.getMTime():e},t.mtime)},e.getNumberOfComponents=function(){return t.arrays.reduce(function(e,t){return e+t.data.getNumberOfComponents()},0)},e.getNumberOfTuples=function(){return t.arrays.length>0?t.arrays[0].getNumberOfTuples():0},e.getState=function(){var e=n();return e.arrays=t.arrays.map(function(e){return{data:e.data.getState()}}),e}}(e,t)}var rn={newInstance:f.a.newInstance(nn,"vtkFieldData"),extend:nn},an={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"};function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln=an.AttributeTypes,cn=an.AttributeCopyOperations,un=f.a.vtkWarningMacro;var dn={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function fn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dn,n),rn.extend(e,t,n),f.a.setGet(e,t,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),t.arrays||(t.arrays={}),function(e,t){var n=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function r(e){var t=n.find(function(t){return ln[t.toUpperCase()]===e||"number"!=typeof e&&t.toLowerCase()===e.toLowerCase()});return void 0===t&&(t=null),t}t.classHierarchy.push("vtkDataSetAttributes"),e.checkNumberOfComponents=function(e){return!0},e.setAttribute=function(n,a){var o=r(a);if(n&&"PEDIGREEIDS"===o.toUpperCase()&&!n.isA("vtkDataArray"))return un("Cannot set attribute ".concat(o,". The attribute must be a vtkDataArray.")),-1;if(n&&!e.checkNumberOfComponents(n,o))return un("Cannot set attribute ".concat(o,". Incorrect number of components.")),-1;var i=t["active".concat(o)];if(i>=0&&i=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bn,n),f.a.obj(e,t),f.a.setGet(e,t,yn),function(e,t){t.classHierarchy.push("vtkDataSet"),yn.forEach(function(e){t[e]?t[e]=Object(en.a)(t[e]):t[e]=pn.newInstance()});var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),yn.forEach(function(n){t[n]=pn.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})}}(e,t)}var Cn=function(e){for(var t=1;te[1]||e[2]>e[3]||e[4]>e[5]?On.EMPTY:3===t?On.XYZ_GRID:2===t?e[0]===e[1]?On.YZ_PLANE:e[2]===e[3]?On.XZ_PLANE:On.XY_PLANE:1===t?e[0]0?(n[0]=2*(s*i+u*r+l*o-c*a)/d,n[1]=2*(l*i+u*a+c*r-s*o)/d,n[2]=2*(c*i+u*o+s*a-l*r)/d):(n[0]=2*(s*i+u*r+l*o-c*a),n[1]=2*(l*i+u*a+c*r-s*o),n[2]=2*(c*i+u*o+s*a-l*r)),Br(e,t,n),e}function Fr(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Gr(e,t){var n=t[0],r=t[1],a=t[2],o=t[4],i=t[5],s=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,a),e[1]=Math.hypot(o,i,s),e[2]=Math.hypot(l,c,u),e}function _r(e,t){var n=new In(3);Gr(n,t);var r=1/n[0],a=1/n[1],o=1/n[2],i=t[0]*r,s=t[1]*a,l=t[2]*o,c=t[4]*r,u=t[5]*a,d=t[6]*o,f=t[8]*r,p=t[9]*a,g=t[10]*o,m=i+u+g,v=0;return m>0?(v=2*Math.sqrt(m+1),e[3]=.25*v,e[0]=(d-p)/v,e[1]=(f-l)/v,e[2]=(s-c)/v):i>u&&i>g?(v=2*Math.sqrt(1+i-u-g),e[3]=(d-p)/v,e[0]=.25*v,e[1]=(s+c)/v,e[2]=(f+l)/v):u>g?(v=2*Math.sqrt(1+u-i-g),e[3]=(f-l)/v,e[0]=(s+c)/v,e[1]=.25*v,e[2]=(d+p)/v):(v=2*Math.sqrt(1+g-i-u),e[3]=(s-c)/v,e[0]=(f+l)/v,e[1]=(d+p)/v,e[2]=.25*v),e}function Ur(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3],l=a+a,c=o+o,u=i+i,d=a*l,f=a*c,p=a*u,g=o*c,m=o*u,v=i*u,h=s*l,y=s*c,b=s*u,T=r[0],C=r[1],S=r[2];return e[0]=(1-(g+v))*T,e[1]=(f+b)*T,e[2]=(p-y)*T,e[3]=0,e[4]=(f-b)*C,e[5]=(1-(d+v))*C,e[6]=(m+h)*C,e[7]=0,e[8]=(p+y)*S,e[9]=(m-h)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=n[0],e[13]=n[1],e[14]=n[2],e[15]=1,e}function jr(e,t,n,r,a){var o=t[0],i=t[1],s=t[2],l=t[3],c=o+o,u=i+i,d=s+s,f=o*c,p=o*u,g=o*d,m=i*u,v=i*d,h=s*d,y=l*c,b=l*u,T=l*d,C=r[0],S=r[1],P=r[2],w=a[0],x=a[1],O=a[2],M=(1-(m+h))*C,A=(p+T)*C,I=(g-b)*C,R=(p-T)*S,E=(1-(f+h))*S,D=(v+y)*S,V=(g+b)*P,L=(v-y)*P,N=(1-(f+m))*P;return e[0]=M,e[1]=A,e[2]=I,e[3]=0,e[4]=R,e[5]=E,e[6]=D,e[7]=0,e[8]=V,e[9]=L,e[10]=N,e[11]=0,e[12]=n[0]+w-(M*w+R*x+V*O),e[13]=n[1]+x-(A*w+E*x+L*O),e[14]=n[2]+O-(I*w+D*x+N*O),e[15]=1,e}function Wr(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n+n,s=r+r,l=a+a,c=n*i,u=r*i,d=r*s,f=a*i,p=a*s,g=a*l,m=o*i,v=o*s,h=o*l;return e[0]=1-d-g,e[1]=u+h,e[2]=f-v,e[3]=0,e[4]=u-h,e[5]=1-c-g,e[6]=p+m,e[7]=0,e[8]=f+v,e[9]=p-m,e[10]=1-c-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zr(e,t,n,r,a,o,i){var s=1/(n-t),l=1/(a-r),c=1/(o-i);return e[0]=2*o*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*o*l,e[6]=0,e[7]=0,e[8]=(n+t)*s,e[9]=(a+r)*l,e[10]=(i+o)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=i*o*2*c,e[15]=0,e}function Hr(e,t,n,r,a){var o,i=1/Math.tan(t/2);return e[0]=i/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=a&&a!==1/0?(o=1/(r-a),e[10]=(a+r)*o,e[14]=2*a*r*o):(e[10]=-1,e[14]=-2*r),e}function Kr(e,t,n,r){var a=Math.tan(t.upDegrees*Math.PI/180),o=Math.tan(t.downDegrees*Math.PI/180),i=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(i+s),c=2/(a+o);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(i-s)*l*.5,e[9]=(a-o)*c*.5,e[10]=r/(n-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*n/(n-r),e[15]=0,e}function Xr(e,t,n,r,a,o,i){var s=1/(t-n),l=1/(r-a),c=1/(o-i);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*s,e[13]=(a+r)*l,e[14]=(i+o)*c,e[15]=1,e}function qr(e,t,n,r){var a,o,i,s,l,c,u,d,f,p,g=t[0],m=t[1],v=t[2],h=r[0],y=r[1],b=r[2],T=n[0],C=n[1],S=n[2];return Math.abs(g-T)0&&(u*=p=1/Math.sqrt(p),d*=p,f*=p);var g=l*f-c*d,m=c*u-s*f,v=s*d-l*u;return(p=g*g+m*m+v*v)>0&&(g*=p=1/Math.sqrt(p),m*=p,v*=p),e[0]=g,e[1]=m,e[2]=v,e[3]=0,e[4]=d*v-f*m,e[5]=f*g-u*v,e[6]=u*m-d*g,e[7]=0,e[8]=u,e[9]=d,e[10]=f,e[11]=0,e[12]=a,e[13]=o,e[14]=i,e[15]=1,e}function Zr(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function Qr(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function $r(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function Jr(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function ea(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}function ta(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e[9]=t[9]+n[9]*r,e[10]=t[10]+n[10]*r,e[11]=t[11]+n[11]*r,e[12]=t[12]+n[12]*r,e[13]=t[13]+n[13]*r,e[14]=t[14]+n[14]*r,e[15]=t[15]+n[15]*r,e}function na(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[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]}function ra(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=e[9],f=e[10],p=e[11],g=e[12],m=e[13],v=e[14],h=e[15],y=t[0],b=t[1],T=t[2],C=t[3],S=t[4],P=t[5],w=t[6],x=t[7],O=t[8],M=t[9],A=t[10],I=t[11],R=t[12],E=t[13],D=t[14],V=t[15];return Math.abs(n-y)<=An*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(r-b)<=An*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(a-T)<=An*Math.max(1,Math.abs(a),Math.abs(T))&&Math.abs(o-C)<=An*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(i-S)<=An*Math.max(1,Math.abs(i),Math.abs(S))&&Math.abs(s-P)<=An*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(l-w)<=An*Math.max(1,Math.abs(l),Math.abs(w))&&Math.abs(c-x)<=An*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(u-O)<=An*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-M)<=An*Math.max(1,Math.abs(d),Math.abs(M))&&Math.abs(f-A)<=An*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(p-I)<=An*Math.max(1,Math.abs(p),Math.abs(I))&&Math.abs(g-R)<=An*Math.max(1,Math.abs(g),Math.abs(R))&&Math.abs(m-E)<=An*Math.max(1,Math.abs(m),Math.abs(E))&&Math.abs(v-D)<=An*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(h-V)<=An*Math.max(1,Math.abs(h),Math.abs(V))}var aa=Pr,oa=Jr;function ia(){var e=new In(3);return In!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function sa(e){var t=new In(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function la(e){var t=e[0],n=e[1],r=e[2];return Math.hypot(t,n,r)}function ca(e,t,n){var r=new In(3);return r[0]=e,r[1]=t,r[2]=n,r}function ua(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function da(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function fa(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function pa(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function ga(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function ma(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function va(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function ha(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function ya(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function ba(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Ta(e,t){return e[0]=Math.round(t[0]),e[1]=Math.round(t[1]),e[2]=Math.round(t[2]),e}function Ca(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Sa(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Pa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return Math.hypot(n,r,a)}function wa(e,t){var n=t[0]-e[0],r=t[1]-e[1],a=t[2]-e[2];return n*n+r*r+a*a}function xa(e){var t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function Oa(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ma(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Aa(e,t){var n=t[0],r=t[1],a=t[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function Ia(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ra(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2];return e[0]=a*l-o*s,e[1]=o*i-r*l,e[2]=r*s-a*i,e}function Ea(e,t,n,r){var a=t[0],o=t[1],i=t[2];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e}function Da(e,t,n,r,a,o){var i=o*o,s=i*(2*o-3)+1,l=i*(o-2)+o,c=i*(o-1),u=i*(3-2*o);return e[0]=t[0]*s+n[0]*l+r[0]*c+a[0]*u,e[1]=t[1]*s+n[1]*l+r[1]*c+a[1]*u,e[2]=t[2]*s+n[2]*l+r[2]*c+a[2]*u,e}function Va(e,t,n,r,a,o){var i=1-o,s=i*i,l=o*o,c=s*i,u=3*o*s,d=3*l*i,f=l*o;return e[0]=t[0]*c+n[0]*u+r[0]*d+a[0]*f,e[1]=t[1]*c+n[1]*u+r[1]*d+a[1]*f,e[2]=t[2]*c+n[2]*u+r[2]*d+a[2]*f,e}function La(e,t){t=t||1;var n=2*Rn()*Math.PI,r=2*Rn()-1,a=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(n)*a,e[1]=Math.sin(n)*a,e[2]=r*t,e}function Na(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,e[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,e[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,e[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,e}function Ba(e,t,n){var r=t[0],a=t[1],o=t[2];return e[0]=r*n[0]+a*n[3]+o*n[6],e[1]=r*n[1]+a*n[4]+o*n[7],e[2]=r*n[2]+a*n[5]+o*n[8],e}function ka(e,t,n){var r=n[0],a=n[1],o=n[2],i=n[3],s=t[0],l=t[1],c=t[2],u=a*c-o*l,d=o*s-r*c,f=r*l-a*s,p=a*f-o*d,g=o*u-r*f,m=r*d-a*u,v=2*i;return u*=v,d*=v,f*=v,p*=2,g*=2,m*=2,e[0]=s+u+p,e[1]=l+d+g,e[2]=c+f+m,e}function Fa(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0],o[1]=a[1]*Math.cos(r)-a[2]*Math.sin(r),o[2]=a[1]*Math.sin(r)+a[2]*Math.cos(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ga(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[2]*Math.sin(r)+a[0]*Math.cos(r),o[1]=a[1],o[2]=a[2]*Math.cos(r)-a[0]*Math.sin(r),e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function _a(e,t,n,r){var a=[],o=[];return a[0]=t[0]-n[0],a[1]=t[1]-n[1],a[2]=t[2]-n[2],o[0]=a[0]*Math.cos(r)-a[1]*Math.sin(r),o[1]=a[0]*Math.sin(r)+a[1]*Math.cos(r),o[2]=a[2],e[0]=o[0]+n[0],e[1]=o[1]+n[1],e[2]=o[2]+n[2],e}function Ua(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2],l=Math.sqrt(n*n+r*r+a*a)*Math.sqrt(o*o+i*i+s*s),c=l&&Ia(e,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function ja(e){return e[0]=0,e[1]=0,e[2]=0,e}function Wa(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function za(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ha(e,t){var n=e[0],r=e[1],a=e[2],o=t[0],i=t[1],s=t[2];return Math.abs(n-o)<=An*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(r-i)<=An*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(a-s)<=An*Math.max(1,Math.abs(a),Math.abs(s))}var Ka=pa,Xa=ga,qa=ma,Ya=Pa,Za=wa,Qa=la,$a=xa,Ja=function(){var e=ia();return function(t,n,r,a,o,i){var s,l;for(n||(n=3),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;s0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=a*i,e[3]=o*i,e}function wo(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function xo(e,t,n,r){var a=n[0]*r[1]-n[1]*r[0],o=n[0]*r[2]-n[2]*r[0],i=n[0]*r[3]-n[3]*r[0],s=n[1]*r[2]-n[2]*r[1],l=n[1]*r[3]-n[3]*r[1],c=n[2]*r[3]-n[3]*r[2],u=t[0],d=t[1],f=t[2],p=t[3];return e[0]=d*c-f*l+p*s,e[1]=-u*c+f*i-p*o,e[2]=u*l-d*i+p*a,e[3]=-u*s+d*o-f*a,e}function Oo(e,t,n,r){var a=t[0],o=t[1],i=t[2],s=t[3];return e[0]=a+r*(n[0]-a),e[1]=o+r*(n[1]-o),e[2]=i+r*(n[2]-i),e[3]=s+r*(n[3]-s),e}function Mo(e,t){var n,r,a,o,i,s;t=t||1;do{i=(n=2*Rn()-1)*n+(r=2*Rn()-1)*r}while(i>=1);do{s=(a=2*Rn()-1)*a+(o=2*Rn()-1)*o}while(s>=1);var l=Math.sqrt((1-i)/s);return e[0]=t*n,e[1]=t*r,e[2]=t*a*l,e[3]=t*o*l,e}function Ao(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3];return e[0]=n[0]*r+n[4]*a+n[8]*o+n[12]*i,e[1]=n[1]*r+n[5]*a+n[9]*o+n[13]*i,e[2]=n[2]*r+n[6]*a+n[10]*o+n[14]*i,e[3]=n[3]*r+n[7]*a+n[11]*o+n[15]*i,e}function Io(e,t,n){var r=t[0],a=t[1],o=t[2],i=n[0],s=n[1],l=n[2],c=n[3],u=c*r+s*o-l*a,d=c*a+l*r-i*o,f=c*o+i*a-s*r,p=-i*r-s*a-l*o;return e[0]=u*c+p*-i+d*-l-f*-s,e[1]=d*c+p*-s+f*-i-u*-l,e[2]=f*c+p*-l+u*-s-d*-i,e[3]=t[3],e}function Ro(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function Eo(e){return"vec4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}function Do(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function Vo(e,t){var n=e[0],r=e[1],a=e[2],o=e[3],i=t[0],s=t[1],l=t[2],c=t[3];return Math.abs(n-i)<=An*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-s)<=An*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(a-l)<=An*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(o-c)<=An*Math.max(1,Math.abs(o),Math.abs(c))}var Lo=io,No=so,Bo=lo,ko=ho,Fo=yo,Go=bo,_o=To,Uo=function(){var e=eo();return function(t,n,r,a,o,i){var s,l;for(n||(n=4),r||(r=0),l=a?Math.min(a*n+r,t.length):t.length,s=r;sAn?(e[0]=t[0]/r,e[1]=t[1]/r,e[2]=t[2]/r):(e[0]=1,e[1]=0,e[2]=0),n}function Ko(e,t){var n=mi(e,t);return Math.acos(2*n*n-1)}function Xo(e,t,n){var r=t[0],a=t[1],o=t[2],i=t[3],s=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+i*s+a*c-o*l,e[1]=a*u+i*l+o*s-r*c,e[2]=o*u+i*c+r*l-a*s,e[3]=i*u-r*s-a*l-o*c,e}function qo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+i*s,e[1]=a*l+o*s,e[2]=o*l-a*s,e[3]=i*l-r*s,e}function Yo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l-o*s,e[1]=a*l+i*s,e[2]=o*l+r*s,e[3]=i*l-a*s,e}function Zo(e,t,n){n*=.5;var r=t[0],a=t[1],o=t[2],i=t[3],s=Math.sin(n),l=Math.cos(n);return e[0]=r*l+a*s,e[1]=a*l-r*s,e[2]=o*l+i*s,e[3]=i*l-o*s,e}function Qo(e,t){var n=t[0],r=t[1],a=t[2];return e[0]=n,e[1]=r,e[2]=a,e[3]=Math.sqrt(Math.abs(1-n*n-r*r-a*a)),e}function $o(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=Math.exp(o),l=i>0?s*Math.sin(i)/i:0;return e[0]=n*l,e[1]=r*l,e[2]=a*l,e[3]=s*Math.cos(i),e}function Jo(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=Math.sqrt(n*n+r*r+a*a),s=i>0?Math.atan2(i,o)/i:0;return e[0]=n*s,e[1]=r*s,e[2]=a*s,e[3]=.5*Math.log(n*n+r*r+a*a+o*o),e}function ei(e,t,n){return Jo(e,t),gi(e,e,n),$o(e,e),e}function ti(e,t,n,r){var a,o,i,s,l,c=t[0],u=t[1],d=t[2],f=t[3],p=n[0],g=n[1],m=n[2],v=n[3];return(o=c*p+u*g+d*m+f*v)<0&&(o=-o,p=-p,g=-g,m=-m,v=-v),1-o>An?(a=Math.acos(o),i=Math.sin(a),s=Math.sin((1-r)*a)/i,l=Math.sin(r*a)/i):(s=1-r,l=r),e[0]=s*c+l*p,e[1]=s*u+l*g,e[2]=s*d+l*m,e[3]=s*f+l*v,e}function ni(e){var t=Rn(),n=Rn(),r=Rn(),a=Math.sqrt(1-t),o=Math.sqrt(t);return e[0]=a*Math.sin(2*Math.PI*n),e[1]=a*Math.cos(2*Math.PI*n),e[2]=o*Math.sin(2*Math.PI*r),e[3]=o*Math.cos(2*Math.PI*r),e}function ri(e,t){var n=t[0],r=t[1],a=t[2],o=t[3],i=n*n+r*r+a*a+o*o,s=i?1/i:0;return e[0]=-n*s,e[1]=-r*s,e[2]=-a*s,e[3]=o*s,e}function ai(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function oi(e,t){var n,r=t[0]+t[4]+t[8];if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{var a=0;t[4]>t[0]&&(a=1),t[8]>t[3*a+a]&&(a=2);var o=(a+1)%3,i=(a+2)%3;n=Math.sqrt(t[3*a+a]-t[3*o+o]-t[3*i+i]+1),e[a]=.5*n,n=.5/n,e[3]=(t[3*o+i]-t[3*i+o])*n,e[o]=(t[3*o+a]+t[3*a+o])*n,e[i]=(t[3*i+a]+t[3*a+i])*n}return e}function ii(e,t,n,r){var a=.5*Math.PI/180;t*=a,n*=a,r*=a;var o=Math.sin(t),i=Math.cos(t),s=Math.sin(n),l=Math.cos(n),c=Math.sin(r),u=Math.cos(r);return e[0]=o*l*u-i*s*c,e[1]=i*s*u+o*l*c,e[2]=i*l*c-o*s*u,e[3]=i*l*u+o*s*c,e}function si(e){return"quat("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+")"}var li=to,ci=no,ui=ro,di=ao,fi=oo,pi=Xo,gi=mo,mi=wo,vi=Oo,hi=bo,yi=hi,bi=To,Ti=bi,Ci=Po,Si=Do,Pi=Vo,wi=function(){var e=ia(),t=ca(1,0,0),n=ca(0,1,0);return function(r,a,o){var i=Ia(a,o);return i<-.999999?(Ra(e,t,a),Qa(e)<1e-6&&Ra(e,n,a),Aa(e,e),zo(r,e,Math.PI),r):i>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Ra(e,a,o),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+i,Ci(r,r))}}(),xi=function(){var e=jo(),t=jo();return function(n,r,a,o,i,s){return ti(e,r,i,s),ti(t,a,o,s),ti(n,e,t,2*s*(1-s)),n}}(),Oi=function(){var e=Nn();return function(t,n,r,a){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=a[0],e[4]=a[1],e[7]=a[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Ci(t,oi(t,e))}}();function Mi(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ai(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ai(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ai(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ri,n),Cn.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=a.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),f.a.get(e,t,["direction","indexToWorld","worldToIndex"]),f.a.setGetArray(e,t,["origin","spacing"],3),f.a.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&(n*=t[r]-1)}return n},e.getNumberOfPoints=function(){var t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=function(n){var r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return Ii("Requesting a point from an empty image."),null;var a=new Float64Array(3);switch(t.dataDescription){case Sn.EMPTY:return null;case Sn.SINGLE_POINT:break;case Sn.X_LINE:a[0]=n;break;case Sn.Y_LINE:a[1]=n;break;case Sn.Z_LINE:a[2]=n;break;case Sn.XY_PLANE:a[0]=n%r[0],a[1]=n/r[0];break;case Sn.YZ_PLANE:a[1]=n%r[1],a[2]=n/r[1];break;case Sn.XZ_PLANE:a[0]=n%r[0],a[2]=n/r[0];break;case Sn.XYZ_GRID:a[0]=n%r[0],a[1]=n/r[0]%r[1],a[2]=n/(r[0]*r[1]);break;default:Ii("Invalid dataDescription")}var o=[0,0,0];return e.indexToWorld(a,o),o},e.getBounds=function(){return e.extentToBounds(t.extent)},e.extentToBounds=function(t){var n=[t[0],t[2],t[4],t[1],t[2],t[4],t[0],t[3],t[4],t[1],t[3],t[4],t[0],t[2],t[5],t[1],t[2],t[5],t[0],t[3],t[5],t[1],t[3],t[5]],r=new Float64Array([n[0],n[1],n[2]]),a=new Float64Array(3);e.indexToWorld(r,a);for(var o=[a[0],a[0],a[1],a[1],a[2],a[2]],s=3;s<24;s+=3)i.set(r,n[s],n[s+1],n[s+2]),e.indexToWorld(r,a),a[0]o[1]&&(o[1]=a[0]),a[1]>o[3]&&(o[3]=a[1]),a[2]>o[5]&&(o[5]=a[2]);return o},e.computeTransforms=function(){o.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],o.scale(t.indexToWorld,t.indexToWorld,t.spacing),o.invert(t.worldToIndex,t.indexToWorld)},e.setDirection=function(){if(t.deleted)return Ii("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return i.transformMat4(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.indexToWorld),i.transformMat4(s,a,t.indexToWorld),Oe(o,s,n),n},e.worldToIndexBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=[0,0,0],a=[0,0,0];Jt.computeCornerPoints(e,r,a);var o=[0,0,0],s=[0,0,0];return i.transformMat4(o,r,t.worldToIndex),i.transformMat4(s,a,t.worldToIndex),Oe(o,s,n),n},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=function(){for(var t=e.getBounds(),n=[],r=0;r<3;r++)n[r]=(t[2*r+1]+t[2*r])/2;return n},e.computeHistogram=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);var a=[0,0,0],o=[0,0,0];Jt.computeCornerPoints(r,a,o),ie(a,a),ie(o,o);var i=e.getDimensions();Ae(a,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],a),Ae(o,[0,0,0],[i[0]-1,i[1]-1,i[2]-1],o);for(var s=i[0],l=i[0]*i[1],c=e.getPointData().getScalars().getData(),u=-1/0,d=1/0,f=0,p=0,g=0,m=a[2];m<=o[2];m++)for(var v=a[1];v<=o[1];v++)for(var h=a[0]+v*s+m*l,y=a[0];y<=o[0];y++){if(!n||n([y,v,m],r)){var b=c[h];b>u&&(u=b),b0?p/g:0,C=f-T*T;return{minimum:d,maximum:u,average:T,variance:C,sigma:Math.sqrt(C)}},e.computeIncrements=function(e){for(var t=[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=0;r<3;++r)t[r]=n,n*=e[2*r+1]-e[2*r]+1;return t},e.computeOffsetIndex=function(t){var n=Mi(t,3),r=n[0],a=n[1],o=n[2],i=e.getExtent(),s=e.getPointData().getScalars().getNumberOfComponents(),l=e.computeIncrements(i,s);return Math.floor((Math.round(r)-i[0])*l[0]+(Math.round(a)-i[2])*l[1]+(Math.round(o)-i[4])*l[2])},e.getOffsetIndexFromWorld=function(t){for(var n=e.getExtent(),r=e.worldToIndex(t),a=0;a<3;++a)if(r[a]n[2*a+1])return Ii("GetScalarPointer: Pixel ".concat(r," is not in memory. Current extent = ").concat(n)),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return Ii("GetScalarPointer: Scalar Component ".concat(n," is not within bounds. Current Scalar numberOfComponents: ").concat(r)),NaN;var a=e.getOffsetIndexFromWorld(t);return Number.isNaN(a)?a:e.getPointData().getScalars().getComponent(a,n)}}(e,t)}var Di={newInstance:f.a.newInstance(Ei,"vtkImageData"),extend:Ei};function Vi(e){return function(){return f.a.vtkErrorMacro("vtkProp::".concat(e," - NOT IMPLEMENTED"))}}var Li={visibility:!0,pickable:!0,dragable:!0,useBounds:!0,allocatedRenderTime:10,estimatedRenderTime:0,savedEstimatedRenderTime:0,renderTimeMultiplier:1,paths:null,textures:[]};function Ni(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Li,n),f.a.obj(e,t),f.a.get(e,t,["estimatedRenderTime","allocatedRenderTime"]),f.a.setGet(e,t,["visibility","pickable","dragable","useBounds","renderTimeMultiplier"]),function(e,t){t.classHierarchy.push("vtkProp"),e.getMTime=function(){for(var e=t.mtime,n=0;ne&&(e=r)}return e},e.getNestedProps=function(){return null},e.getActors=function(){return[]},e.getActors2D=function(){return[]},e.getVolumes=function(){return[]},e.pick=Vi("pick"),e.hasKey=Vi("hasKey"),e.getRedrawMTime=function(){return t.mtime},e.setEstimatedRenderTime=function(e){t.estimatedRenderTime=e,t.savedEstimatedRenderTime=e},e.restoreEstimatedRenderTime=function(){t.estimatedRenderTime=t.savedEstimatedRenderTime},e.addEstimatedRenderTime=function(e){t.estimatedRenderTime+=e},e.setAllocatedRenderTime=function(e){t.allocatedRenderTime=e,t.savedEstimatedRenderTime=t.estimatedRenderTime,t.estimatedRenderTime=0},e.getSupportsSelection=function(){return!1},e.getTextures=function(){return t.textures},e.hasTexture=function(e){return-1!==t.textures.indexOf(e)},e.addTexture=function(n){n&&!e.hasTexture(n)&&(t.textures=t.textures.concat(n),e.modified())},e.removeTexture=function(n){var r=t.textures.filter(function(e){return e!==n});t.textures.length!==r.length&&(t.textures=r,e.modified())},e.removeAllTextures=function(){t.textures=[],e.modified()}}(e,t)}var Bi={newInstance:f.a.newInstance(Ni,"vtkProp"),extend:Ni};var ki={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 Fi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ki,n),Bi.extend(e,t,n),t.matrixMTime={},f.a.obj(t.matrixMTime),f.a.get(e,t,["bounds","isIdentity"]),f.a.getArray(e,t,["orientation"]),f.a.setGetArray(e,t,["origin","position","scale"],3),t.matrix=o.identity(new Float64Array(16)),t.rotation=o.identity(new Float64Array(16)),t.userMatrix=o.identity(new Float64Array(16)),t.transform=null,function(e,t){t.classHierarchy.push("vtkProp3D"),e.addPosition=function(n){t.position=t.position.map(function(e,t){return e+n[t]}),e.modified()},e.getOrientationWXYZ=function(){var e=l.create();o.getRotation(e,t.rotation);var n=new Float64Array(3);return[O(l.getAxisAngle(n,e)),n[0],n[1],n[2]]},e.rotateX=function(n){0!==n&&(o.rotateX(t.rotation,t.rotation,x(n)),e.modified())},e.rotateY=function(n){0!==n&&(o.rotateY(t.rotation,t.rotation,x(n)),e.modified())},e.rotateZ=function(n){0!==n&&(o.rotateZ(t.rotation,t.rotation,x(n)),e.modified())},e.rotateWXYZ=function(n,r,a,i){if(0!==n&&(0!==r||0!==a||0!==i)){var s=x(n),c=l.create();l.setAxisAngle(c,[r,a,i],s);var u=new Float64Array(16);o.fromQuat(u,c),o.multiply(t.rotation,t.rotation,u),e.modified()}},e.setOrientation=function(n,r,a){return(n!==t.orientation[0]||r!==t.orientation[1]||a!==t.orientation[2])&&(t.orientation=[n,r,a],o.identity(t.rotation),e.rotateZ(a),e.rotateX(n),e.rotateY(r),e.modified(),!0)},e.setUserMatrix=function(n){o.copy(t.userMatrix,n),e.modified()},e.getMatrix=function(){return e.computeMatrix(),t.matrix},e.computeMatrix=function(){if(e.getMTime()>t.matrixMTime.getMTime()){o.identity(t.matrix),t.userMatrix&&o.multiply(t.matrix,t.matrix,t.userMatrix),o.translate(t.matrix,t.matrix,t.origin),o.translate(t.matrix,t.matrix,t.position),o.multiply(t.matrix,t.matrix,t.rotation),o.scale(t.matrix,t.matrix,t.scale),o.translate(t.matrix,t.matrix,[-t.origin[0],-t.origin[1],-t.origin[2]]),o.transpose(t.matrix,t.matrix),t.isIdentity=!0;for(var n=0;n<4;++n)for(var r=0;r<4;++r)(n===r?1:0)!==t.matrix[n+4*r]&&(t.isIdentity=!1);t.matrixMTime.modified()}},e.getCenter=function(){return Jt.getCenter(t.bounds)},e.getLength=function(){return Jt.getLength(t.bounds)},e.getXRange=function(){return Jt.getXRange(t.bounds)},e.getYRange=function(){return Jt.getYRange(t.bounds)},e.getZRange=function(){return Jt.getZRange(t.bounds)},e.getUserMatrix=function(){return t.userMatrix},e.onModified(function(){e.computeMatrix()})}(e,t)}var Gi={newInstance:f.a.newInstance(Fi,"vtkProp3D"),extend:Fi},_i={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4},Ui={VectorMode:{MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},ScalarMappingTarget:_i},ji={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},Wi={ColorMode:{DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},GetArray:{BY_ID:0,BY_NAME:1},ScalarMode:ji};function zi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ki=Ui.ScalarMappingTarget,Xi=Ui.VectorMode,qi=Qe.VtkDataTypes,Yi=Wi.ColorMode,Zi=f.a.vtkErrorMacro;function Qi(e){return e}function $i(e){return Math.floor(255*e+.5)}var Ji={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Xi.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ji,n),f.a.obj(e,t),t.mappingRange=[0,255],t.annotationArray=[],t.annotatedValueMap=[],f.a.setGet(e,t,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),f.a.setArray(e,t,["mappingRange"],2),f.a.getArray(e,t,["mappingRange"]),function(e,t){t.classHierarchy.push("vtkScalarsToColors"),e.setVectorModeToMagnitude=function(){return e.setVectorMode(Xi.MAGNITUDE)},e.setVectorModeToComponent=function(){return e.setVectorMode(Xi.COMPONENT)},e.setVectorModeToRGBColors=function(){return e.setVectorMode(Xi.RGBCOLORS)},e.build=function(){},e.isOpaque=function(){return!0},e.setAnnotations=function(n,r){if(!(n&&!r||!n&&r))if(n&&r&&n.length!==r.length)Zi("Values and annotations do not have the same number of tuples so ignoring");else{if(t.annotationArray=[],r&&n)for(var a=r.length,o=0;o=0?t.annotationArray[a].annotation!==r&&(t.annotationArray[a].annotation=r,o=!0):(t.annotationArray.push({value:n,annotation:r}),a=t.annotationArray.length-1,o=!0),o&&(e.updateAnnotatedValueMap(),e.modified()),a},e.getNumberOfAnnotatedValues=function(){return t.annotationArray.length},e.getAnnotatedValue=function(e){return e<0||e>=t.annotationArray.length?null:t.annotationArray[e].value},e.getAnnotation=function(e){return void 0===t.annotationArray[e]?null:t.annotationArray[e].annotation},e.getAnnotatedValueIndex=function(n){return t.annotationArray.length?e.checkForAnnotatedValue(n):-1},e.removeAnnotation=function(n){var r=e.checkForAnnotatedValue(n),a=r>=0;return a&&(t.annotationArray.splice(r,1),e.updateAnnotatedValueMap(),e.modified()),a},e.resetAnnotations=function(){t.annotationArray=[],t.annotatedValueMap=[],e.modified()},e.getAnnotationColor=function(n,r){if(t.indexedLookup){var a=e.getAnnotatedValueIndex(n);e.getIndexedColor(a,r)}else e.getColor(parseFloat(n),r),r[3]=1},e.checkForAnnotatedValue=function(t){return e.getAnnotatedValueIndexInternal(t)},e.getAnnotatedValueIndexInternal=function(e){if(void 0!==t.annotatedValueMap[e]){var n=t.annotationArray.length;return t.annotatedValueMap[e]%n}return-1},e.getIndexedColor=function(e,t){t[0]=0,t[1]=0,t[2]=0,t[3]=0},e.updateAnnotatedValueMap=function(){t.annotatedValueMap=[];for(var e=t.annotationArray.length,n=0;n1?e.mapVectorsThroughTable(t,o,Ki.RGBA,-1,-1):(l<0&&(l=0),l>=a&&(l=a-1),e.mapScalarsThroughTable(t,o,Ki.RGBA,l))}return o},e.mapVectorsToMagnitude=function(e,t,n){for(var r=e.getNumberOfTuples(),a=e.getNumberOfComponents(),o=t.getData(),i=e.getData(),s=0;s=c&&(l=c-1)):(-1===s&&(s=e.getVectorSize()),s<=0?(l=0,s=c):(l<0&&(l=0),l>=c&&(l=c-1),l+s>c&&(s=c-l)),i!==Xi.MAGNITUDE||1!==c&&1!==s||(i=Xi.COMPONENT));var u=0;switch(l>0&&(u=l),i){case Xi.COMPONENT:e.mapScalarsThroughTable(t,n,r,u);break;default:case Xi.MAGNITUDE:var d=Qe.newInstance({numberOfComponents:1,values:new Float32Array(t.getNumberOfTuples())});e.mapVectorsToMagnitude(t,d,s),e.mapScalarsThroughTable(d,n,r,0);break;case Xi.RGBCOLORS:}},e.luminanceToRGBA=function(e,t,n,r){for(var a=r(n),o=t.getData(),i=e.getData(),s=o.length,l=0,c=0;c=1&&n.getDataType()===qi.UNSIGNED_CHAR)return n;var i=Qe.newInstance({numberOfComponents:4,empty:!0,size:4*a,dataType:qi.UNSIGNED_CHAR});if(a<=0)return i;o=(o=o>0?o:0)<1?o:1;var s=Qi;switch(n.getDataType()!==qi.FLOAT&&n.getDataType()!==qi.DOUBLE||(s=$i),r){case 1:e.luminanceToRGBA(i,n,o,s);break;case 2:e.luminanceAlphaToRGBA(i,n,s);break;case 3:e.rGBToRGBA(i,n,o,s);break;case 4:e.rGBAToRGBA(i,n,o,s);break;default:return Zi("Cannot convert colors"),null}return i},e.usingLogScale=function(){return!1},e.getNumberOfAvailableColors=function(){return 16777216},e.setRange=function(t,n){return e.setMappingRange(t,n)},e.getRange=function(t,n){return e.getMappingRange()}}(e,t)}var ts=function(e){for(var t=1;t.001?Math.acos(n/o):0,s=i>.001?Math.atan2(a,r):0;t[0]=o,t[1]=i,t[2]=s}function fs(e,t){if(e[0]>=t-.1)return e[2];var n=e[1]*Math.sqrt(t*t-e[0]*e[0])/(e[0]*Math.sin(e[1]));return e[2]>-.3*Math.PI?e[2]+n:e[2]-n}function ps(e,t,n,r){var a=[],o=[];Se(t,a),Se(n,o);var i=[],s=[];ds(a,i),ds(o,s);var l=e;if(i[1]>.05&&s[1]>.05&&function(e,t){var n=e-t;for(n<0&&(n=-n);n>=2*Math.PI;)n-=2*Math.PI;return n>Math.PI&&(n=2*Math.PI-n),n}(i[2],s[2])>.33*Math.PI){var c=Math.max(i[0],s[0]);c=Math.max(88,c),e<.5?(s[0]=c,s[1]=0,s[2]=0,l*=2):(i[0]=c,i[1]=0,i[2]=0,l=2*l-1)}i[1]<.05&&s[1]>.05?i[2]=fs(s,i[0]):s[1]<.05&&i[1]>.05&&(s[2]=fs(i,s[0]));var u=[];u[0]=(1-l)*i[0]+l*s[0],u[1]=(1-l)*i[1]+l*s[1],u[2]=(1-l)*i[2]+l*s[2];var d=[];!function(e,t){var n=e[0],r=e[1],a=e[2];t[0]=n*Math.cos(r),t[1]=n*Math.sin(r)*Math.cos(a),t[2]=n*Math.sin(r)*Math.sin(a)}(u,d),Pe(d,r)}var gs={clamping:!0,colorSpace:os.RGB,hSVWrap:!0,scale:is.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 ms(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gs,n),ts.extend(e,t,n),t.table=[],t.nodes=[],t.nanColor=[.5,0,0,1],t.belowRangeColor=[0,0,0,1],t.aboveRangeColor=[1,1,1,1],t.buildTime={},f.a.obj(t.buildTime),f.a.get(e,t,["buildTime","mappingRange"]),f.a.setGet(e,t,["useAboveRangeColor","useBelowRangeColor","colorSpace","discretize","numberOfValues"]),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkColorTransferFunction"),e.getSize=function(){return t.nodes.length},e.addRGBPoint=function(t,n,r,a){return e.addRGBPointLong(t,n,r,a,.5,0)},e.addRGBPointLong=function(n,r,a,o){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(i<0||i>1)return cs("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return cs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var l={x:n,r:r,g:a,b:o,midpoint:i,sharpness:s};t.nodes.push(l),e.sortAndUpdateRange();for(var c=0;c4&&void 0!==arguments[4]?arguments[4]:.5,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=[];return he([n,r,a],s),e.addRGBPoint(t,s[0],s[1],s[2],o,i)},e.setNodes=function(n){t.nodes!==n&&(t.nodes=n,e.sortAndUpdateRange())},e.sortAndUpdateRange=function(){t.nodes.sort(function(e,t){return e.x-t.x}),e.updateRange()||e.modified()},e.updateRange=function(){var n=[2];n[0]=t.mappingRange[0],n[1]=t.mappingRange[1];var r=t.nodes.length;return r?(t.mappingRange[0]=t.nodes[0].x,t.mappingRange[1]=t.nodes[r-1].x):(t.mappingRange[0]=0,t.mappingRange[1]=0),(n[0]!==t.mappingRange[0]||n[1]!==t.mappingRange[1])&&(e.modified(),!0)},e.removePoint=function(n){for(var r=0;r=t.nodes.length)return-1;var o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.movePoint=function(n,r){if(n!==r){e.removePoint(r);for(var a=0;a=n&&t.nodes[u].x<=i?t.nodes.splice(u,1):u++;e.addRGBPointLong(n,r,a,o,.5,0),e.addRGBPointLong(i,s,l,c,.5,0),e.modified()},e.addHSVSegment=function(t,n,r,a,o,i,s,l){var c=[i,s,l],u=[],d=[];he([n,r,a],u),he(c,d),e.addRGBSegment(t,u[0],u[1],u[2],o,d[0],d[1],d[2])},e.mapValue=function(t){var n=[];return e.getColor(t,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},e.getColor=function(n,r){if(t.indexedLookup){var a=e.getSize(),o=e.getAnnotatedValueIndexInternal(n);if(o<0||0===a)e.getNanColor(r);else{var i=[];e.getNodeValue(o%a,i),r[0]=i.r,r[1]=i.g,r[2]=i.b}}else e.getTable(n,n,1,r)},e.getRedValue=function(t){var n=[];return e.getColor(t,n),n[0]},e.getGreenValue=function(t){var n=[];return e.getColor(t,n),n[1]},e.getBlueValue=function(t){var n=[];return e.getColor(t,n),n[2]},e.getTable=function(n,r,a,o){if(Le(n)||Le(r))for(var i=0;i0);var C=0,S=0,P=0;T&&(C=Math.log10(n),S=Math.log10(r));for(var w=0;w1?T?(P=C+w/(a-1)*(S-C),f=Math.pow(10,P)):f=n+w/(a-1)*(r-n):T?(P=.5*(C+S),f=Math.pow(10,P)):f=.5*(n+r),t.discretize){var O=t.mappingRange;if(f>=O[0]&&f<=O[1]){var M=t.numberOfValues,I=O[1]-O[0];if(M<=1)f=O[0]+I/2;else{var R=(f-O[0])/I,E=A(M*R);f=O[0]+E/(M-1)*I}}}for(;st.nodes[s].x;)++s.99999&&(h=.99999));if(f>t.mappingRange[1])o[x]=0,o[x+1]=0,o[x+2]=0,t.clamping&&(e.getUseAboveRangeColor()?(o[x]=t.aboveRangeColor[0],o[x+1]=t.aboveRangeColor[1],o[x+2]=t.aboveRangeColor[2]):(o[x]=c,o[x+1]=u,o[x+2]=d));else if(f0&&(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b));else if(0===s&&(Math.abs(f-n)<1e-6||t.discretize))l>0?(o[x]=t.nodes[0].r,o[x+1]=t.nodes[0].g,o[x+2]=t.nodes[0].b):(o[x]=0,o[x+1]=0,o[x+2]=0);else{var D=0;if(D=(D=T?(P-p)/(g-p):(f-p)/(g-p)).99){if(D<.5){o[x]=m[0],o[x+1]=m[1],o[x+2]=m[2];continue}o[x]=v[0],o[x+1]=v[1],o[x+2]=v[2];continue}if(y<.01){if(t.colorSpace===os.RGB)o[x]=(1-D)*m[0]+D*v[0],o[x+1]=(1-D)*m[1]+D*v[1],o[x+2]=(1-D)*m[2]+D*v[2];else if(t.colorSpace===os.HSV){var V=[],L=[];ve(m,V),ve(v,L),t.hSVWrap&&(V[0]-L[0]>.5||L[0]-V[0]>.5)&&(V[0]>L[0]?V[0]-=1:L[0]-=1);var N=[];N[0]=(1-D)*V[0]+D*L[0],N[0]<0&&(N[0]+=1),N[1]=(1-D)*V[1]+D*L[1],N[2]=(1-D)*V[2]+D*L[2],he(N,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var B=[],k=[];Se(m,B),Se(v,k);var F=[];F[0]=(1-D)*B[0]+D*k[0],F[1]=(1-D)*B[1]+D*k[1],F[2]=(1-D)*B[2]+D*k[2],Pe(F,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.",t.colorSpace);continue}D<.5?D=.5*Math.pow(2*D,1+10*y):D>.5&&(D=1-.5*Math.pow(2*(1-D),1+10*y));var G=D*D,_=G*D,U=2*_-3*G+1,j=-2*_+3*G,W=_-2*G+D,z=_-G,H=void 0;if(t.colorSpace===os.RGB)for(var K=0;K<3;K++)H=(1-y)*(v[K]-m[K]),o[x+K]=U*m[K]+j*v[K]+W*H+z*H;else if(t.colorSpace===os.HSV){var X=[],q=[];ve(m,X),ve(v,q),t.hSVWrap&&(X[0]-q[0]>.5||q[0]-X[0]>.5)&&(X[0]>q[0]?X[0]-=1:q[0]-=1);for(var Y=[],Z=0;Z<3;Z++)H=(1-y)*(q[Z]-X[Z]),Y[Z]=U*X[Z]+j*q[Z]+W*H+z*H,0===Z&&Y[Z]<0&&(Y[Z]+=1);he(Y,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else if(t.colorSpace===os.LAB){var Q=[],$=[];Se(m,Q),Se(v,$);for(var J=[],ee=0;ee<3;ee++)H=(1-y)*($[ee]-Q[ee]),J[ee]=U*Q[ee]+j*$[ee]+W*H+z*H;Pe(J,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]}else t.colorSpace===os.DIVERGING?(ps(D,m,v,b),o[x]=b[0],o[x+1]=b[1],o[x+2]=b[2]):cs("ColorSpace set to invalid value.");for(var te=0;te<3;te++)o[x+te]=o[x+te]<0?0:o[x+te],o[x+te]=o[x+te]>1?1:o[x+te]}}}},e.getUint8Table=function(n,r,a){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(e.getMTime()<=t.buildTime&&t.tableSize===a&&t.tableWithAlpha!==o)return t.table;if(0===t.nodes.length)return cs("Attempting to lookup a value with no points in the function"),t.table;var i=o?4:3;t.tableSize===a&&t.tableWithAlpha===o||(t.table=new Uint8Array(a*i),t.tableSize=a,t.tableWithAlpha=o);var s=[];e.getTable(n,r,a,s);for(var l=0;l1&&(i=(r-n)/(a-1));for(var s=0;s=t.nodes.length?(cs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].r,n[2]=t.nodes[e].g,n[3]=t.nodes[e].b,n[4]=t.nodes[e].midpoint,n[5]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){if(n<0||n>=t.nodes.length)return cs("Index out of range!"),-1;var a=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].r=r[1],t.nodes[n].g=r[2],t.nodes[n].b=r[3],t.nodes[n].midpoint=r[4],t.nodes[n].sharpness=r[5],a!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.getNumberOfAvailableColors=function(){return t.indexedLookup&&e.getSize()?e.getSize():t.tableSize?t.tableSize:16777216},e.getIndexedColor=function(t,n){var r=e.getSize();if(r>0&&t>=0){var a=[];e.getNodeValue(t%r,a);for(var o=0;o<3;++o)n[o]=a[o+1];n[3]=1}else e.getNanColor(n),n[3]=1},e.fillFromDataPointer=function(t,n){if(!(t<=0)&&n){e.removeAllPoints();for(var r=0;rn[1]?(e.getColor(n[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])):(e.getColor(r[1],a),e.addRGBPoint(n[1],a[0],a[1],a[2])),e.sortAndUpdateRange();for(var o=0;o=n[0]&&t.nodes[o].x<=n[1]?t.nodes.splice(o,1):++o;return 1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){if(t.nodes.length<2)return-1;for(var e=Number.MAX_VALUE,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ys,n),f.a.obj(e,t),t.nodes=[],f.a.setGet(e,t,["allowDuplicateScalars","clamping"]),f.a.setArray(e,t,["range"],2),f.a.getArray(e,t,["range"]),function(e,t){t.classHierarchy.push("vtkPiecewiseFunction"),e.getSize=function(){return t.nodes.length},e.getType=function(){var e,n=0,r=0;t.nodes.length>0&&(n=t.nodes[0].y);for(var a=1;an)switch(r){case 0:case 1:r=1;break;default:case 2:r=3}else switch(r){case 0:case 2:r=2;break;default:case 1:r=3}if(n=e,3===r)break}switch(r){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";default:case 3:return"Varied"}},e.getDataPointer=function(){var e=t.nodes.length;if(t.function=null,e>0){t.function=[];for(var n=0;n0?t.nodes[n-1].x:t.clamping?-Number.MAX_VALUE:t.nodes[0].x},e.getNodeValue=function(e,n){var r=t.nodes.length;return e<0||e>=r?(hs("Index out of range!"),-1):(n[0]=t.nodes[e].x,n[1]=t.nodes[e].y,n[2]=t.nodes[e].midpoint,n[3]=t.nodes[e].sharpness,1)},e.setNodeValue=function(n,r){var a=t.nodes.length;if(n<0||n>=a)return hs("Index out of range!"),-1;var o=t.nodes[n].x;return t.nodes[n].x=r[0],t.nodes[n].y=r[1],t.nodes[n].midpoint=r[2],t.nodes[n].sharpness=r[3],o!==r[0]?e.sortAndUpdateRange():e.modified(),1},e.addPoint=function(t,n){return e.addPointLong(t,n,.5,0)},e.addPointLong=function(n,r,a,o){if(a<0||a>1)return hs("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return hs("Sharpness outside range [0.0, 1.0]"),-1;t.allowDuplicateScalars||e.removePoint(n);var i,s={x:n,y:r,midpoint:a,sharpness:o};for(t.nodes.push(s),e.sortAndUpdateRange(),i=0;i=t.nodes.length)return-1;var a=r,o=!1;return t.nodes.splice(r,1),0!==r&&r!==t.nodes.length||(o=e.updateRange()),o||e.modified(),a},e.removeAllPoints=function(){t.nodes=[],e.sortAndUpdateRange()},e.addSegment=function(n,r,a,o){e.sortAndUpdateRange();for(var i=0;i=n&&t.nodes[i].x<=a?t.nodes.splice(i,1):i++;e.addPoint(n,r,.5,0),e.addPoint(a,o,.5,0)},e.getValue=function(t){var n=[];return e.getTable(t,t,1,n),n[0]},e.adjustRange=function(n){if(n.length<2)return 0;var r=e.getRange();r[0]n[1]?e.addPoint(n[1],e.getValue(n[1])):e.addPoint(n[1],e.getValue(r[1])),e.sortAndUpdateRange();for(var a=0;a=n[0]&&t.nodes[a].x<=n[1]?t.nodes.splice(a,1):++a;return e.sortAndUpdateRange(),1},e.estimateMinNumberOfSamples=function(t,n){var r=e.findMinimumXDistance();return Math.ceil((n-t)/r)},e.findMinimumXDistance=function(){var e=t.nodes.length;if(e<2)return-1;for(var n=t.nodes[1].x-t.nodes[0].x,r=0;r4&&void 0!==arguments[4]?arguments[4]:1,s=0,l=t.nodes.length,c=0;0!==l&&(c=t.nodes[l-1].y);var u=0,d=0,f=0,p=0,g=0,m=0,v=0;for(o=0;o1?e+o/(r-1)*(n-e):.5*(e+n);st.nodes[s].x;)++s.99999&&(m=.99999));if(s>=l)a[h]=t.clamping?c:0;else if(0===s)a[h]=t.clamping?t.nodes[0].y:0;else{var y=(u-d)/(f-d);if(y=y.99){if(y<.5){a[h]=p;continue}a[h]=g;continue}if(v<.01){a[h]=(1-y)*p+y*g;continue}y<.5?y=.5*Math.pow(2*y,1+10*v):y>.5&&(y=1-.5*Math.pow(2*(1-y),1+10*v));var b=y*y,T=b*y,C=2*T-3*b+1,S=-2*T+3*b,P=T-2*b+y,w=T-b,x=(1-v)*(g-p);a[h]=C*p+S*g+P*x+w*x;var O=pg?p:g;a[h]=a[h]M?M:a[h]}}}}(e,t)}var Ts={newInstance:f.a.newInstance(bs,"vtkPiecewiseFunction"),extend:bs},Cs={NEAREST:0,LINEAR:1,FAST_LINEAR:2},Ss={FRACTIONAL:0,PROPORTIONAL:1},Ps={InterpolationType:Cs,OpacityMode:Ss};function ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Os=Ps.InterpolationType,Ms=Ps.OpacityMode,As=f.a.vtkErrorMacro,Is=4;var Rs={independentComponents:!0,interpolationType:Os.FAST_LINEAR,shade:0,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:1};function Es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,Rs,n),f.a.obj(e,t),!t.componentData){t.componentData=[];for(var r=0;r(e=t.componentData[r].grayTransferFunction.getMTime())?n:e):3===t.componentData[r].colorChannels&&t.componentData[r].rGBTransferFunction&&(n=n>(e=t.componentData[r].rGBTransferFunction.getMTime())?n:e),t.componentData[r].scalarOpacity&&(n=n>(e=t.componentData[r].scalarOpacity.getMTime())?n:e),t.componentData[r].gradientOpacity&&(t.componentData[r].disableGradientOpacity||(n=n>(e=t.componentData[r].gradientOpacity.getMTime())?n:e));return n},e.getColorChannels=function(e){return e<0||e>3?(As("Bad index - must be between 0 and 3"),0):t.componentData[e].colorChannels},e.setGrayTransferFunction=function(n,r){var a=!1;return t.componentData[n].grayTransferFunction!==r&&(t.componentData[n].grayTransferFunction=r,a=!0),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1,a=!0),a&&e.modified(),a},e.getGrayTransferFunction=function(n){return null===t.componentData[n].grayTransferFunction&&(t.componentData[n].grayTransferFunction=Ts.newInstance(),t.componentData[n].grayTransferFunction.addPoint(0,0),t.componentData[n].grayTransferFunction.addPoint(1024,1),1!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=1),e.modified()),t.componentData[n].grayTransferFunction},e.setRGBTransferFunction=function(n,r){var a=!1;return t.componentData[n].rGBTransferFunction!==r&&(t.componentData[n].rGBTransferFunction=r,a=!0),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3,a=!0),a&&e.modified(),a},e.getRGBTransferFunction=function(n){return null===t.componentData[n].rGBTransferFunction&&(t.componentData[n].rGBTransferFunction=vs.newInstance(),t.componentData[n].rGBTransferFunction.addRGBPoint(0,0,0,0),t.componentData[n].rGBTransferFunction.addRGBPoint(1024,1,1,1),3!==t.componentData[n].colorChannels&&(t.componentData[n].colorChannels=3),e.modified()),t.componentData[n].rGBTransferFunction},e.setScalarOpacity=function(n,r){return t.componentData[n].scalarOpacity!==r&&(t.componentData[n].scalarOpacity=r,e.modified(),!0)},e.getScalarOpacity=function(n){return null===t.componentData[n].scalarOpacity&&(t.componentData[n].scalarOpacity=Ts.newInstance(),t.componentData[n].scalarOpacity.addPoint(0,1),t.componentData[n].scalarOpacity.addPoint(1024,1),e.modified()),t.componentData[n].scalarOpacity},e.setComponentWeight=function(n,r){if(n<0||n>=Is)return As("Invalid index"),!1;var a=Math.min(1,Math.max(0,r));return t.componentData[n].componentWeight!==a&&(t.componentData[n].componentWeight=a,e.modified(),!0)},e.getComponentWeight=function(e){return e<0||e>=Is?(As("Invalid index"),0):t.componentData[e].componentWeight},e.setInterpolationTypeToNearest=function(){return e.setInterpolationType(Os.NEAREST)},e.setInterpolationTypeToLinear=function(){return e.setInterpolationType(Os.LINEAR)},e.setInterpolationTypeToFastLinear=function(){return e.setInterpolationType(Os.FAST_LINEAR)},e.getInterpolationTypeAsString=function(){return f.a.enumToString(Os,t.interpolationType)},["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["set".concat(r)]=function(r,a){return t.componentData[r]["".concat(n)]!==a&&(t.componentData[r]["".concat(n)]=a,e.modified(),!0)}}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode"].forEach(function(n){var r=f.a.capitalize(n);e["get".concat(r)]=function(e){return t.componentData[e]["".concat(n)]}})}(e,t)}var Ds=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ls,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["mapper"]),f.a.getArray(e,t,["bounds"],6),function(e,t){t.classHierarchy.push("vtkVolume"),e.getVolumes=function(){return e},e.makeProperty=Ds.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||!function(e){return e[0].map(function(t,n){return e.map(function(e){return e[n]})})}([n,t.mapperBounds]).reduce(function(e,t){return e&&t[0]===t[1]},!0)||e.getMTime()>t.boundsMTime.getMTime()){Vs("Recomputing bounds..."),t.mapperBounds=n.map(function(e){return e});var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?n:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e}}(e,t)}var Bs={newInstance:f.a.newInstance(Ns,"vtkVolume"),extend:Ns},ks={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3};var Fs={clippingPlanes:[]};var Gs={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fs,n),f.a.obj(e,t),f.a.algo(e,t,1,0),t.clippingPlanes||(t.clippingPlanes=[]),function(e,t){e.update=function(){e.getInputData()},e.addClippingPlane=function(e){"vtkPlane"===e.getClassName()&&t.clippingPlanes.push(e)},e.getNumberOfClippingPlanes=function(){return t.clippingPlanes.length},e.removeAllClippingPlanes=function(){t.clippingPlanes.length=0},e.removeClippingPlane=function(e){e<0||e>=6||t.clippingPlanes.splice(e,1)},e.getClippingPlanes=function(){return t.clippingPlanes},e.setClippingPlanes=function(t){if(t)if(Array.isArray(t))for(var n=t.length,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Us,n),Gs.extend(e,t,n),f.a.obj(e,t),f.a.algo(e,t,1,0),f.a.setGet(e,t,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","blendMode"]),f.a.setGetArray(e,t,["averageIPScalarRange"],2),f.a.event(e,t,"lightingActivated"),function(e,t){t.classHierarchy.push("vtkVolumeMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.update=function(){e.getInputData()},e.setBlendModeToComposite=function(){e.setBlendMode(_s.COMPOSITE_BLEND)},e.setBlendModeToMaximumIntensity=function(){e.setBlendMode(_s.MAXIMUM_INTENSITY_BLEND)},e.setBlendModeToMinimumIntensity=function(){e.setBlendMode(_s.MINIMUM_INTENSITY_BLEND)},e.setBlendModeToAverageIntensity=function(){e.setBlendMode(_s.AVERAGE_INTENSITY_BLEND)},e.getBlendModeAsString=function(){return f.a.enumToString(_s,t.blendMode)}}(e,t)}var Ws={newInstance:f.a.newInstance(js,"vtkVolumeMapper"),extend:js};function zs(e,t){const n=[e.volume.cols,e.volume.rows,e.volume.imageIds.length];if(n[0]*n[1]*n[2]<1||n[1]<2||n[1]<2||n[2]<2)return;const r=Di.newInstance(),a=e.volume.imagePosition,o=e.volume.pixelSpacing.concat(e.volume.sliceThickness);r.setDimensions(n),r.setOrigin(a),r.setSpacing(o);const i=Qe.newInstance({name:"Scalars",values:t,numberOfComponents:1});return r.getPointData().setScalars(i),r.modified(),r}let Hs=!1;function Ks(e,t,n){let r=[],a=0,o=function(){let t={knee:24,thorax:364,abdomen:147}[e],n=[];for(let r=1;r{t.resetImageParsing(),t.readFiles(r,function(e,r){let a=e[_.keys(e)[0]];t.renderImage(a,"viewer"),n&&setTimeout(n,3e3,a)})})})}function Xs(e){return e*Math.PI/180}const qs=(e,t,n)=>{try{let r=ft.intersectWithPlane(e.position,e.normal,t.position,t.normal);if(r.intersection){const{l0:e,l1:t}=r,a=ft.intersectWithLine(e,t,n.position,n.normal);if(a.intersection)return a.x}}catch(e){console.log("some issue calculating the plane intersection",e)}return NaN};function Ys(e){const t=Bs.newInstance(),n=Ws.newInstance();n.setSampleDistance(1),t.setMapper(n),n.setInputData(e);const r=e.getPointData().getScalars().getRange();return t.getProperty().getRGBTransferFunction(0).setMappingRange(r[0],r[1]),t}n(28);var Zs=f.a.vtkErrorMacro;var Qs={parent:null,renderable:null,myFactory:null,children:[],visited:!1};function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qs,n),f.a.obj(e,t),f.a.event(e,t,"event"),t._renderableChildMap=new Map,f.a.get(e,t,["visited"]),f.a.setGet(e,t,["parent","renderable","myFactory"]),f.a.getArray(e,t,["children"]),function(e,t){t.classHierarchy.push("vtkViewNode"),e.build=function(e){},e.render=function(e){},e.traverse=function(n){var r=n.getTraverseOperation(),a=e[r];if(a)a(n);else{e.apply(n,!0);for(var o=0;o2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,el,n),f.a.obj(e,t),function(e,t){t.overrides||(t.overrides={}),t.classHierarchy.push("vtkViewNodeFactory"),e.createNode=function(n){if(n.isDeleted())return null;for(var r=0,a=n.getClassName(r++),o=!1,i=Object.keys(t.overrides);a&&!o;)-1!==i.indexOf(a)?o=!0:a=n.getClassName(r++);if(!o)return null;var s=t.overrides[a]();return s.setMyFactory(e),s},e.registerOverride=function(e,n){t.overrides[e]=n}}(e,t)}var nl={newInstance:f.a.newInstance(tl,"vtkViewNodeFactory"),extend:tl},rl=Object.create(null);function al(e,t){rl[e]=t}var ol={};function il(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ol,n),t.overrides=rl,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLViewNodeFactory")}(0,t)}var sl={newInstance:f.a.newInstance(il,"vtkOpenGLViewNodeFactory"),extend:il};var ll={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function cl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ll,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime),t.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},f.i(e,t,["context","keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkOpenGLCamera"),e.buildPass=function(n){n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext())},e.opaquePass=function(e){if(e){var n=t.openGLRenderer.getTiledSizeAndOrigin();t.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),t.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},e.translucentPass=e.opaquePass,e.opaqueZBufferPass=e.opaquePass,e.volumePass=e.opaquePass,e.getKeyMatrices=function(n){if(n!==t.lastRenderer||t.openGLRenderWindow.getMTime()>t.keyMatrixTime.getMTime()||e.getMTime()>t.keyMatrixTime.getMTime()||n.getMTime()>t.keyMatrixTime.getMTime()||t.renderable.getMTime()>t.keyMatrixTime.getMTime()){o.copy(t.keyMatrices.wcvc,t.renderable.getViewMatrix()),a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.wcvc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,t.keyMatrices.wcvc);var r=t.openGLRenderer.getAspectRatio();o.copy(t.keyMatrices.vcpc,t.renderable.getProjectionMatrix(r,-1,1)),o.transpose(t.keyMatrices.vcpc,t.keyMatrices.vcpc),o.multiply(t.keyMatrices.wcpc,t.keyMatrices.vcpc,t.keyMatrices.wcvc),t.keyMatrixTime.modified(),t.lastRenderer=n}return t.keyMatrices}}(e,t)}var ul=f.d(cl);al("vtkCamera",ul);var dl=f.k;var fl={context:null,openGLRenderWindow:null,selector:null};function pl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fl,n),Js.extend(e,t,n),f.b(e,t,["shaderCache"]),f.i(e,t,["selector"]),function(e,t){t.classHierarchy.push("vtkOpenGLRenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes()}},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(dl("No lights are on, creating one."),t.renderable.createLight()),e},e.opaqueZBufferPass=function(n){if(n){var r=0,a=t.context;t.renderable.getTransparent()||(t.context.clearColor(1,0,0,1),r|=a.COLOR_BUFFER_BIT),t.renderable.getPreserveDepthBuffer()||(a.clearDepth(1),r|=a.DEPTH_BUFFER_BIT,a.depthMask(!0));var o=e.getTiledSizeAndOrigin();a.enable(a.SCISSOR_TEST),a.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),a.colorMask(!0,!0,!0,!0),a.clear(r),a.enable(a.DEPTH_TEST)}},e.cameraPass=function(t){t&&e.clear()},e.getAspectRatio=function(){var e=t.parent.getSizeByReference(),n=t.renderable.getViewportByReference();return e[0]*(n[2]-n[0])/((n[3]-n[1])*e[1])},e.getTiledSizeAndOrigin=function(){var e=t.renderable.getViewportByReference(),n=[0,0,1,1],r=Me(e[0]-n[0],0,1),a=Me(e[1]-n[1],0,1),o=t.parent.normalizedDisplayToDisplay(r,a),i=Math.round(o[0]),s=Math.round(o[1]),l=Me(e[2]-n[0],0,1),c=Me(e[3]-n[1],0,1);l>n[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.clear=function(){var n=0,r=t.context;if(!t.renderable.getTransparent()){var a=t.renderable.getBackgroundByReference();t.context.clearColor(a[0],a[1],a[2],a[3]),n|=r.COLOR_BUFFER_BIT}t.renderable.getPreserveDepthBuffer()||(r.clearDepth(1),n|=r.DEPTH_BUFFER_BIT,r.depthMask(!0)),r.colorMask(!0,!0,!0,!0);var o=e.getTiledSizeAndOrigin();r.enable(r.SCISSOR_TEST),r.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),r.clear(n),r.enable(r.DEPTH_TEST)},e.releaseGraphicsResources=function(){null!==t.selector&&t.selector.releaseGraphicsResources()},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))}}(e,t)}var gl=f.d(pl,"vtkOpenGLRenderer");al("vtkRenderer",gl);var ml={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5},vl={ARRAY_BUFFER:0,ELEMENT_ARRAY_BUFFER:1,TEXTURE_BUFFER:2},hl={ObjectType:vl};function yl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bl(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sl,n),f.a.obj(e,t),f.a.get(e,t,["openGLRenderWindow"]),function(e,t){function n(e){switch(e){case Cl.ELEMENT_ARRAY_BUFFER:return t.context.ELEMENT_ARRAY_BUFFER;case Cl.TEXTURE_BUFFER:if("TEXTURE_BUFFER"in t.context)return t.context.TEXTURE_BUFFER;default:case Cl.ARRAY_BUFFER:return t.context.ARRAY_BUFFER}}t.classHierarchy.push("vtkOpenGLBufferObject");var r=null,a=null,o=!0,i="";e.getType=function(){return r},e.setType=function(e){r=e},e.getHandle=function(){return a},e.isReady=function(){return!1===o},e.generateBuffer=function(e){var o=n(e);return null===a&&(a=t.context.createBuffer(),r=e),n(r)===o},e.upload=function(s,l){return e.generateBuffer(l)?(t.context.bindBuffer(n(r),a),t.context.bufferData(n(r),s,t.context.STATIC_DRAW),o=!1,!0):(i="Trying to upload array buffer to incompatible buffer.",!1)},e.bind=function(){return!!a&&(t.context.bindBuffer(n(r),a),!0)},e.release=function(){return!!a&&(t.context.bindBuffer(n(r),null),!0)},e.releaseGraphicsResources=function(){null!==a&&(t.context.bindBuffer(n(r),null),t.context.deleteBuffer(a),a=null)},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.getError=function(){return i}}(e,t)}var wl=bl(bl({newInstance:f.a.newInstance(Pl),extend:Pl},{}),hl),xl={FLAT:0,GOURAUD:1,PHONG:2},Ol={POINTS:0,WIREFRAME:1,SURFACE:2},Ml={Shading:xl,Representation:Ol,Interpolation:xl},Al=f.a.vtkErrorMacro;function Il(e,t){t.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),e.setType(vl.ARRAY_BUFFER),e.createVBO=function(n,r,a,o){if(!n.getData()||!n.getData().length)return t.elementCount=0,0;t.blockSize=3,t.vertexOffset=0,t.normalOffset=0,t.tCoordOffset=0,t.tCoordComponents=0,t.colorComponents=0,t.colorOffset=0,t.customData=[];var i=o.points.getData(),s=null,l=null,c=null,u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(t.normalOffset=4*t.blockSize,t.blockSize+=3,s=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(function(e){e&&(t.customData.push({data:e.getData(),offset:4*t.blockSize,components:e.getNumberOfComponents(),name:e.getName()}),t.blockSize+=e.getNumberOfComponents())}),o.tcoords&&(t.tCoordOffset=4*t.blockSize,t.tCoordComponents=d,t.blockSize+=d,l=o.tcoords.getData()),o.colors?(t.colorComponents=o.colors.getNumberOfComponents(),t.colorOffset=0,c=o.colors.getData(),t.colorBO||(t.colorBO=wl.newInstance()),t.colorBO.setOpenGLRenderWindow(t.openGLRenderWindow)):t.colorBO=null,t.stride=4*t.blockSize;var f,p=0,g=0,m=0,v=0,h=0,y=0,b={anythingToPoints:function(e,t,n){for(var r=0;r2)for(var r=0;r2){for(var r=0;r1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return e>2?3*(e-2):0}},C=null,S=null;a===Ol.POINTS||"verts"===r?(C=b.anythingToPoints,S=T.anythingToPoints):a===Ol.WIREFRAME||"lines"===r?(C=b["".concat(r,"ToWireframe")],S=T["".concat(r,"ToWireframe")]):(C=b["".concat(r,"ToSurface")],S=T["".concat(r,"ToSurface")]);for(var P=n.getData(),w=P.length,x=0,O=0;O0&&(Math.abs(D)/E>1e6||Math.abs(Math.log10(E))>3||0===E&&D>1e6)){for(var k=new Float64Array(3),F=new Float64Array(3),G=0;G<3;++G){var _=o.points.getRange(G),U=_[1]-_[0];k[G]=.5*(_[1]+_[0]),F[G]=U>0?1/U:1}e.setCoordShiftAndScale(k,F)}else!0===t.coordShiftAndScaleEnabled&&e.setCoordShiftAndScale(null,null);f=function(e){if(p=3*e,t.coordShiftAndScaleEnabled?(A[I++]=(i[p++]-t.coordShift[0])*t.coordScale[0],A[I++]=(i[p++]-t.coordShift[1])*t.coordScale[1],A[I++]=(i[p++]-t.coordShift[2])*t.coordScale[2]):(A[I++]=i[p++],A[I++]=i[p++],A[I++]=i[p++]),null!==s&&(g=o.haveCellNormals?3*(y+o.cellOffset):3*e,A[I++]=s[g++],A[I++]=s[g++],A[I++]=s[g++]),t.customData.forEach(function(t){h=e*t.components;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rl,n),wl.extend(e,t,n),f.a.setGet(e,t,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),f.a.get(e,t,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),Il(e,t)}var Dl={newInstance:f.a.newInstance(El),extend:El},Vl=f.a.vtkErrorMacro;var Ll={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function Nl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ll,n),f.a.obj(e,t),f.a.setGet(e,t,["shaderType","source","error","handle","context"]),function(e,t){t.classHierarchy.push("vtkShader"),e.compile=function(){var e=t.context.VERTEX_SHADER;if(!t.source||!t.source.length||"Unknown"===t.shaderType)return!1;switch(0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0),t.shaderType){case"Fragment":e=t.context.FRAGMENT_SHADER;break;case"Vertex":default:e=t.context.VERTEX_SHADER}if(t.handle=t.context.createShader(e),t.context.shaderSource(t.handle,t.source),t.context.compileShader(t.handle),!t.context.getShaderParameter(t.handle,t.context.COMPILE_STATUS)){var n=t.context.getShaderInfoLog(t.handle);return Vl("Error compiling shader '".concat(t.source,"': ").concat(n)),t.context.deleteShader(t.handle),t.handle=0,!1}return!0},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0,t.dirty=!0)}}(e,t)}var Bl={newInstance:f.a.newInstance(Nl,"vtkShader"),extend:Nl},kl=f.a.vtkErrorMacro;var Fl={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 Gl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Fl,n),t.attributesLocs={},t.uniformLocs={},t.vertexShader=Bl.newInstance(),t.vertexShader.setShaderType("Vertex"),t.fragmentShader=Bl.newInstance(),t.fragmentShader.setShaderType("Fragment"),t.geometryShader=Bl.newInstance(),t.geometryShader.setShaderType("Geometry"),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),function(e,t){t.classHierarchy.push("vtkShaderProgram"),e.compileShader=function(){return t.vertexShader.compile()?t.fragmentShader.compile()?e.attachShader(t.vertexShader)&&e.attachShader(t.fragmentShader)?e.link()?(e.setCompiled(!0),1):(kl("Links failed: ".concat(t.error)),0):(kl(t.error),0):(kl(t.fragmentShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.fragmentShader.getError()),0):(kl(t.vertexShader.getSource().split("\n").map(function(e,t){return"".concat(t,": ").concat(e)}).join("\n")),kl(t.vertexShader.getError()),0)},e.cleanup=function(){"Unknown"!==t.shaderType&&0!==t.handle&&(t.context.deleteShader(t.handle),t.handle=0)},e.bind=function(){return!(!t.linked&&!e.link()||(t.context.useProgram(t.handle),e.setBound(!0),0))},e.isBound=function(){return!!t.bound},e.release=function(){t.context.useProgram(null),e.setBound(!1)},e.setContext=function(e){t.vertexShader.setContext(e),t.fragmentShader.setContext(e),t.geometryShader.setContext(e)},e.link=function(){if(t.inked)return!0;if(0===t.handle)return t.error="Program has not been initialized, and/or does not have shaders.",!1;if(t.uniformLocs={},t.context.linkProgram(t.handle),!t.context.getProgramParameter(t.handle,t.context.LINK_STATUS)){var n=t.context.getProgramInfoLog(t.handle);return kl("Error linking shader ".concat(n)),t.handle=0,!1}return e.setLinked(!0),t.attributeLocs={},!0},e.setUniformMatrix=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix4fv(a,!1,o),!0},e.setUniformMatrix3x3=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;var o=new Float32Array(r);return t.context.uniformMatrix3fv(a,!1,o),!0},e.setUniformf=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1f(a,r),!0)},e.setUniformfv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1fv(a,r),!0)},e.setUniformi=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1i(a,r),!0)},e.setUniformiv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform1iv(a,r),!0)},e.setUniform2f=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2f(o,r,a),!0},e.setUniform2fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2fv(a,r),!0)},e.setUniform2i=function(n,r,a){var o=e.findUniform(n);if(-1===o)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===a)throw new RangeError("Invalid number of values for array");return t.context.uniform2i(o,r,a),!0},e.setUniform2iv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform2iv(a,r),!0)},e.setUniform3f=function(n,r,a,o){var i=e.findUniform(n);if(-1===i)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(void 0===o)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(i,r,a,o),!0},e.setUniform3fArray=function(n,r){var a=e.findUniform(n);if(-1===a)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;if(!Array.isArray(r)||3!==r.length)throw new RangeError("Invalid number of values for array");return t.context.uniform3f(a,r[0],r[1],r[2]),!0},e.setUniform3fv=function(n,r){var a=e.findUniform(n);return-1===a?(t.error="Could not set uniform ".concat(n," . No such uniform."),!1):(t.context.uniform3fv(a,r),!0)},e.setUniform3i=function(n){var r=e.findUniform(n);if(-1===r)return t.error="Could not set uniform ".concat(n," . No such uniform."),!1;for(var a=arguments.length,o=new Array(a>1?a-1:0),i=1;i1?a-1:0),i=1;i1?a-1:0),i=1;i3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var Ul={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null,openGLRenderWindow:null};function jl(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ul,n),t.buffers=[],f.a.obj(e,t),f.a.get(e,t,["supported"]),f.a.setGet(e,t,["forceEmulation"]),function(e,t){t.classHierarchy.push("vtkOpenGLVertexArrayObject"),e.exposedMethod=function(){},e.initialize=function(){t.instancingExtension=null,t.openGLRenderWindow.getWebgl2()||(t.instancingExtension=t.context.getExtension("ANGLE_instanced_arrays")),!t.forceEmulation&&t.openGLRenderWindow&&t.openGLRenderWindow.getWebgl2()?(t.extension=null,t.supported=!0,t.handleVAO=t.context.createVertexArray()):(t.extension=t.context.getExtension("OES_vertex_array_object"),!t.forceEmulation&&t.extension?(t.supported=!0,t.handleVAO=t.extension.createVertexArrayOES()):t.supported=!1)},e.isReady=function(){return 0!==t.handleVAO||!1===t.supported},e.bind=function(){if(e.isReady()||e.initialize(),e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(t.handleVAO):t.context.bindVertexArray(t.handleVAO);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,1):n.vertexAttribDivisor(i.index+l,1))}},e.release=function(){if(e.isReady()&&t.supported)t.extension?t.extension.bindVertexArrayOES(null):t.context.bindVertexArray(null);else if(e.isReady())for(var n=t.context,r=0;r0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(i.index+l,0):n.vertexAttribDivisor(i.index+l,0)),n.disableVertexAttribArray(i.index+l)}},e.shaderProgramChanged=function(){e.release(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.handleProgram=0},e.releaseGraphicsResources=function(){e.shaderProgramChanged(),t.handleVAO&&(t.extension?t.extension.deleteVertexArrayOES(t.handleVAO):t.context.deleteVertexArray(t.handleVAO)),t.handleVAO=0,t.supported=!0,t.handleProgram=0},e.addAttributeArray=function(t,n,r,a,o,i,s,l){return e.addAttributeArrayWithDivisor(t,n,r,a,o,i,s,l,0,!1)},e.addAttributeArrayWithDivisor=function(n,r,a,o,i,s,l,c,u,d){if(!n)return!1;if(!n.isBound()||0===r.getHandle()||r.getType()!==vl.ARRAY_BUFFER)return!1;if(0===t.handleProgram&&(t.handleProgram=n.getHandle()),e.isReady()||e.initialize(),!e.isReady()||t.handleProgram!==n.getHandle())return!1;var f=t.context,p={};if(p.name=a,p.index=f.getAttribLocation(t.handleProgram,a),p.offset=o,p.stride=i,p.type=s,p.size=l,p.normalize=c,p.isMatrix=d,p.divisor=u,-1===p.Index)return!1;if(r.bind(),f.enableVertexAttribArray(p.index),f.vertexAttribPointer(p.index,p.size,p.type,p.normalize,p.stride,p.offset),u>0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p.index,1):f.vertexAttribDivisor(p.index,1)),p.buffer=r.getHandle(),!t.supported){for(var g=!1,m=0;m0&&(t.instancingExtension?t.instancingExtension.vertexAttribDivisorANGLE(p+g,1):f.vertexAttribDivisor(p+g,1));return!0},e.removeAttributeArray=function(n){if(!e.isReady()||0===t.handleProgram)return!1;if(!t.supported)for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zl,n),f.a.obj(e,t),t.shaderSourceTime={},f.a.obj(t.shaderSourceTime),t.attributeUpdateTime={},f.a.obj(t.attributeUpdateTime),f.a.setGet(e,t,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType"]),t.program=_l.newInstance(),t.VAO=Wl.newInstance(),t.CABO=Dl.newInstance(),function(e,t){t.classHierarchy.push("vtkOpenGLHelper"),e.setOpenGLRenderWindow=function(e){t.program.setContext(e.getContext()),t.VAO.setOpenGLRenderWindow(e),t.CABO.setOpenGLRenderWindow(e)},e.releaseGraphicsResources=function(e){t.VAO.releaseGraphicsResources(),t.CABO.releaseGraphicsResources(),t.CABO.setElementCount(0)}}(e,t)}var Kl={newInstance:f.a.newInstance(Hl),extend:Hl},Xl={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},ql={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5},Yl={Wrap:Xl,Filter:ql};function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ql(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $l=Yl.Wrap,Jl=Yl.Filter,ec=Qe.VtkDataTypes,tc=f.k,nc=f.l,rc=f.m;var ac={openGLRenderWindow:null,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:$l.CLAMP_TO_EDGE,wrapT:$l.CLAMP_TO_EDGE,wrapR:$l.CLAMP_TO_EDGE,minificationFilter:Jl.NEAREST,magnificationFilter:Jl.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1};function oc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ac,n),Js.extend(e,t,n),t.sendParametersTime={},f.g(t.sendParametersTime,{mtime:0}),t.textureBuildTime={},f.g(t.textureBuildTime,{mtime:0}),f.h(e,t,["format","openGLDataType"]),f.i(e,t,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap"]),f.b(e,t,["width","height","volumeInfo","components","handle","target"]),function(e,t){var n=this;function r(e,n){var r=[];if(e!==ec.FLOAT&&t.openGLDataType===t.context.FLOAT)for(var a=t.width*t.height*t.components,o=0;o=a&&(h=a-1);var y=m-v,b=1-y;v=v*r*o,h=h*r*o;for(var T=0;T=r&&(w=r-1);var x=S-P;P*=o,w*=o;for(var O=0;Oa[l]&&(a[l]=n[i]),i++;for(var c=[],u=[],d=0;d0&&void 0!==arguments[0]?arguments[0]:null;if(n?t.openGLRenderWindow=n:(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent()),t.context=t.openGLRenderWindow.getContext(),t.renderable.getInterpolate()?(t.generateMipmap?e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR):e.setMinificationFilter(Jl.LINEAR),e.setMagnificationFilter(Jl.LINEAR)):(e.setMinificationFilter(Jl.NEAREST),e.setMagnificationFilter(Jl.NEAREST)),t.renderable.getRepeat()&&(e.setWrapR($l.REPEAT),e.setWrapS($l.REPEAT),e.setWrapT($l.REPEAT)),t.renderable.getInputData()&&t.renderable.setImage(null),!t.handle||t.renderable.getMTime()>t.textureBuildTime.getMTime()){null!==t.renderable.getImage()&&(t.renderable.getInterpolate()&&(t.generateMipmap=!0,e.setMinificationFilter(Jl.LINEAR_MIPMAP_LINEAR)),t.renderable.getImage()&&t.renderable.getImageLoaded()&&(e.create2DFromImage(t.renderable.getImage()),e.activate(),e.sendParameters(),t.textureBuildTime.modified()));var r=t.renderable.getInputData(0);if(r&&r.getPointData().getScalars()){for(var a=r.getExtent(),o=r.getPointData().getScalars(),i=[],s=0;st.sendParametersTime.getMTime()&&e.sendParameters()},e.isBound=function(){var e=!1;if(t.context&&t.handle){var n=0;switch(t.target){case t.context.TEXTURE_2D:n=t.context.TEXTURE_BINDING_2D;break;default:rc("impossible case")}e=t.context.getIntegerv(n)===t.handle}return e},e.sendParameters=function(){t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_S,e.getOpenGLWrapMode(t.wrapS)),t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_T,e.getOpenGLWrapMode(t.wrapT)),t.openGLRenderWindow.getWebgl2()&&t.context.texParameteri(t.target,t.context.TEXTURE_WRAP_R,e.getOpenGLWrapMode(t.wrapR)),t.context.texParameteri(t.target,t.context.TEXTURE_MIN_FILTER,e.getOpenGLFilterMode(t.minificationFilter)),t.context.texParameteri(t.target,t.context.TEXTURE_MAG_FILTER,e.getOpenGLFilterMode(t.magnificationFilter)),t.openGLRenderWindow.getWebgl2()&&(t.context.texParameteri(t.target,t.context.TEXTURE_BASE_LEVEL,t.baseLevel),t.context.texParameteri(t.target,t.context.TEXTURE_MAX_LEVEL,t.maxLevel)),t.sendParametersTime.modified()},e.getInternalFormat=function(n,r){return t.internalFormat||(t.internalFormat=e.getDefaultInternalFormat(n,r)),t.internalFormat||tc("Unable to find suitable internal format for T=".concat(n," NC= ").concat(r)),t.internalFormat},e.getDefaultInternalFormat=function(e,r){var a=0;return(a=t.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!1))?a:((a=n.openGLRenderWindow.getDefaultTextureInternalFormat(e,r,!0))||(tc("Unsupported internal texture type!"),tc("Unable to find suitable internal format for T=".concat(e," NC= ").concat(r))),a)},e.setInternalFormat=function(n){n!==t.internalFormat&&(t.internalFormat=n,e.modified())},e.getFormat=function(n,r){return t.format=e.getDefaultFormat(n,r),t.format},e.getDefaultFormat=function(e,n){if(t.openGLRenderWindow.getWebgl2())switch(n){case 1:return t.context.RED;case 2:return t.context.RG;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}else switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:return t.context.RGBA;default:return t.context.RGB}},e.resetFormatAndType=function(){t.format=0,t.internalFormat=0,t.openGLDataType=0},e.getDefaultDataType=function(e){if(t.openGLRenderWindow.getWebgl2())switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.FLOAT}switch(e){case ec.UNSIGNED_CHAR:return t.context.UNSIGNED_BYTE;case ec.FLOAT:case ec.VOID:default:return t.context.getExtension("OES_texture_float")&&t.context.getExtension("OES_texture_float_linear")?t.context.FLOAT:t.context.UNSIGNED_BYTE}},e.getOpenGLDataType=function(n){return t.openGLDataType=e.getDefaultDataType(n),t.openGLDataType},e.getShiftAndScale=function(){var e=0,n=1;switch(t.openGLDataType){case t.context.BYTE:e=(n=127.5)-128;break;case t.context.UNSIGNED_BYTE:n=255,e=0;break;case t.context.SHORT:e=(n=32767.5)-32768;break;case t.context.UNSIGNED_SHORT:n=65536,e=0;break;case t.context.INT:e=(n=2147483647.5)-2147483648;break;case t.context.UNSIGNED_INT:n=4294967295,e=0;break;case t.context.FLOAT:}return{shift:e,scale:n}},e.getOpenGLFilterMode=function(e){switch(e){case Jl.NEAREST:return t.context.NEAREST;case Jl.LINEAR:return t.context.LINEAR;case Jl.NEAREST_MIPMAP_NEAREST:return t.context.NEAREST_MIPMAP_NEAREST;case Jl.NEAREST_MIPMAP_LINEAR:return t.context.NEAREST_MIPMAP_LINEAR;case Jl.LINEAR_MIPMAP_NEAREST:return t.context.LINEAR_MIPMAP_NEAREST;case Jl.LINEAR_MIPMAP_LINEAR:return t.context.LINEAR_MIPMAP_LINEAR;default:return t.context.NEAREST}},e.getOpenGLWrapMode=function(e){switch(e){case $l.CLAMP_TO_EDGE:return t.context.CLAMP_TO_EDGE;case $l.REPEAT:return t.context.REPEAT;case $l.MIRRORED_REPEAT:return t.context.MIRRORED_REPEAT;default:return t.context.CLAMP_TO_EDGE}},e.create2DFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind();var c=a(r(s,[l]));return t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,c[0]),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.createCubeFromRaw=function(n,o,i,s,l){if(e.getOpenGLDataType(s),e.getInternalFormat(s,i),e.getFormat(s,i),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_CUBE_MAP,t.components=i,t.width=n,t.height=o,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),t.maxLevel=l.length/6-1,e.createTexture(),e.bind();for(var c=a(r(s,l)),u=[],d=t.width,p=t.height,g=0;g=1&&C>=1;){var S=null;b<=t.maxLevel&&(S=u[6*b+y]),t.context.texImage2D(t.context.TEXTURE_CUBE_MAP_POSITIVE_X+y,b,t.internalFormat,T,C,0,t.format,t.openGLDataType,S),b++,T/=2,C/=2}return e.deactivate(),!0},e.createDepthFromRaw=function(n,r,a,o){return e.getOpenGLDataType(a),t.format=t.context.DEPTH_COMPONENT,t.openGLRenderWindow.getWebgl2()?a===ec.FLOAT?t.internalFormat=t.context.DEPTH_COMPONENT32F:t.internalFormat=t.context.DEPTH_COMPONENT16:t.internalFormat=t.context.DEPTH_COMPONENT,t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_2D,t.components=1,t.width=n,t.height=r,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1),t.context.texImage2D(t.target,0,t.internalFormat,t.width,t.height,0,t.format,t.openGLDataType,o),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create2DFromImage=function(n){if(e.getOpenGLDataType(ec.UNSIGNED_CHAR),e.getInternalFormat(ec.UNSIGNED_CHAR,4),e.getFormat(ec.UNSIGNED_CHAR,4),!t.internalFormat||!t.format||!t.openGLDataType)return nc("Failed to determine texture parameters."),!1;t.target=t.context.TEXTURE_2D,t.components=4,t.width=n.width,t.height=n.height,t.depth=1,t.numberOfDimensions=2,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.pixelStorei(t.context.UNPACK_ALIGNMENT,1);var r=!B(n.width)||!B(n.height),a=document.createElement("canvas");a.width=r?N(n.width):n.width,a.height=r?N(n.height):n.height;var o=a.getContext("2d");o.translate(0,a.height),o.scale(1,-1),o.drawImage(n,0,0,n.width,n.height,0,0,a.width,a.height),navigator.userAgent.indexOf("Chrome/69")>=0&&o.getImageData(0,0,1,1);var i=a;return t.context.texImage2D(t.target,0,t.internalFormat,t.format,t.openGLDataType,i),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0},e.create3DFromRaw=function(n,r,a,o,i,s){return e.getOpenGLDataType(i),e.getInternalFormat(i,o),e.getFormat(i,o),t.internalFormat&&t.format&&t.openGLDataType?(t.target=t.context.TEXTURE_3D,t.components=o,t.width=n,t.height=r,t.depth=a,t.numberOfDimensions=3,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.context.texImage3D(t.target,0,t.internalFormat,t.width,t.height,t.depth,0,t.format,t.openGLDataType,s),t.generateMipmap&&t.context.generateMipmap(t.target),e.deactivate(),!0):(nc("Failed to determine texture parameters."),!1)},e.create3DFilterableFromRaw=function(n,r,a,i,s,l){for(var c=n*r*a,u=[],d=[],f=0;f4096&&(w===ec.FLOAT||i>=3)&&(O=4096);var M=1,A=1;c>O*O&&(A=M=Math.ceil(Math.sqrt(c/(O*O))));var I=Math.sqrt(c)/M;I=N(I);var R,E=Math.floor(I*M/n),D=Math.ceil(a/E),V=N(r*D/A);t.width=I,t.height=V,t.openGLRenderWindow.activateTexture(e),e.createTexture(),e.bind(),t.volumeInfo.xreps=E,t.volumeInfo.yreps=D,t.volumeInfo.xstride=M,t.volumeInfo.ystride=A,t.volumeInfo.offset=S.offset,t.volumeInfo.scale=S.scale;var L=I*V*i;R=w===ec.FLOAT?new Float32Array(L):new Uint8Array(L);for(var B=0,k=Math.floor(n/M),F=Math.floor(r/A),G=0;G2&&void 0!==arguments[2]&&arguments[2],e.replaceShaderCoincidentOffset=function(n,r,a){var o=e.getCoincidentParameters(r,a);if(o&&(0!==o.factor||0!==o.offset)){var i=n.Fragment;i=_l.substitute(i,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,t.context.getExtension("EXT_frag_depth")&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),t.openGLRenderWindow.getWebgl2()&&(0!==o.factor?(i=_l.substitute(i,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):i=_l.substitute(i,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),n.Fragment=i}}}},gc=f.l,mc=ml;function vc(e,t,n){if(t.apply(e)){var r=e.getIndependentComponents();return"".concat(e.getMTime(),"-").concat(r,"-").concat(n)}return"0"}var hc={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,colorTexture:null,pwfTexture:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hc,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.tris=Kl.newInstance(),t.openGLTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.pwfTexture=sc.newInstance(),t.imagemat=o.identity(new Float64Array(16)),f.i(e,t,[]),t.VBOBuildTime={},f.g(t.VBOBuildTime),function(e,t){t.classHierarchy.push("vtkOpenGLImageMapper"),e.buildPass=function(n){if(n){t.openGLImageSlice=e.getFirstAncestorOfType("vtkOpenGLImageSlice"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.colorTexture.setOpenGLRenderWindow(t.openGLRenderWindow),t.pwfTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera()),t.renderable.getSliceAtFocalPoint()&&t.renderable.setSliceFromCamera(r.getActiveCamera())}},e.translucentPass=function(t){t&&e.render()},e.opaqueZBufferPass=function(n){n&&(t.haveSeenDepthRequest=!0,t.renderDepth=!0,e.render(),t.renderDepth=!1)},e.opaquePass=function(t){t&&e.render()},e.getCoincidentParameters=function(e,n){return t.renderable.getResolveCoincidentTopology()?t.renderable.getCoincidentTopologyPolygonOffsetParameters():null},e.render=function(){var n=t.openGLImageSlice.getRenderable(),r=t.openGLRenderer.getRenderable();e.renderPiece(r,n)},e.buildShaders=function(t,n,r){e.getShaderTemplate(t,n,r),e.replaceShaderValues(t,n,r)},e.getShaderTemplate=function(e,t,n){e.Vertex=uc.a,e.Fragment=fc.a,e.Geometry=""},e.replaceShaderValues=function(n,r,a){var o=n.Vertex,i=n.Fragment;o=_l.substitute(o,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,o=_l.substitute(o,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;var s=t.openGLTexture.getComponents(),l=a.getProperty().getIndependentComponents(),c=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;"];if(l){for(var u=1;un.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||gc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),t.context.FALSE)||gc("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());var o=t.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",o);var i=t.openGLTexture.getComponents(),s=a.getProperty().getIndependentComponents();if(s)for(var l=0;l1?1:0;var j=o.getData(),W=null;if(D===mc.I){W=new j.constructor(k[2]*k[1]*l);for(var z=0,H=0;H2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Tc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLImageSlice"),e.buildPass=function(n){if(t.renderable&&t.renderable.getVisibility()&&n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaqueZBufferPass=function(t){e.traverseOpaquePass(t)},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.traverse(n)}),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.opaqueZBufferPass=function(t,n){return e.opaquePass(t,n)},e.opaquePass=function(n,r){n&&(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0))},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0)},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var Sc=f.d(Cc,"vtkOpenGLImageSlice");al("vtkImageSlice",Sc);var Pc={};function wc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.normalMatrix=new Float64Array(9),t.MCWCMatrix=new Float64Array(16),f.i(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementVolumeCount()}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.volumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1)):t.context.depthMask(!0))},e.getKeyMatrices=function(){return t.renderable.getMTime()>t.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.MCWCMatrix,t.renderable.getMatrix()),o.transpose(t.MCWCMatrix,t.MCWCMatrix),t.renderable.getIsIdentity()?a.identity(t.normalMatrix):(a.fromMat4(t.normalMatrix,t.MCWCMatrix),a.invert(t.normalMatrix,t.normalMatrix)),t.keyMatrixTime.modified()),{mcwc:t.MCWCMatrix,normalMatrix:t.normalMatrix}}}(e,t)}var xc=f.d(wc,"vtkOpenGLVolume");al("vtkVolume",xc);var Oc={openGLRenderWindow:null,glFramebuffer:null,colorTexture:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function Mc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Oc,n),f.g(e,t),f.i(e,t,["colorTexture"]),function(e,t){t.classHierarchy.push("vtkFramebuffer"),e.getBothMode=function(){return t.context.FRAMEBUFFER},e.saveCurrentBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.saveCurrentBindings(n),e.saveCurrentBuffers(n)},e.saveCurrentBindings=function(e){var n=t.context;t.previousDrawBinding=n.getParameter(t.context.FRAMEBUFFER_BINDING),t.previousActiveFramebuffer=t.openGLRenderWindow.getActiveFramebuffer()},e.saveCurrentBuffers=function(e){},e.restorePreviousBindingsAndBuffers=function(t){var n=void 0!==t?t:e.getBothMode();e.restorePreviousBindings(n),e.restorePreviousBuffers(n)},e.restorePreviousBindings=function(e){var n=t.context;n.bindFramebuffer(n.FRAMEBUFFER,t.previousDrawBinding),t.openGLRenderWindow.setActiveFramebuffer(t.previousActiveFramebuffer)},e.restorePreviousBuffers=function(e){},e.bind=function(){t.context.bindFramebuffer(t.context.FRAMEBUFFER,t.glFramebuffer),t.colorTexture&&t.colorTexture.bind(),t.openGLRenderWindow.setActiveFramebuffer(e)},e.create=function(e,n){t.glFramebuffer=t.context.createFramebuffer(),t.glFramebuffer.width=e,t.glFramebuffer.height=n},e.setColorBuffer=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.context,a=r.COLOR_ATTACHMENT0;if(n>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");a+=n}t.colorTexture=e,r.framebufferTexture2D(r.FRAMEBUFFER,a,r.TEXTURE_2D,e.getHandle(),0)},e.removeColorBuffer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=t.context,r=n.COLOR_ATTACHMENT0;if(e>0){if(!t.openGLRenderWindow.getWebgl2())return void f.l("Using multiple framebuffer attachments requires WebGL 2");r+=e}n.framebufferTexture2D(n.FRAMEBUFFER,r,n.TEXTURE_2D,null,0)},e.setDepthBuffer=function(e){if(t.openGLRenderWindow.getWebgl2()){var n=t.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,e.getHandle(),0)}else f.l("Attaching depth buffer textures to fbo requires WebGL 2")},e.removeDepthBuffer=function(){if(t.openGLRenderWindow.getWebgl2()){var e=t.context;e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,null,0)}else f.l("Attaching depth buffer textures to framebuffers requires WebGL 2")},e.getGLFramebuffer=function(){return t.glFramebuffer},e.setOpenGLRenderWindow=function(n){t.openGLRenderWindow!==n&&(e.releaseGraphicsResources(),t.openGLRenderWindow=n,t.context=null,n&&(t.context=t.openGLRenderWindow.getContext()))},e.releaseGraphicsResources=function(){t.glFramebuffer&&t.context.deleteFramebuffer(t.glFramebuffer),t.colorTexture&&t.colorTexture.releaseGraphicsResources()},e.getSize=function(){var e=[0,0];return null!==t.glFramebuffer&&(e[0]=t.glFramebuffer.width,e[1]=t.glFramebuffer.height),e},e.populateFramebuffer=function(){e.bind();var n=t.context,r=sc.newInstance();r.setOpenGLRenderWindow(t.openGLRenderWindow),r.setMinificationFilter(ql.LINEAR),r.setMagnificationFilter(ql.LINEAR),r.create2DFromRaw(t.glFramebuffer.width,t.glFramebuffer.height,4,u.UNSIGNED_CHAR,null),e.setColorBuffer(r),t.depthTexture=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,t.depthTexture),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,t.glFramebuffer.width,t.glFramebuffer.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,t.depthTexture)}}(e,t)}var Ac={newInstance:f.d(Mc,"vtkFramebuffer"),extend:Mc},Ic=n(10),Rc=n.n(Ic),Ec=n(11),Dc=n.n(Ec);function Vc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nc=f.m,Bc=f.l;function kc(e,t){if(e.length!==t.length)return!1;for(var n=0;n0&&(o=_l.substitute(o,"//VTK::vtkProportionalComponents",c.join("\n")).result)}var d=t.currentInput.getExtent(),f=t.currentInput.getSpacing(),p=new Float64Array(3);i.set(p,(d[1]-d[0])*f[0],(d[3]-d[2])*f[1],(d[5]-d[4])*f[2]);var g=i.length(p)/t.renderable.getSampleDistance();o=_l.substitute(o,"//VTK::MaximumSamplesValue","".concat(Math.ceil(g))).result,o=_l.substitute(o,"//VTK::LightComplexity","#define vtkLightComplexity ".concat(t.lastLightComplexity)).result,t.gopacity=a.getProperty().getUseGradientOpacity(0);for(var m=1;l&&!t.gopacity&&m0&&(a=_l.substitute(a,"//VTK::Light::Dec",["uniform vec3 lightColor".concat(o,";"),"uniform vec3 lightDirectionVC".concat(o,"; // normalized"),"uniform vec3 lightHalfAngleVC".concat(o,"; // normalized"),"//VTK::Light::Dec"],!1).result,a=_l.substitute(a,"//VTK::Light::Impl",[" float df = abs(dot(normal.rgb, -lightDirectionVC".concat(o,"));")," diffuse += ((df".concat("",") * lightColor").concat(o,");")," float sf = pow( abs(dot(lightHalfAngleVC".concat(o,",normal.rgb)), vSpecularPower);")," specular += ((sf".concat("",") * lightColor").concat(o,");")," //VTK::Light::Impl"],!1).result,o++)})}e.Fragment=a},e.replaceShaderClippingPlane=function(e,n,r){var a=e.Fragment;if(t.renderable.getClippingPlanes().length>0){var o=t.renderable.getClippingPlanes().length;a=_l.substitute(a,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","//VTK::ClipPlane::Dec"],!1).result,a=_l.substitute(a,"//VTK::ClipPlane::Impl",["for(int i = 0; i < ".concat(o,"; i++) {")," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}e.Fragment=a},e.getNeedToRebuildShaders=function(n,r,a){var o=0;a.getProperty().getShade()&&t.renderable.getBlendMode()===ks.COMPOSITE_BLEND&&(o=0,t.numberOfLights=0,r.getLights().forEach(function(e){e.getSwitch()>0&&(t.numberOfLights++,0===o&&(o=1)),1===o&&(t.numberOfLights>1||1!==e.getIntensity()||!e.lightTypeIsHeadLight())&&(o=2),o<3&&e.getPositional()&&(o=3)}));var s=!1;t.lastLightComplexity!==o&&(t.lastLightComplexity=o,s=!0);var l=t.scalarTexture.getComponents(),c=a.getProperty().getIndependentComponents(),u=!1,d=[];if(c){for(var f=0;f0&&(u=!0)}var p=t.currentInput.getExtent(),g=t.currentInput.getSpacing(),m=new Float64Array(3);i.set(m,(p[1]-p[0])*g[0],(p[3]-p[2])*g[1],(p[5]-p[4])*g[2]);var v=i.length(m)/t.renderable.getSampleDistance(),h={interpolationType:a.getProperty().getInterpolationType(),useLabelOutline:a.getProperty().getUseLabelOutline(),numComp:l,usesProportionalComponents:u,iComps:c,maxSamples:v,useGradientOpacity:a.getProperty().getUseGradientOpacity(0),blendMode:t.renderable.getBlendMode(),averageIPScalarMode:t.renderable.getAverageIPScalarRange(),proportionalComponents:d};return t.previousState&&t.previousState.interpolationType===h.interpolationType&&t.previousState.useLabelOutline===h.useLabelOutline&&t.previousState.numComp===h.numComp&&t.previousState.usesProportionalComponents===h.usesProportionalComponents&&t.previousState.iComps===h.iComps&&t.previousState.maxSamples===h.maxSamples&&t.previousState.useGradientOpacity===h.useGradientOpacity&&t.previousState.blendMode===h.blendMode&&kc(t.previousState.averageIPScalarMode,h.averageIPScalarMode)&&kc(t.previousState.proportionalComponents,h.proportionalComponents)?!!(0===n.getProgram()||s||t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||!!t.lastZBufferTexture!=!!t.zBufferTexture||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(o.isAttributeUsed("vertexDC")&&(n.getVAO().addAttributeArray(o,n.getCABO(),"vertexDC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in shader VAO.")),n.getAttributeUpdateTime().modified()),o.setUniformi("texture1",t.scalarTexture.getTextureUnit()),o.setUniformf("sampleDistance",t.renderable.getSampleDistance()),null!==t.zBufferTexture){o.setUniformi("zBufferTexture",t.zBufferTexture.getTextureUnit());var i=e.getRenderTargetSize();o.setUniformf("vpWidth",i[0]),o.setUniformf("vpHeight",i[1])}},e.setCameraShaderParameters=function(n,r,s){var l=t.openGLCamera.getKeyMatrices(r),c=t.openGLVolume.getKeyMatrices();o.multiply(t.modelToView,l.wcvc,c.mcwc);var u=n.getProgram(),d=t.openGLCamera.getRenderable(),f=d.getClippingRange();u.setUniformf("camThick",f[1]-f[0]),u.setUniformf("camNear",f[0]),u.setUniformf("camFar",f[1]);for(var p=t.currentInput.getBounds(),g=t.currentInput.getDimensions(),m=new Float64Array(3),v=new Float64Array(3),h=1,y=-1,b=1,T=-1,C=0;C<8;++C){if(i.set(m,p[C%2],p[2+Math.floor(C/2)%2],p[4+Math.floor(C/4)]),i.transformMat4(m,m,t.modelToView),!d.getParallelProjection()){i.normalize(v,m);var S=-f[0]/m[2];i.scale(m,v,S)}i.transformMat4(m,m,l.vcpc),h=Math.min(m[0],h),y=Math.max(m[0],y),b=Math.min(m[1],b),T=Math.max(m[1],T)}u.setUniformf("dcxmin",h),u.setUniformf("dcxmax",y),u.setUniformf("dcymin",b),u.setUniformf("dcymax",T),u.isUniformUsed("cameraParallel")&&u.setUniformi("cameraParallel",d.getParallelProjection());var P=t.currentInput.getExtent(),w=t.currentInput.getSpacing(),x=new Float64Array(3);i.set(x,(P[1]-P[0]+1)*w[0],(P[3]-P[2]+1)*w[1],(P[5]-P[4]+1)*w[2]),u.setUniform3f("vSpacing",w[0],w[1],w[2]),i.set(m,P[0],P[2],P[4]),t.currentInput.indexToWorldVec3(m,m),i.transformMat4(m,m,t.modelToView),u.setUniform3f("vOriginVC",m[0],m[1],m[2]);var O=t.currentInput.getIndexToWorld();o.multiply(t.idxToView,t.modelToView,O),a.multiply(t.idxNormalMatrix,l.normalMatrix,c.normalMatrix),a.multiply(t.idxNormalMatrix,t.idxNormalMatrix,t.currentInput.getDirection());var M=i.length(x)/t.renderable.getSampleDistance();M>t.renderable.getMaximumSamplesPerRay()&&Nc("The number of steps required ".concat(Math.ceil(M)," is larger than the\n specified maximum number of steps ").concat(t.renderable.getMaximumSamplesPerRay(),".\n Please either change the\n volumeMapper sampleDistance or its maximum number of samples."));var A=new Float64Array(3);if(i.set(A,1,1,1),i.divide(A,A,x),u.setUniform3f("vVCToIJK",A[0],A[1],A[2]),u.setUniform3i("volumeDimensions",g[0],g[1],g[2]),!t.openGLRenderWindow.getWebgl2()){var I=t.scalarTexture.getVolumeInfo();u.setUniformf("texWidth",t.scalarTexture.getWidth()),u.setUniformf("texHeight",t.scalarTexture.getHeight()),u.setUniformi("xreps",I.xreps),u.setUniformi("xstride",I.xstride),u.setUniformi("ystride",I.ystride)}for(var R=new Float64Array(3),E=new Float64Array(3),D=0;D<6;++D){switch(D){default:case 0:i.set(R,1,0,0),i.set(E,P[1],P[3],P[5]);break;case 1:i.set(R,-1,0,0),i.set(E,P[0],P[2],P[4]);break;case 2:i.set(R,0,1,0),i.set(E,P[1],P[3],P[5]);break;case 3:i.set(R,0,-1,0),i.set(E,P[0],P[2],P[4]);break;case 4:i.set(R,0,0,1),i.set(E,P[1],P[3],P[5]);break;case 5:i.set(R,0,0,-1),i.set(E,P[0],P[2],P[4])}i.transformMat3(R,R,t.idxNormalMatrix),i.transformMat4(E,E,t.idxToView);var V=-1*i.dot(E,R);if(u.setUniform3f("vPlaneNormal".concat(D),R[0],R[1],R[2]),u.setUniformf("vPlaneDistance".concat(D),V),s.getProperty().getUseLabelOutline()){var L=t.currentInput.getWorldToIndex();u.setUniformMatrix("vWCtoIDX",L),o.invert(t.projectionToWorld,l.wcpc),u.setUniformMatrix("PCWCMatrix",t.projectionToWorld);var N=e.getRenderTargetSize();u.setUniformf("vpWidth",N[0]),u.setUniformf("vpHeight",N[1])}}switch(o.invert(t.projectionToView,l.vcpc),u.setUniformMatrix("PCVCMatrix",t.projectionToView),t.lastLightComplexity){default:case 0:break;case 1:case 2:case 3:var B=0,k=[];r.getLights().forEach(function(e){if(e.getSwitch()>0){var t=e.getColor(),n=e.getIntensity();k[0]=t[0]*n,k[1]=t[1]*n,k[2]=t[2]*n,u.setUniform3fArray("lightColor".concat(B),k);var r=e.getDirection();i.set(R,r[0],r[1],r[2]),i.transformMat3(R,R,l.normalMatrix),u.setUniform3f("lightDirectionVC".concat(B),R[0],R[1],R[2]);var a=[-.5*R[0],-.5*R[1],-.5*(R[2]-1)];u.setUniform3fArray("lightHalfAngleVC".concat(B),a),B++}})}},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram();a.setUniformi("ctexture",t.colorTexture.getTextureUnit()),a.setUniformi("otexture",t.opacityTexture.getTextureUnit()),a.setUniformi("jtexture",t.jitterTexture.getTextureUnit());var o=t.scalarTexture.getVolumeInfo(),i=r.getProperty(),s=t.scalarTexture.getComponents(),l=r.getProperty().getIndependentComponents();if(l&&s>=2)for(var c=0;c0&&(a.setUniformf("vAmbient",i.getAmbient()),a.setUniformf("vDiffuse",i.getDiffuse()),a.setUniformf("vSpecular",i.getSpecular()),a.setUniformf("vSpecularPower",i.getSpecularPower()))},e.getClippingPlaneShaderParameters=function(e,n,r){if(t.renderable.getClippingPlanes().length>0){for(var a=t.openGLCamera.getKeyMatrices(n),o=[],s=[],l=t.renderable.getClippingPlanes(),c=l.length,u=0;u1.43){var e=t.framebuffer.getSize();return[t.fvp[0]*e[0],t.fvp[1]*e[1]]}return t.openGLRenderWindow.getFramebufferSize()},e.renderPieceStart=function(n,r){if(t.renderable.getAutoAdjustSampleDistances()){var a=n.getVTKWindow().getInteractor(),o=a.getLastFrameTime();if(t.avgFrameTime=.97*t.avgFrameTime+.03*o,t.avgWindowArea=.97*t.avgWindowArea+.03/(t.lastXYF*t.lastXYF),n.getVTKWindow().getInteractor().isAnimating()){var i=Math.sqrt(t.avgFrameTime*a.getDesiredUpdateRate()/t.avgWindowArea);i>10&&(i=10),t.targetXYF=i}else t.targetXYF=Math.sqrt(t.avgFrameTime*a.getStillUpdateRate()/t.avgWindowArea);t.targetXYF<1.53&&t.targetXYF>1.33&&(t.targetXYF=t.lastXYF),Math.abs(1-t.targetXYF/t.lastXYF)<.1&&(t.targetXYF=t.lastXYF),t.lastXYF=t.targetXYF}else t.lastXYF=t.renderable.getImageSampleDistance();t.lastXYF<=1.43&&(t.lastXYF=1);var s=t.lastXYF,l=t.openGLRenderWindow.getFramebufferSize();if(s>1.43){if(t.framebuffer.saveCurrentBindingsAndBuffers(),null===t.framebuffer.getGLFramebuffer())t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer();else{var c=t.framebuffer.getSize();c[0]===Math.floor(.7*l[0])&&c[1]===Math.floor(.7*l[1])||(t.framebuffer.create(Math.floor(.7*l[0]),Math.floor(.7*l[1])),t.framebuffer.populateFramebuffer())}t.framebuffer.bind();var u=t.context;u.clearColor(0,0,0,0),u.colorMask(!0,!0,!0,!0),u.clear(u.COLOR_BUFFER_BIT),u.viewport(0,0,l[0]/s,l[1]/s),t.fvp=[Math.floor(l[0]/s)/Math.floor(.7*l[0]),Math.floor(l[1]/s)/Math.floor(.7*l[1])]}t.context.disable(t.context.DEPTH_TEST),e.updateBufferObjects(n,r),r.getProperty().getInterpolationType()===Cs.NEAREST?(t.scalarTexture.setMinificationFilter(ql.NEAREST),t.scalarTexture.setMagnificationFilter(ql.NEAREST)):(t.scalarTexture.setMinificationFilter(ql.LINEAR),t.scalarTexture.setMagnificationFilter(ql.LINEAR)),t.lastBoundBO=null,null!==t.zBufferTexture&&t.zBufferTexture.activate()},e.renderPieceDraw=function(n,r){var a=t.context;t.scalarTexture.activate(),t.opacityTexture.activate(),t.colorTexture.activate(),t.jitterTexture.activate(),e.updateShaders(t.tris,n,r),a.drawArrays(a.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.scalarTexture.deactivate(),t.colorTexture.deactivate(),t.opacityTexture.deactivate(),t.jitterTexture.deactivate()},e.renderPieceFinish=function(e,n){if(null!==t.zBufferTexture&&t.zBufferTexture.deactivate(),t.lastXYF>1.43){if(t.framebuffer.restorePreviousBindingsAndBuffers(),null===t.copyShader){t.copyShader=t.openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join("\n"),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join("\n"),"");var r=t.copyShader;t.copyVAO=Wl.newInstance(),t.copyVAO.setOpenGLRenderWindow(t.openGLRenderWindow),t.tris.getCABO().bind(),t.copyVAO.addAttributeArray(r,t.tris.getCABO(),"vertexDC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Bc("Error setting vertexDC in copy shader VAO.")}else t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.copyShader);var a=t.openGLRenderWindow.getFramebufferSize();t.context.viewport(0,0,a[0],a[1]);var o=t.framebuffer.getColorTexture();o.activate(),t.copyShader.setUniformi("texture",o.getTextureUnit()),t.copyShader.setUniform2f("tfactor",t.fvp[0],t.fvp[1]);var i=t.context;i.blendFuncSeparate(i.ONE,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),o.deactivate(),i.blendFuncSeparate(i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA)}},e.renderPiece=function(n,r){e.invokeEvent({type:"StartEvent"}),t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent({type:"EndEvent"}),t.currentInput?(e.renderPieceStart(n,r),e.renderPieceDraw(n,r),e.renderPieceFinish(n,r)):Bc("No input!")},e.computeBounds=function(n,r){e.getInput()?t.bounds=e.getInput().getBounds():we(t.Bounds)},e.updateBufferObjects=function(t,n){e.getNeedToRebuildBufferObjects(t,n)&&e.buildBufferObjects(t,n)},e.getNeedToRebuildBufferObjects=function(n,r){return t.VBOBuildTime.getMTime()1?1:-1,I[3*R+2]=-1;var E=new Uint16Array(8);E[0]=3,E[1]=0,E[2]=1,E[3]=3,E[4]=3,E[5]=0,E[6]=3,E[7]=2;var D=Qe.newInstance({numberOfComponents:3,values:I});D.setName("points");var V=Qe.newInstance({numberOfComponents:1,values:E});t.tris.getCABO().createVBO(V,"polys",Ol.SURFACE,{points:D,cellOffset:0})}t.VBOBuildTime.modified()}}}}var Gc={context:null,VBOBuildTime:null,scalarTexture:null,scalarTextureString:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lastLightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function _c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gc,n),Js.extend(e,t,n),t.VBOBuildTime={},f.g(t.VBOBuildTime,{mtime:0}),t.tris=Kl.newInstance(),t.scalarTexture=sc.newInstance(),t.opacityTexture=sc.newInstance(),t.colorTexture=sc.newInstance(),t.jitterTexture=sc.newInstance(),t.jitterTexture.setWrapS(Xl.REPEAT),t.jitterTexture.setWrapT(Xl.REPEAT),t.framebuffer=Ac.newInstance(),t.idxToView=o.identity(new Float64Array(16)),t.idxNormalMatrix=a.identity(new Float64Array(9)),t.modelToView=o.identity(new Float64Array(16)),t.projectionToView=o.identity(new Float64Array(16)),t.projectionToWorld=o.identity(new Float64Array(16)),f.i(e,t,["context"]),Fc(e,t)}var Uc=f.d(_c,"vtkOpenGLVolumeMapper");al("vtkVolumeMapper",Uc);var jc=f.k;var Wc={};function zc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wc,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent();var a=t.openGLRenderer.getAspectRatio(),o=t.openGLRenderer?t.openGLRenderer.getRenderable().getActiveCamera():null,i=t.openGLRenderer.getTiledSizeAndOrigin(),s=null;if(t.renderable.getUseZValues()){var l=r.getZBufferTexture(),c=Math.floor(l.getWidth()),u=Math.floor(l.getHeight()),d=t.openGLRenderWindow.getContext();l.bind();var f=r.getFramebuffer();f?f.saveCurrentBindingsAndBuffers():jc("No framebuffer to save/restore");var p=d.createFramebuffer();d.bindFramebuffer(d.FRAMEBUFFER,p),d.framebufferTexture2D(d.FRAMEBUFFER,d.COLOR_ATTACHMENT0,d.TEXTURE_2D,l.getHandle(),0),d.checkFramebufferStatus(d.FRAMEBUFFER)===d.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(c*u*4),d.viewport(0,0,c,u),d.readPixels(0,0,c,u,d.RGBA,d.UNSIGNED_BYTE,s)),f&&f.restorePreviousBindingsAndBuffers(),d.deleteFramebuffer(p)}t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,s)},e.queryPass=function(e,n){e&&t.renderable.getUseZValues()&&n.requestDepth()}}(e,t)}var Hc=f.d(zc,"vtkOpenGLPixelSpaceCallbackMapper");al("vtkPixelSpaceCallbackMapper",Hc);var Kc=Object.create(null);function Xc(e,t){Kc[e]=t}var qc={};function Yc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qc,n),t.overrides=Kc,nl.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUViewNodeFactory")}(0,t)}f.a.newInstance(Yc,"vtkWebGPUViewNodeFactory");var Zc={keyMatrixTime:null,keyMatrices:null};function Qc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Zc,n),Js.extend(e,t,n),t.keyMatrixTime={},f.a.obj(t.keyMatrixTime),t.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)},f.a.setGet(e,t,["keyMatrixTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUCamera"),e.getKeyMatrices=function(n){var r=n.getRenderable(),a=n.getParent();if(Math.max(a.getMTime(),e.getMTime(),r.getMTime(),t.renderable.getMTime(),n.getStabilizedTime().getMTime())>t.keyMatrixTime.getMTime()){var i=t.renderable.getViewMatrix();o.copy(t.keyMatrices.normalMatrix,i),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.wcvc,i);var s=n.getStabilizedCenterByReference();o.translate(t.keyMatrices.scvc,t.keyMatrices.wcvc,s);var l=n.getAspectRatio(),c=t.renderable.getProjectionMatrix(l,-1,1);o.transpose(t.keyMatrices.vcpc,c),t.keyMatrices.vcpc[2]=.5*c[8]+.5*c[12],t.keyMatrices.vcpc[6]=.5*c[9]+.5*c[13],t.keyMatrices.vcpc[10]=.5*c[10]+.5*c[14],t.keyMatrices.vcpc[14]=.5*c[11]+.5*c[15],o.multiply(t.keyMatrices.scpc,t.keyMatrices.vcpc,t.keyMatrices.scvc),o.invert(t.keyMatrices.pcsc,t.keyMatrices.scpc),t.keyMatrixTime.modified()}return t.keyMatrices}}(e,t)}var $c=f.a.newInstance(Qc);Xc("vtkCamera",$c);var Jc={device:null,handle:null,name:null};function eu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jc,n),f.a.obj(e,t),t.bindables=[],t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle","sizeInBytes","usage"]),f.a.setGet(e,t,["name","device","arrayInformation","sourceTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUBindGroup"),e.addBindable=function(n){for(var r=0;rr?o:r}if(r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nu,n),f.a.obj(e,t),f.a.get(e,t,["lastCameraMTime"]),f.a.setGet(e,t,["device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderModule"),e.initialize=function(e,n){t.device=e,t.handle=t.device.getHandle().createShaderModule({code:n.getCode()})}}(e,t)}var au={newInstance:f.a.newInstance(ru,"vtkWebGPUShaderModule"),extend:ru};var ou={shaderModules:null,device:null,window:null};function iu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ou,n),t._shaderModules=new Map,f.a.obj(e,t),f.a.setGet(e,t,["device","window"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderCache"),e.getShaderModule=function(e){for(var n=e.getType(),r=e.getHash(),a=t._shaderModules.keys(),o=0;o3&&void 0!==arguments[3])||arguments[3],a=Array.isArray(n)?n.join("\n"):n,o=!1;-1!==e.search(t)&&(o=!0);var i="";r&&(i="g");var s=new RegExp(t,i);return{replace:o,result:e.replace(s,a)}}};var lu={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null};function cu(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lu,n),f.g(e,t),t.layouts=[],t.shaderDescriptions=[],f.b(e,t,["handle"]),f.i(e,t,["device","renderEncoder","topology","vertexState"]),function(e,t){t.classHierarchy.push("vtkWebGPUPipeline"),e.getShaderDescriptions=function(){return t.shaderDescriptions},e.initialize=function(e){var n=t.renderEncoder.getPipelineSettings();n.primitive.topology=t.topology,n.vertex=t.vertexState;for(var r=[],a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,du,n),t.outputNames=[],t.outputTypes=[],t.builtinOutputNames=[],t.builtinOutputTypes=[],t.builtinInputNames=[],t.builtinInputTypes=[],f.a.obj(e,t),f.a.setGet(e,t,["type","hash","code"]),f.a.getArray(e,t,["outputTypes","outputNames"]),function(e,t){t.classHierarchy.push("vtkWebGPUShaderDescription"),e.hasOutput=function(e){return t.outputNames.includes(e)},e.addOutput=function(e,n){t.outputTypes.push(e),t.outputNames.push(n)},e.addBuiltinOutput=function(e,n){t.builtinOutputTypes.push(e),t.builtinOutputNames.push(n)},e.addBuiltinInput=function(e,n){t.builtinInputTypes.push(e),t.builtinInputNames.push(n)},e.replaceShaderCode=function(e,n){var r=[],a=[];if(n&&r.push(n.getShaderCode()),e||t.builtinInputNames.length){var o=[];if(o.push("struct ".concat(t.type,"Input\n{")),e)for(var i=e.getOutputNamesByReference(),s=e.getOutputTypesByReference(),l=0;l1&&(o.push("};"),a=o,r[r.length-1]+=",",r.push("input: ".concat(t.type,"Input")))}if(r.length&&(t.code=su.substitute(t.code,"//VTK::IOStructs::Input",r).result),t.outputNames.length+t.builtinOutputNames.length){for(var u=["struct ".concat(t.type,"Output\n{")],d=0;d ".concat(t.type,"Output")]).result}t.code=su.substitute(t.code,"//VTK::IOStructs::Dec",a).result}}(e,t)}var pu={newInstance:f.a.newInstance(fu,"vtkWebGPUShaderDescription"),extend:fu};var gu={getByteStrideFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t=1;"x"===e[e.length-2]&&(t=e[e.length-1]);var n=1===t?e.length-1:e.length-3,r=Number(e[n]);return Number.isNaN(r)?(Object(f.l)("unknown format ".concat(e)),0):t*(5-r/2)},getNativeTypeFromBufferFormat:function(e){if(!e||e.length<5)return 0;var t;if("f"===e[0])t="Float";else if("s"===e[0])t="Int";else{if("u"!==e[0])return void Object(f.l)("unknown format ".concat(e));t="Uint"}var n=e.split("x")[0],r=Number(n[n.length-1]);if(!Number.isNaN(r))return t+=8*(5-r/2),t+="Array";Object(f.l)("unknown format ".concat(e))},getShaderTypeFromBufferFormat:function(e){var t;if("f"===e[0]||"n"===e[1])t="f32";else if("s"===e[0]&&"i"===e[1])t="i32";else{if("u"!==e[0]||"i"!==e[1])return void Object(f.l)("unknown format ".concat(e));t="u32"}var n=1;return"x"===e[e.length-2]&&(n=Number(e[e.length-1])),4===n?"vec4<".concat(t,">"):3===n?"vec3<".concat(t,">"):2===n?"vec2<".concat(t,">"):t},getByteStrideFromShaderFormat:function(e){if(!e)return 0;var t=1;return"vec"===e.substring(0,3)?t=e[3]:"mat"===e.substring(0,3)&&(t=e[3]*e[5]),4*t},getNativeTypeFromShaderFormat:function(e){if(e)return e.includes("f32")?"Float32Array":e.includes("i32")?"Int32Array":e.includes("u32")?"Uint32Array":void Object(f.l)("unknown format ".concat(e))}};function mu(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vu,n),f.g(e,t),t.bindingDescriptions=[],t.attributeDescriptions=[],t.inputs=[],f.i(e,t,["created","device","handle"]),function(e,t){t.classHierarchy.push("vtkWebGPUVertexInput"),e.addBuffer=function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"vertex",a=n;Array.isArray(a)||(a=[a]);for(var o=0;ot.names[0]?1:0})},e.removeBufferIfPresent=function(e){for(var n=0;n0&&(e+=",\n"),e="".concat(e," [[location(").concat(n,")]] ").concat(t.inputs[r].names[a]," : ").concat(i),n++}return e},e.getVertexInputInformation=function(){var e={};if(t.inputs.length){for(var n=[],r=0,a=0;a = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",Tu="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n // var computedColor:vec4 = vec4(1.0,0.5,0.5,1.0);\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Cu={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 Su(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cu,n),f.a.obj(e,t),t.textureViews=[],t.vertexInput=yu.newInstance(),t.bindGroup=tu.newInstance(),t.bindGroup.setName("mapperBG"),t.fragmentShaderTemplate=t.fragmentShaderTemplate||Tu,t.vertexShaderTemplate=t.vertexShaderTemplate||bu,t.shaderReplacements=new Map,f.a.get(e,t,["vertexInput"]),f.a.setGet(e,t,["device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),function(e,t){t.classHierarchy.push("vtkWebGPUMapperHelper"),e.generateShaderDescriptions=function(n,r,a){var o=pu.newInstance({type:"vertex",hash:n,code:t.vertexShaderTemplate}),i=pu.newInstance({type:"fragment",hash:n,code:t.fragmentShaderTemplate}),s=r.getShaderDescriptions();s.push(o),s.push(i);for(var l=t.vertexShaderTemplate+t.fragmentShaderTemplate,c=new RegExp("//VTK::[^:]*::","g"),u=l.match(c).filter(function(e,t,n){return n.indexOf(e)===t}).map(function(e){return"replaceShader".concat(e.substring(7,e.length-2))}),d=0;d","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition),e.replaceShaderTCoord=function(e,t,n){t.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},t.shaderReplacements.set("replaceShaderTCoord",e.replaceShaderTCoord),e.addTextureView=function(e){t.textureViews.includes(e)||t.textureViews.push(e)},e.renderForPipeline=function(e){var n=e.getBoundPipeline();e.activateBindGroup(t.bindGroup),n.bindVertexInput(e,t.vertexInput),e.draw(t.numberOfVertices,t.numberOfInstances,0,0)},e.registerToDraw=function(){t.pipeline&&t.WebGPURenderer.registerPipelineCallback(t.pipeline,e.renderForPipeline)},e.render=function(n,r){e.build(n,r),n.setPipeline(t.pipeline),t.WebGPURenderer&&t.WebGPURenderer.bindUBO(n),e.renderForPipeline(n)},e.build=function(n,r){t.renderEncoder=n,t.pipeline=r.getPipeline(t.pipelineHash),t.UBO&&t.bindGroup.addBindable(t.UBO),t.SSBO&&t.bindGroup.addBindable(t.SSBO);for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wu,n),Pu.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUFullScreenQuad"),e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);"]).result,r.setCode(a)},t.shaderReplacements.set("replaceShaderPosition",e.replaceShaderPosition);var n=e.build;e.build=function(e,r){var a=r.getBufferManager().getFullScreenQuadBuffer();t.vertexInput.addBuffer(a,["vertexBC"]),t.numberOfVertices=6,n(e,r)}}(e,t)}var Ou={newInstance:f.a.newInstance(xu,"vtkWebGPUFullScreenQuad"),extend:xu},Mu={BufferUsage:{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},PrimitiveTypes:{Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6}};function Au(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ru=["getMappedRange","mapAsync","unmap"];function Eu(e,t){t.classHierarchy.push("vtkWebGPUBuffer"),e.create=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e,usage:n}),t.sizeInBytes=e,t.usage=n},e.write=function(e){!function(e,t,n,r){var a=r.byteLength,o=e.createBuffer({size:a,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),i=o.getMappedRange(0,a);new Uint8Array(i).set(new Uint8Array(r)),o.unmap();var s=e.createCommandEncoder();s.copyBufferToBuffer(o,0,t,n,a);var l=s.finish();e.queue.submit([l]),o.destroy()}(t.device.getHandle(),t.handle,0,e.buffer)},e.createAndWrite=function(e,n){t.handle=t.device.getHandle().createBuffer({size:e.byteLength,usage:n,mappedAtCreation:!0}),t.sizeInBytes=e.byteLength,t.usage=n,new Uint8Array(t.handle.getMappedRange()).set(new Uint8Array(e.buffer)),t.handle.unmap()};for(var n=function(n){e[Ru[n]]=function(){var e;return(e=t.handle)[Ru[n]].apply(e,arguments)}},r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Du,n),f.a.obj(e,t),f.a.get(e,t,["handle","sizeInBytes","usage"]),f.a.setGet(e,t,["strideInBytes","device","arrayInformation","sourceTime"]),Eu(e,t)}var Lu=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,_u,n),f.a.obj(e,t),f.a.setGet(e,t,["lighting","interpolation","ambient","diffuse","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation"]),f.a.setGetArray(e,t,["ambientColor","specularColor","diffuseColor","edgeColor"],3),function(e,t){t.classHierarchy.push("vtkProperty"),e.setColor=function(n,r,a){Array.isArray(n)?t.color[0]===n[0]&&t.color[1]===n[1]&&t.color[2]===n[2]||(t.color[0]=n[0],t.color[1]=n[1],t.color[2]=n[2],e.modified()):t.color[0]===n&&t.color[1]===r&&t.color[2]===a||(t.color[0]=n,t.color[1]=r,t.color[2]=a,e.modified()),e.setDiffuseColor(t.color),e.setAmbientColor(t.color),e.setSpecularColor(t.color)},e.computeCompositeColor=Gu("ComputeCompositeColor"),e.getColor=function(){var e=0;t.ambient+t.diffuse+t.specular>0&&(e=1/(t.ambient+t.diffuse+t.specular));for(var n=0;n<3;n++)t.color[n]=e*(t.ambient*t.ambientColor[n]+t.diffuse*t.diffuseColor[n]+t.specular*t.specularColor[n]);return[].concat(t.color)},e.addShaderVariable=Gu("AddShaderVariable"),e.setInterpolationToFlat=function(){return e.setInterpolation(Fu.FLAT)},e.setInterpolationToGouraud=function(){return e.setInterpolation(Fu.GOURAUD)},e.setInterpolationToPhong=function(){return e.setInterpolation(Fu.PHONG)},e.getInterpolationAsString=function(){return f.a.enumToString(Fu,t.interpolation)},e.setRepresentationToWireframe=function(){return e.setRepresentation(ku.WIREFRAME)},e.setRepresentationToSurface=function(){return e.setRepresentation(ku.SURFACE)},e.setRepresentationToPoints=function(){return e.setRepresentation(ku.POINTS)},e.getRepresentationAsString=function(){return f.a.enumToString(ku,t.representation)}}(e,t)}var ju=function(e){for(var t=1;t1?2*(e-1):0},polysToWireframe:function(e,t){return e>2?2*e:0},stripsToWireframe:function(e,t){return e>2?4*e-6:0},polysToSurface:function(e,t){return e>2?3*(e-2):0},stripsToSurface:function(e,t,n){return numPoints>2?3*(e-2):0}};function $u(e){switch(e){case Xu.Points:return"points";case Xu.Lines:return"lines";case Xu.Triangles:return"polys";case Xu.TriangleStrips:return"strips";default:return""}}function Ju(e,t,n){var r=null;r=t===qu.POINTS||"points"===n?Qu.anythingToPoints:t===qu.WIREFRAME||"lines"===n?Qu["".concat(n,"ToWireframe")]:Qu["".concat(n,"ToSurface")];for(var a=e.getData(),o=a.length,i=0,s=0;s2)for(var a=0;a2){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nd,n),f.g(e,t),t.buffers=new WeakMap,f.i(e,t,["device"]),td(e,t)}var ad=zu(zu({newInstance:f.d(rd),extend:rd},{}),Mu);function od(e){return function(e){if(Array.isArray(e))return id(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return id(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return id(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function id(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cd,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"uniform"}},t.sendTime={},f.a.obj(t.sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.sendDirty=!0,t.sortDirty=!0,f.a.get(e,t,["binding","bindGroupTime"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUUniformBuffer"),e.addEntry=function(e,n){t._bufferEntryNames.has(e)?ld("entry named ".concat(e," already exists")):(t.sortDirty=!0,t._bufferEntryNames.set(e,t.bufferEntries.length),t.bufferEntries.push({name:e,type:n,sizeInBytes:gu.getByteStrideFromShaderFormat(n),offset:-1,nativeType:gu.getNativeTypeFromShaderFormat(n),packed:!1}))},e.sortBufferEntries=function(){if(t.sortDirty){for(var e=0,n=[],r=0;r4&&(C.packed=!0,C.offset=e,n.push(C),e+=C.sizeInBytes)}for(var S=0;S ").concat(t.name,": ").concat(t.name,"Struct;")),a.join("\n")}}(e,t)}var dd={newInstance:f.a.newInstance(ud,"vtkWebGPUUniformBuffer"),extend:ud},fd=f.k,pd="\n//VTK::Renderer::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output: fragmentOutput;\n\n var computedColor: vec4 = mapperUBO.BackgroundColor;\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var gd={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gd,n),Js.extend(e,t,n),t.UBO=dd.newInstance(),t.UBO.setName("rendererUBO"),t.UBO.addEntry("WCVCMatrix","mat4x4"),t.UBO.addEntry("SCPCMatrix","mat4x4"),t.UBO.addEntry("PCSCMatrix","mat4x4"),t.UBO.addEntry("SCVCMatrix","mat4x4"),t.UBO.addEntry("VCPCMatrix","mat4x4"),t.UBO.addEntry("WCVCNormals","mat4x4"),t.UBO.addEntry("cameraParallel","u32"),t.bindGroup=tu.newInstance(),t.bindGroup.setName("rendererBG"),t.bindGroup.addBindable(t.UBO),t.tmpMat4=o.identity(new Float64Array(16)),t.stabilizedTime={},f.g(t.stabilizedTime,{mtime:0}),f.b(e,t,["bindGroup","stabilizedTime"]),f.c(e,t,["stabilizedCenter"]),f.i(e,t,["renderEncoder","selector","suppressClear","UBO"]),function(e,t){t.classHierarchy.push("vtkWebGPURenderer"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.renderable.isActiveCameraCreated()||t.renderable.resetCamera(),e.updateLights(),e.prepareNodes(),e.addMissingNode(t.renderable.getActiveCamera()),e.addMissingNodes(t.renderable.getViewPropsWithNestedProps()),e.removeUnusedNodes(),e.updateStabilizedMatrix()}},e.updateStabilizedMatrix=function(){var e=t.renderable.getActiveCamera(),n=e.getClippingRange(),r=e.getPositionByReference(),a=e.getDirectionOfProjectionByReference(),o=[],s=[];i.scale(s,a,.5*(n[0]+n[1])),i.add(o,r,s),i.sub(s,o,t.stabilizedCenter),i.len(s)/(n[1]-n[0])>t.recenterThreshold&&(t.stabilizedCenter=o,t.stabilizedTime.modified())},e.updateLights=function(){for(var e=0,n=t.renderable.getLightsByReference(),r=0;r0&&e++;return e||(fd("No lights are on, creating one."),t.renderable.createLight()),e},e.registerPipelineCallback=function(e,n){for(var r=0;ra||e.getMTime()>a||n.getMTime()>a||t.renderable.getMTime()>a){var o=r.getKeyMatrices(e);t.UBO.setArray("WCVCMatrix",o.wcvc),t.UBO.setArray("SCPCMatrix",o.scpc),t.UBO.setArray("PCSCMatrix",o.pcsc),t.UBO.setArray("SCVCMatrix",o.scvc),t.UBO.setArray("VCPCMatrix",o.vcpc),t.UBO.setArray("WCVCNormals",o.normalMatrix),t.UBO.setValue("cameraParallel",n.getParallelProjection());var i=t.parent.getDevice();t.UBO.sendIfNeeded(i)}},e.scissorAndViewport=function(t){var n=e.getYInvertedTiledSizeAndOrigin();t.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),t.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},e.bindUBO=function(e){e.activateBindGroup(t.bindGroup)},e.opaquePass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder()),e.updateUBO();else{e.scissorAndViewport(t.renderEncoder),e.clear();for(var r=0;r"),t.clearFSQ.setUBO(n)}var r=t.renderable.getBackgroundByReference();t.clearFSQ.getUBO().setArray("BackgroundColor",r),t.clearFSQ.getUBO().sendIfNeeded(e),t.clearFSQ.render(t.renderEncoder,e)}},e.translucentPass=function(n){if(n)t.pipelineCallbacks=[],t.renderEncoder.begin(t.parent.getCommandEncoder());else{e.scissorAndViewport(t.renderEncoder);for(var r=0;rn[2]-n[0]&&(l=n[2]-n[0]),c>n[3]-n[1]&&(c=n[3]-n[1]);var u=t.parent.normalizedDisplayToDisplay(l,c),d=Math.round(u[0])-i,f=Math.round(u[1])-s;return d<0&&(d=0),f<0&&(f=0),{usize:d,vsize:f,lowerLeftU:i,lowerLeftV:s}},e.getPropFromID=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hd,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),function(e,t){t.classHierarchy.push("vtkWebGPUVolume"),e.buildPass=function(n){t.renderable&&t.renderable.getVisibility()&&n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.queryPass=function(n,r){if(n){if(!t.renderable||!t.renderable.getVisibility())return;var a=t.renderable.getMapper().getBounds();if(!a||6!==a.length||a[0]>a[1])return;r.addVolume(e)}},e.getBoundingCubePoints=function(e,n){for(var r=t.renderable.getMapper().getBounds(),a=t.renderable.getMatrix(),o=0,i=4;i<6;i++)for(var s=r[i],l=2;l<4;l++)for(var c=r[l],u=0;u<2;u++){var d=r[u],f=n+3*o;e[f++]=a[0]*d+a[1]*c+a[2]*s+a[3],e[f++]=a[4]*d+a[5]*c+a[6]*s+a[7],e[f++]=a[8]*d+a[9]*c+a[10]*s+a[11],o++}},e.traverseVolumePass=function(n){t.renderable&&t.renderable.getVisibility()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0].traverse(n),e.apply(n,!1))},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();o.transpose(t.keyMatrices.bcwc,n),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var bd=f.a.newInstance(yd,"vtkWebGPUVolume");Xc("vtkVolume",bd);var Td={};function Cd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Td,n),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),e.opaquePass=function(n,r){t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent();var a=t.WebGPURenderer.getAspectRatio(),o=t.WebGPURenderer?t.WebGPURenderer.getRenderable().getActiveCamera():null,i=t.WebGPURenderer.getTiledSizeAndOrigin();t.renderable.getUseZValues(),t.renderable.invokeCallback(t.renderable.getInputData(),o,a,i,null)}}(e,t)}var Sd=f.a.newInstance(Cd,"vtkWebGPUPixelSpaceCallbackMapper");Xc("vtkPixelSpaceCallbackMapper",Sd);var Pd={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function wd(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Pd,n),Js.extend(e,t,n),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor"),e.buildPass=function(n){if(n){t.openGLRenderWindow=e.getFirstAncestorOfType("vtkOpenGLRenderWindow"),t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.context=t.openGLRenderWindow.getContext(),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes(),t.ogltextures=null,t.activeTextures=null;for(var r=0;rt.keyMatrixTime.getMTime()&&(t.renderable.computeMatrix(),o.copy(t.keyMatrices.mcwc,t.renderable.getMatrix()),o.transpose(t.keyMatrices.mcwc,t.keyMatrices.mcwc),t.renderable.getIsIdentity()?a.identity(t.keyMatrices.normalMatrix):(a.fromMat4(t.keyMatrices.normalMatrix,t.keyMatrices.mcwc),a.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),a.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),t.keyMatrixTime.modified()),t.keyMatrices}}(e,t)}var xd=f.d(wd);al("vtkActor",xd);var Od={context:null,activeTextures:[]};function Md(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Od,n),Js.extend(e,t,n),f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLActor2D"),e.buildPass=function(n){if(n){if(!t.renderable)return;t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),e.prepareNodes(),e.addMissingNodes(t.renderable.getTextures()),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes()}},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.openGLRenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.openGLRenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children.forEach(function(e){e.isA("vtkOpenGLTexture")||e.traverse(n)}),e.apply(n,!1))},e.activateTextures=function(){t.activeTextures=[],t.children.forEach(function(e){e.isA("vtkOpenGLTexture")&&(e.render(),e.getHandle()&&t.activeTextures.push(e))})},e.opaquePass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!0),e.activateTextures()):t.activeTextures.forEach(function(e){e.deactivate()})},e.translucentPass=function(n,r){n?(t.context=e.getFirstAncestorOfType("vtkOpenGLRenderWindow").getContext(),t.context.depthMask(!1),e.activateTextures()):(t.activeTextures.forEach(function(e){e.deactivate()}),t.context.depthMask(!0))}}(e,t)}var Ad=f.d(Md);al("vtkActor2D",Ad);var Id={bounds:[1,-1,1,-1,1,-1],center:[0,0,0]};var Rd={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Id,n),Gs.extend(e,t,n),t.bounds||we(t.bounds),t.center||(t.center=[0,0,0]),function(e,t){e.getBounds=function(){return 0},e.getBounds=function(n){e.getBounds();for(var r=0;r<6;r++)n[r]=t.bounds[r]},e.getCenter=function(){e.getBounds();for(var n=0;n<3;n++)t.center[n]=(t.bounds[2*n+1]+t.bounds[2*n])/2;return t.center.slice()},e.getLength=function(){var n=0,r=0;e.getBounds();for(var a=0;a<3;a++)r+=(n=t.bounds[2*a+1]-t.bounds[2*a])*n;return Math.sqrt(r)},e.getClippingPlaneInDataCoords=function(e,n,r){var a=t.clippingPlanes,o=e;if(a){var i=a.length;if(n>=0&&n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Nd,n),ts.extend(e,t,n),t.table||(t.table=[]),t.buildTime={},f.a.obj(t.buildTime),t.opaqueFlagBuildTime={},f.a.obj(t.opaqueFlagBuildTime,{mtime:0}),t.insertTime={},f.a.obj(t.insertTime,{mtime:0}),f.a.get(e,t,["buildTime"]),f.a.setGet(e,t,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),f.a.setArray(e,t,["alphaRange","hueRange","saturationRange","valueRange"],2),f.a.setArray(e,t,["nanColor","belowRangeColor","aboveRangeColor"],4),f.a.getArray(e,t,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),function(e,t){t.classHierarchy.push("vtkLookupTable"),e.isOpaque=function(){if(t.opaqueFlagBuildTime.getMTime()t.range[1]?t.maxIndex+Vd+1.5:(n=(e+t.shift)*t.scale)e[0]&&(t.scale=(t.maxIndex+1)/(e[1]-e[0]))},e.mapScalarsThroughTable=function(n,r,a,o){var i=e.linearLookup;t.indexedLookup&&(i=e.indexedLookupFunction);var s=e.getMappingRange(),l={maxIndex:e.getNumberOfColors()-1,range:s,shift:0,scale:0};e.lookupShiftAndScale(s,l);var c=e.getAlpha(),u=n.getNumberOfTuples(),d=n.getNumberOfComponents(),f=r.getData(),p=n.getData();if(c>=1){if(a===_i.RGBA)for(var g=0;gt.buildTime.getMTime()&&t.insertTime.getMTime()<=t.buildTime.getMTime())&&e.forceBuild()},t.table.length>0&&t.insertTime.modified()}(e,t)}var kd={newInstance:f.a.newInstance(Bd,"vtkLookupTable"),extend:Bd},Fd=1,Gd=0,_d=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function Ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Gd=e}var jd={getResolveCoincidentTopologyAsString:function(){return _d[Gd]},getResolveCoincidentTopologyPolygonOffsetFaces:function(){return Fd},getResolveCoincidentTopology:function(){return Gd},setResolveCoincidentTopology:Ud,setResolveCoincidentTopologyPolygonOffsetFaces:function(e){Fd=e},setResolveCoincidentTopologyToDefault:function(){Ud(0)},setResolveCoincidentTopologyToOff:function(){Ud(0)},setResolveCoincidentTopologyToPolygonOffset:function(){Ud(1)}};function Wd(e,t,n){n.forEach(function(n){e["get".concat(n.method)]=function(){return t[n.key]},e["set".concat(n.method)]=function(e,r){t[n.key]={factor:e,offset:r}}})}var zd=["Polygon","Line","Point"],Hd={};Wd(Hd,{Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},zd.map(function(e){return{key:e,method:"ResolveCoincidentTopology".concat(e,"OffsetParameters")}}));var Kd={implementCoincidentTopologyMethods:function(e,t){void 0===t.resolveCoincidentTopology&&(t.resolveCoincidentTopology=!1),f.a.setGet(e,t,["resolveCoincidentTopology"]),t.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(jd).forEach(function(t){e[t]=jd[t]}),Object.keys(Hd).forEach(function(t){e[t]=Hd[t]}),Wd(e,t.topologyOffset,zd.map(function(e){return{key:e,method:"RelativeCoincidentTopology".concat(e,"OffsetParameters")}})),e.getCoincidentTopologyPolygonOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyPolygonOffsetParameters(),n=e.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyLineOffsetParameters=function(){var t=Hd.getResolveCoincidentTopologyLineOffsetParameters(),n=e.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}},e.getCoincidentTopologyPointOffsetParameter=function(){var t=Hd.getResolveCoincidentTopologyPointOffsetParameters(),n=e.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:t.factor+n.factor,offset:t.offset+n.offset}}},staticOffsetAPI:Hd,otherStaticMethods:jd,CATEGORIES:zd};function Xd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qd(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,af,n),Rd.extend(e,t,n),f.a.get(e,t,["colorCoordinates","colorMapColors","colorTextureMap"]),f.a.setGet(e,t,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),f.a.setGetArray(e,t,["scalarRange"],2),t.viewSpecificProperties||(t.viewSpecificProperties={}),Kd.implementCoincidentTopologyMethods(e,t),function(e,t){t.classHierarchy.push("vtkMapper"),e.getBounds=function(){var n=e.getInputData();return n?(t.static||e.update(),t.bounds=n.getBounds()):t.bounds=Ne(),t.bounds},e.setForceCompileOnly=function(e){t.forceCompileOnly=e},e.createDefaultLookupTable=function(){t.lookupTable=kd.newInstance()},e.getColorModeAsString=function(){return f.a.enumToString($d,t.colorMode)},e.setColorModeToDefault=function(){return e.setColorMode(0)},e.setColorModeToMapScalars=function(){return e.setColorMode(1)},e.setColorModeToDirectScalars=function(){return e.setColorMode(2)},e.getScalarModeAsString=function(){return f.a.enumToString(Jd,t.scalarMode)},e.setScalarModeToDefault=function(){return e.setScalarMode(0)},e.setScalarModeToUsePointData=function(){return e.setScalarMode(1)},e.setScalarModeToUseCellData=function(){return e.setScalarMode(2)},e.setScalarModeToUsePointFieldData=function(){return e.setScalarMode(3)},e.setScalarModeToUseCellFieldData=function(){return e.setScalarMode(4)},e.setScalarModeToUseFieldData=function(){return e.setScalarMode(5)},e.getAbstractScalars=function(e,n,r,a,o){if(!e||!t.scalarVisibility)return{scalars:null,cellFLag:!1};var i=null,s=!1;if(n===Jd.DEFAULT)(i=e.getPointData().getScalars())||(i=e.getCellData().getScalars(),s=!0);else if(n===Jd.USE_POINT_DATA)i=e.getPointData().getScalars();else if(n===Jd.USE_CELL_DATA)i=e.getCellData().getScalars(),s=!0;else if(n===Jd.USE_POINT_FIELD_DATA){var l=e.getPointData();i=r===ef.BY_ID?l.getArrayByIndex(a):l.getArrayByName(o)}else if(n===Jd.USE_CELL_FIELD_DATA){var c=e.getCellData();s=!0,i=r===ef.BY_ID?c.getArrayByIndex(a):c.getArrayByName(o)}else if(n===Jd.USE_FIELD_DATA){var u=e.getFieldData();i=r===ef.BY_ID?u.getArrayByIndex(a):u.getArrayByName(o)}return{scalars:i,cellFlag:s}},e.mapScalars=function(n,r){var a=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;if(!a)return t.colorCoordinates=null,t.colorTextureMap=null,void(t.colorMapColors=null);var o="".concat(e.getMTime()).concat(a.getMTime()).concat(r);if(t.colorBuildString!==o){if(t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),e.canUseTextureMapForColoring(n))e.mapScalarsToTexture(a,r);else{t.colorCoordinates=null,t.colorTextureMap=null;var i=e.getLookupTable();i&&(i.build(),t.colorMapColors=i.mapScalars(a,t.colorMode,-1))}t.colorBuildString="".concat(e.getMTime()).concat(a.getMTime()).concat(r)}},e.scalarToTextureCoordinate=function(e,t,n){var r=.5,a=1;return Le(e)||(a=.49,(r=(e-t)*n)>1e3?r=1e3:r<-1e3&&(r=-1e3)),{texCoordS:r,texCoordT:a}},e.createColorTextureCoordinates=function(t,n,r,a,o,i,s,l,c){var u=(i[1]-i[0])/l,d=[];d[0]=i[0]-u,d[1]=i[1]+u;var f=1/(d[1]-d[0]),p=n.getData(),g=t.getData(),m=0,v=0;if(o<0||o>=a)for(var h=0;ht.colorTextureMap.getMTime()||t.lookupTable.getMTime()>t.colorTextureMap.getMTime()||t.lookupTable.getAlpha()!==r){t.lookupTable.setAlpha(r),t.colorTextureMap=null,t.lookupTable.build();var s=t.lookupTable.getNumberOfAvailableColors();s>4094&&(s=4094),s+=2;for(var l=(a[1]-a[0])/(s-1-2),c=new Float64Array(2*s),u=0;ut.colorCoordinates.getMTime()||e.getInputData(0).getMTime()>t.colorCoordinates.getMTime()||t.lookupTable.getMTime()>t.colorCoordinates.getMTime()){t.colorCoordinates=null;var p=n.getNumberOfComponents(),g=n.getNumberOfTuples();t.colorCoordinates=Qe.newInstance({numberOfComponents:2,values:new Float32Array(2*g)});var m=t.lookupTable.getVectorComponent();t.lookupTable.getVectorMode()===tf.MAGNITUDE&&n.getNumberOfComponents()>1&&(m=-1),e.createColorTextureCoordinates(n,t.colorCoordinates,g,p,m,a,t.lookupTable.getRange(),t.colorTextureMap.getPointData().getScalars().getNumberOfTuples()/2-2,o)}},e.getIsOpaque=function(){var t=e.getLookupTable();return!t||(t.build(),t.isOpaque())},e.canUseTextureMapForColoring=function(n){if(!t.interpolateScalarsBeforeMapping)return!1;if(t.lookupTable&&t.lookupTable.getIndexedLookup())return!1;var r=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName),a=r.scalars;return!(!a||r.cellFlag||t.colorMode===$d.DEFAULT&&a.getDataType()===nf.UNSIGNED_CHAR||t.colorMode===$d.DIRECT_SCALARS)},e.clearColorArrays=function(){t.colorMapColors=null,t.colorCoordinates=null,t.colorTextureMap=null},e.getLookupTable=function(){return t.lookupTable||e.createDefaultLookupTable(),t.lookupTable},e.getMTime=function(){var e=t.mtime;if(null!==t.lookupTable){var n=t.lookupTable.getMTime();e=n>e?n:e}return e},e.getPrimitiveCount=function(){var t=e.getInputData();return{points:t.getPoints().getNumberOfValues()/3,verts:t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells(),lines:t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells(),triangles:t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells()}},e.acquireInvertibleLookupTable=rf("AcquireInvertibleLookupTable"),e.valueToColor=rf("ValueToColor"),e.colorToValue=rf("ColorToValue"),e.useInvertibleColorFor=rf("UseInvertibleColorFor"),e.clearInvertibleColor=rf("ClearInvertibleColor")}(e,t)}var sf=qd(qd(qd({newInstance:f.a.newInstance(of,"vtkMapper"),extend:of},Zd),Qd),Wi);function lf(e){return function(e){if(Array.isArray(e))return cf(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return cf(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cf(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cf(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bf,n),Js.extend(e,t,n),pc.implementReplaceShaderCoincidentOffset(e,t,n),t.primitives=[],t.primTypes=uf,t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16));for(var r=uf.Start;r= cos(radians(lightConeAngle".concat(d,")))")," {"," attenuation = attenuation * pow(coneDot, lightExponent".concat(d,");")," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));"," diffuseL += ((df".concat("",") * lightColor").concat(d,");")," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {"," float sf = attenuation*pow( max(0.0, dot(lightHalfAngleVC".concat(d,",normalVCVSOutput)), specularPower);")," specularL += ((sf".concat("",") * lightColor").concat(d,");")," }"]);s=s.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=_l.substitute(a,"//VTK::Light::Impl",s,!1).result;break;default:vf("bad light complexity")}e.Fragment=a},e.replaceShaderNormal=function(n,r,a){if(t.lastBoundBO.getReferenceByName("lastLightComplexity")>0){var o=n.Vertex,i=n.Geometry,s=n.Fragment;t.lastBoundBO.getCABO().getNormalOffset()?(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,i=_l.substitute(i,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,i=_l.substitute(i,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,s=_l.substitute(s,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):t.haveCellNormals?(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.getOpenGLMode(a.getProperty().getRepresentation(),t.lastBoundBO.getPrimitiveType())===t.context.LINES?(s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z));"," vec3 fdy = vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z));"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," fdx = normalize(fdx);"," fdy = normalize(fdy);"," if (abs(fdx.x) > 0.0)"," { normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(s=_l.substitute(s,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,s=_l.substitute(s,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,s=_l.substitute(s,"//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),n.Vertex=o,n.Geometry=i,n.Fragment=s}},e.replaceShaderPositionVC=function(e,n,r){var a=e.Vertex,o=e.Geometry,i=e.Fragment;r.getProperty().getRepresentation()!==df.POINTS&&t.lastBoundBO.getPrimitiveType()!==uf.Points||(a=_l.substitute(a,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = ".concat(r.getProperty().getPointSize(),".0;")],!1).result),t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=_l.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,i=_l.substitute(i,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,i=_l.substitute(i,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=_l.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=_l.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),e.Vertex=a,e.Geometry=o,e.Fragment=i},e.replaceShaderTCoord=function(e,n,r){if(t.lastBoundBO.getCABO().getTCoordOffset()){var a=e.Vertex,o=e.Geometry,i=e.Fragment;if(t.drawingEdges)return;a=_l.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;var s=t.openGLActor.getActiveTextures(),l=2,c=2;if(s&&s.length>0&&(l=s[0].getComponents(),s[0].getTarget()===t.context.TEXTURE_CUBE_MAP&&(c=3)),t.renderable.getColorTextureMap()&&(l=t.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),c=2),2===c){if(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,s&&s.length>=1)switch(l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*texture2D(texture1, tcoordVCVSOutput.st);").result}}else switch(a=_l.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,o=_l.substitute(o,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,o=_l.substitute(o,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,i=_l.substitute(i,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,l){case 1:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,1.0);"]).result;break;case 2:i=_l.substitute(i,"//VTK::TCoord::Impl",["vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*"," vec4(tcolor.r,tcolor.r,tcolor.r,tcolor.g);"]).result;break;default:i=_l.substitute(i,"//VTK::TCoord::Impl","gl_FragData[0] = clamp(gl_FragData[0],0.0,1.0)*textureCube(texture1, tcoordVCVSOutput);").result}e.Vertex=a,e.Geometry=o,e.Fragment=i}},e.replaceShaderClip=function(e,n,r){var a=e.Vertex,o=e.Fragment;if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6),a=_l.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=_l.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,o=_l.substitute(o,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,o=_l.substitute(o,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}e.Vertex=a,e.Fragment=o},e.getCoincidentParameters=function(e,n){var r=null,a=n.getProperty();if(t.renderable.getResolveCoincidentTopology()||a.getEdgeVisibility()&&a.getRepresentation()===df.SURFACE){var o=t.lastBoundBO.getPrimitiveType();o===uf.Points||a.getRepresentation()===df.POINTS?r=t.renderable.getCoincidentTopologyPointOffsetParameter():o===uf.Lines||a.getRepresentation()===df.WIREFRAME?r=t.renderable.getCoincidentTopologyLineOffsetParameters():o!==uf.Tris&&o!==uf.TriStrips||(r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()),o!==uf.TrisEdges&&o!==uf.TriStripsEdges||((r=t.renderable.getCoincidentTopologyPolygonOffsetParameters()).factor/=2,r.offset/=2)}return r},e.replaceShaderPicking=function(e,t,n){var r=e.Fragment;r=_l.substitute(r,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,r=_l.substitute(r,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,e.Fragment=r},e.replaceShaderValues=function(n,r,a){if(e.replaceShaderColor(n,r,a),e.replaceShaderNormal(n,r,a),e.replaceShaderLight(n,r,a),e.replaceShaderTCoord(n,r,a),e.replaceShaderPicking(n,r,a),e.replaceShaderClip(n,r,a),e.replaceShaderCoincidentOffset(n,r,a),e.replaceShaderPositionVC(n,r,a),t.haveSeenDepthRequest){var o=n.Fragment;o=_l.substitute(o,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,o=_l.substitute(o,"//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,n.Fragment=o}},e.getNeedToRebuildShaders=function(n,r,a){var o=0,i=0,s=n.getPrimitiveType(),l=t.currentInput,c=!1,u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),f=a.getProperty().getInterpolation()===ff.FLAT,p=a.getProperty().getRepresentation(),g=e.getOpenGLMode(p,s);if(g===t.context.TRIANGLES?c=!0:d&&!u?c=!0:!f&&u?c=!0:f||g!==t.context.LINES||(c=!0),a.getProperty().getLighting()&&c){o=0;for(var m=r.getLightsByReference(),v=0;v0&&(i++,0===o&&(o=1)),1===o&&(i>1||1!==h.getIntensity()||!h.lightTypeIsHeadLight())&&(o=2),o<3&&h.getPositional()&&(o=3)}}var y=!1,b=t.lastBoundBO.getReferenceByName("lastLightComplexity"),T=t.lastBoundBO.getReferenceByName("lastLightCount");return b===o&&T===i||(t.lastBoundBO.set({lastLightComplexity:o},!0),t.lastBoundBO.set({lastLightCount:i},!0),y=!0),!!(t.lastHaveSeenDepthRequest!==t.haveSeenDepthRequest||0===n.getProgram()||n.getShaderSourceTime().getMTime()n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){var o=t.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&o>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),t.context.FLOAT,3,!1)||vf("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),t.renderable.getCustomShaderAttributes().forEach(function(e,r){n.getProgram().isAttributeUsed("".concat(e,"MC"))&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"".concat(e,"MC"),n.getCABO().getCustomData()[r].offset,n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getCustomData()[r].components,!1)||vf("Error setting ".concat(e,"MC in shader VAO.")))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),t.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||vf("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),t.context.UNSIGNED_BYTE,4,!0)||vf("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(t.renderable.getNumberOfClippingPlanes()){var i=t.renderable.getNumberOfClippingPlanes();i>6&&(f.l("OpenGL has a limit of 6 clipping planes"),i=6);for(var s=[],l=0;l0){var f=d.getColorByReference(),p=d.getIntensity();t.lightColor[0]=f[0]*p,t.lightColor[1]=f[1]*p,t.lightColor[2]=f[2]*p;var g=d.getDirection(),m=n.getActiveCamera().getViewMatrix(),v=lf(g);d.lightTypeIsSceneLight()&&(v[0]=m[0]*g[0]+m[1]*g[1]+m[2]*g[2],v[1]=m[4]*g[0]+m[5]*g[1]+m[6]*g[2],v[2]=m[8]*g[0]+m[9]*g[1]+m[10]*g[2],K(v)),t.lightDirection[0]=v[0],t.lightDirection[1]=v[1],t.lightDirection[2]=v[2],t.lightHalfAngle[0]=-t.lightDirection[0],t.lightHalfAngle[1]=-t.lightDirection[1],t.lightHalfAngle[2]=1-t.lightDirection[2],K(t.lightDirection),s.setUniform3fArray("lightColor".concat(l),t.lightColor),s.setUniform3fArray("lightDirectionVC".concat(l),t.lightDirection),s.setUniform3fArray("lightHalfAngleVC".concat(l),t.lightHalfAngle),l++}}if(!(a<3)){var h=n.getActiveCamera().getViewMatrix();o.transpose(h,h),l=0;for(var y=0;y0){var T=b.getTransformedPosition(),C=new Float64Array(3);i.transformMat4(C,T,h),s.setUniform3fArray("lightAttenuation".concat(l),b.getAttenuationValuesByReference()),s.setUniformi("lightPositional".concat(l),b.getPositional()),s.setUniformf("lightExponent".concat(l),b.getExponent()),s.setUniformf("lightConeAngle".concat(l),b.getConeAngle()),s.setUniform3fArray("lightPositionVC".concat(l),[C[0],C[1],C[2]]),l++}}}}},e.setCameraShaderParameters=function(e,r,i){var s=e.getProgram(),l=t.openGLCamera.getKeyMatrices(r),c=r.getActiveCamera(),u=t.openGLCamera.getKeyMatrixTime().getMTime(),d=s.getLastCameraMTime(),f=e.getCABO().getCoordShiftAndScaleEnabled()?e.getCABO().getInverseShiftAndScaleMatrix():null,p=i.getIsIdentity(),g=p?{mcwc:null,normalMatrix:null}:t.openGLActor.getKeyMatrices();s.setUniformMatrix("MCPCMatrix",n([l.wcpc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("MCVCMatrix")&&s.setUniformMatrix("MCVCMatrix",n([l.wcvc,g.mcwc,f],o,t.tmpMat4)),s.isUniformUsed("normalMatrix")&&s.setUniformMatrix3x3("normalMatrix",n([l.normalMatrix,g.normalMatrix],a,t.tmpMat3)),d!==u&&(s.isUniformUsed("cameraParallel")&&s.setUniformi("cameraParallel",c.getParallelProjection()),s.setLastCameraMTime(u)),p||s.setLastCameraMTime(0)},e.setPropertyShaderParameters=function(e,n,r){var a=e.getProgram(),o=r.getProperty(),i=o.getOpacity(),s=t.drawingEdges?o.getEdgeColorByReference():o.getAmbientColorByReference(),l=t.drawingEdges?o.getEdgeColorByReference():o.getDiffuseColorByReference(),c=t.drawingEdges?1:o.getAmbient(),u=t.drawingEdges?0:o.getDiffuse(),d=t.drawingEdges?0:o.getSpecular(),f=o.getSpecularPower();a.setUniformf("opacityUniform",i),a.setUniform3fArray("ambientColorUniform",s),a.setUniform3fArray("diffuseColorUniform",l),a.setUniformf("ambient",c),a.setUniformf("diffuse",u);var p=t.lastBoundBO.getReferenceByName("lastLightComplexity");if(!(p<1)){var g=o.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",g),a.setUniformf("specularPowerUniform",f),a.isUniformUsed("ambientIntensityBF")){if(i=(o=r.getBackfaceProperty()).getOpacity(),s=o.getAmbientColor(),c=o.getAmbient(),l=o.getDiffuseColor(),u=o.getDiffuse(),g=o.getSpecularColor(),d=o.getSpecular(),a.setUniformf("ambientIntensityBF",c),a.setUniformf("diffuseIntensityBF",u),a.setUniformf("opacityUniformBF",i),a.setUniform3fArray("ambientColorUniformBF",s),a.setUniform3fArray("diffuseColorUniformBF",l),p<1)return;a.setUniformf("specularIntensityBF",d),a.setUniform3fArray("specularColorUniformBF",g),a.setUniformf("specularPowerUniformBF",f)}}},e.renderPieceStart=function(n,r){t.primitiveIDOffset=0,t.openGLRenderer.getSelector()&&(t.openGLRenderer.getSelector().getCurrentPass(),t.openGLRenderer.getSelector().renderProp(r)),e.updateBufferObjects(n,r),t.renderable.getColorTextureMap()&&t.internalColorTexture.activate(),t.lastBoundBO=null},e.renderPieceDraw=function(n,r){var a=r.getProperty().getRepresentation(),o=t.context,i=r.getProperty().getEdgeVisibility()&&a===df.SURFACE;o.lineWidth(r.getProperty().getLineWidth());for(var s=uf.Start;s2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wf,n),Js.extend(e,t,n),t.openGLTexture=sc.newInstance(),t.tris=Kl.newInstance(),t.keyMatrixTime={},f.g(t.keyMatrixTime,{mtime:0}),t.keyMatrices={normalMatrix:a.identity(new Float64Array(9)),mcwc:o.identity(new Float64Array(16))},f.i(e,t,["context"]),f.b(e,t,["activeTextures"]),function(e,t){t.classHierarchy.push("vtkOpenGLSkybox"),e.buildPass=function(n){if(n){t.openGLRenderer=e.getFirstAncestorOfType("vtkOpenGLRenderer"),t.openGLRenderWindow=t.openGLRenderer.getParent(),t.context=t.openGLRenderWindow.getContext(),t.tris.setOpenGLRenderWindow(t.openGLRenderWindow),t.openGLTexture.setOpenGLRenderWindow(t.openGLRenderWindow);var r=t.openGLRenderer.getRenderable();t.openGLCamera=t.openGLRenderer.getViewNodeFor(r.getActiveCamera())}},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},e.opaquePass=function(n,r){if(n&&!t.openGLRenderer.getSelector()){e.updateBufferObjects(),t.openGLRenderWindow.enableDepthMask(),t.openGLRenderWindow.getShaderCache().readyShaderProgram(t.tris.getProgram()),t.openGLTexture.render(t.openGLRenderWindow);var a=t.openGLTexture.getTextureUnit();t.tris.getProgram().setUniformi("sbtexture",a);var i=t.openGLRenderer.getRenderable(),s=t.openGLCamera.getKeyMatrices(i),l=new Float64Array(16);if(o.invert(l,s.wcpc),t.tris.getProgram().setUniformMatrix("IMCPCMatrix",l),"box"===t.lastFormat){var c=i.getActiveCamera().getPosition();t.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}t.tris.getVAO().bind(),t.context.drawArrays(t.context.TRIANGLES,0,t.tris.getCABO().getElementCount()),t.tris.getVAO().release(),t.openGLTexture.deactivate()}},e.updateBufferObjects=function(){if(!t.tris.getCABO().getElementCount()){for(var e=new Float32Array(12),n=0;n<4;n++)e[3*n]=n%2*2-1,e[3*n+1]=n>1?1:-1,e[3*n+2]=1;var r=Qe.newInstance({numberOfComponents:3,values:e});r.setName("points");var a=new Uint16Array(8);a[0]=3,a[1]=0,a[2]=1,a[3]=3,a[4]=3,a[5]=0,a[6]=3,a[7]=2;var o=Qe.newInstance({numberOfComponents:1,values:a});t.tris.getCABO().createVBO(o,"polys",Ol.SURFACE,{points:r,cellOffset:0})}t.renderable.getFormat()!==t.lastFormat&&(t.lastFormat=t.renderable.getFormat(),"box"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec3 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = wpos.xyz/wpos.w;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec3 TexCoords;\n uniform samplerCube sbtexture;\n uniform vec3 camPos;\n void main () {\n // skybox looks from inside out\n // which means we have to adjust\n // our tcoords. Otherwise text would\n // be flipped\n vec3 tc = normalize(TexCoords - camPos);\n if (abs(tc.z) < max(abs(tc.x),abs(tc.y)))\n {\n tc = vec3(1.0, 1.0, -1.0) * tc;\n }\n else\n {\n tc = vec3(-1.0, 1.0, 1.0) * tc;\n }\n gl_FragData[0] = textureCube(sbtexture, tc);\n }","")),"background"===t.lastFormat&&t.tris.setProgram(t.openGLRenderWindow.getShaderCache().readyShaderProgramArray("//VTK::System::Dec\n attribute vec3 vertexMC;\n uniform mat4 IMCPCMatrix;\n varying vec2 TexCoords;\n void main () {\n gl_Position = vec4(vertexMC.xyz, 1.0);\n vec4 wpos = IMCPCMatrix * gl_Position;\n TexCoords = vec2(vertexMC.x, vertexMC.y)*0.5 + 0.5;\n }","//VTK::System::Dec\n //VTK::Output::Dec\n varying vec2 TexCoords;\n uniform sampler2D sbtexture;\n void main () {\n gl_FragData[0] = texture2D(sbtexture, TexCoords);\n }","")),t.tris.getShaderSourceTime().modified(),t.tris.getVAO().bind(),t.tris.getVAO().addAttributeArray(t.tris.getProgram(),t.tris.getCABO(),"vertexMC",t.tris.getCABO().getVertexOffset(),t.tris.getCABO().getStride(),t.context.FLOAT,3,t.context.FALSE)||Pf("Error setting vertexMC in shader VAO."));var i=t.renderable.getTextures();i.length||Pf("vtkSkybox requires a texture map"),t.openGLTexture.getRenderable()!==i[0]&&(t.openGLTexture.releaseGraphicsResources(t.openGLRenderWindow),t.openGLTexture.setRenderable(i[0]))}}(e,t)}var Of=f.d(xf);al("vtkSkybox",Of);var Mf={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Af(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mf,n),Js.extend(e,t,n),t.keyMatricesTime={},f.a.obj(t.keyMatricesTime,{mtime:0}),t.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},f.a.get(e,t,["propID","keyMatricesTime"]),t.bufferShift=[0,0,0,0],function(e,t){t.classHierarchy.push("vtkWebGPUActor"),e.buildPass=function(n){n&&(t.WebGPURenderer=e.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),void 0===t.propID&&(t.propID=t.WebGPURenderWindow.getUniquePropID()),e.prepareNodes(),e.addMissingNode(t.renderable.getMapper()),e.removeUnusedNodes())},e.traverseOpaquePass=function(n){t.renderable&&t.renderable.getVisibility()&&t.renderable.getIsOpaque()&&(!t.WebGPURenderer.getSelector()||t.renderable.getPickable())&&(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.traverseTranslucentPass=function(n){!t.renderable||!t.renderable.getVisibility()||t.renderable.getIsOpaque()||t.WebGPURenderer.getSelector()&&!t.renderable.getPickable()||(e.apply(n,!0),t.children[0]&&t.children[0].traverse(n),e.apply(n,!1))},e.queryPass=function(e,n){if(e){if(!t.renderable||!t.renderable.getVisibility())return;t.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},e.getBufferShift=function(n){return e.getKeyMatrices(n),t.bufferShift},e.getKeyMatrices=function(e){if(Math.max(t.renderable.getMTime(),e.getStabilizedTime().getMTime())>t.keyMatricesTime.getMTime()){t.renderable.computeMatrix();var n=t.renderable.getMatrix(),r=e.getStabilizedCenterByReference();t.bufferShift[0]=n[3]-r[0],t.bufferShift[1]=n[7]-r[1],t.bufferShift[2]=n[11]-r[2],o.transpose(t.keyMatrices.bcwc,n),t.renderable.getIsIdentity()?o.identity(t.keyMatrices.normalMatrix):(o.copy(t.keyMatrices.normalMatrix,t.keyMatrices.bcwc),t.keyMatrices.normalMatrix[3]=0,t.keyMatrices.normalMatrix[7]=0,t.keyMatrices.normalMatrix[11]=0,o.invert(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix),o.transpose(t.keyMatrices.normalMatrix,t.keyMatrices.normalMatrix)),o.translate(t.keyMatrices.bcwc,t.keyMatrices.bcwc,[-t.bufferShift[0],-t.bufferShift[1],-t.bufferShift[2]]),o.translate(t.keyMatrices.bcsc,t.keyMatrices.bcwc,[-r[0],-r[1],-r[2]]),t.keyMatricesTime.modified()}return t.keyMatrices}}(e,t)}var If=f.a.newInstance(Af);Xc("vtkActor",If);var Rf={repeat:!1,interpolate:!1,edgeClamp:!1,image:null,imageLoaded:!1};function Ef(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Rf,n),f.a.obj(e,t),f.a.algo(e,t,6,0),f.a.get(e,t,["imageLoaded"]),f.a.setGet(e,t,["repeat","edgeClamp","interpolate","image"]),function(e,t){t.classHierarchy.push("vtkTexture"),e.imageLoaded=function(){t.image.removeEventListener("load",e.imageLoaded),t.imageLoaded=!0,e.modified()},e.setImage=function(n){t.image!==n&&(null!==n&&(e.setInputData(null),e.setInputConnection(null)),t.image=n,t.imageLoaded=!1,n.complete?e.imageLoaded():n.addEventListener("load",e.imageLoaded),e.modified())}}(e,t)}var Df={newInstance:f.a.newInstance(Ef,"vtkTexture"),extend:Ef},Vf=ad.BufferUsage,Lf=ad.PrimitiveTypes,Nf=ju.Representation,Bf=sf.ScalarMode,kf={type:"StartEvent"},Ff={type:"EndEvent"},Gf="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(vertex)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : vertexOutput;\n\n var vertex: vec4 = vertexBC;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n //VTK::Position::Impl\n\n return output;\n}\n",_f="\n//VTK::Renderer::Dec\n\n//VTK::Color::Dec\n\n// optional surface normal declaration\n//VTK::Normal::Dec\n\n//VTK::TCoord::Dec\n\n//VTK::Select::Dec\n\n//VTK::RenderEncoder::Dec\n\n//VTK::Mapper::Dec\n\n//VTK::IOStructs::Dec\n\n[[stage(fragment)]]\nfn main(\n//VTK::IOStructs::Input\n)\n//VTK::IOStructs::Output\n{\n var output : fragmentOutput;\n\n var ambientColor: vec4 = mapperUBO.AmbientColor;\n var diffuseColor: vec4 = mapperUBO.DiffuseColor;\n var opacity: f32 = mapperUBO.Opacity;\n\n //VTK::Color::Impl\n\n //VTK::Normal::Impl\n\n //VTK::Light::Impl\n\n var computedColor: vec4 = vec4(ambientColor.rgb * mapperUBO.AmbientIntensity\n + diffuse * mapperUBO.DiffuseIntensity\n + specular * mapperUBO.SpecularIntensity,\n opacity);\n\n //VTK::TCoord::Impl\n\n //VTK::Select::Impl\n\n if (computedColor.a == 0.0) { discard; };\n\n //VTK::RenderEncoder::Impl\n return output;\n}\n";var Uf={colorTexture:null,renderEncoder:null,textures:null,textureViews:null,primitives:null,tmpMat4:null,fragmentShaderTemplate:null,vertexShaderTemplate:null};function jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Uf,n),Js.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.tmpMat4=o.identity(new Float64Array(16)),t.fragmentShaderTemplate=t.fragmentShaderTemplate||_f,t.vertexShaderTemplate=t.vertexShaderTemplate||Gf,t.UBO=dd.newInstance(),t.UBO.setName("mapperUBO"),t.UBO.addEntry("BCWCMatrix","mat4x4"),t.UBO.addEntry("BCSCMatrix","mat4x4"),t.UBO.addEntry("MCWCNormals","mat4x4"),t.UBO.addEntry("AmbientColor","vec4"),t.UBO.addEntry("DiffuseColor","vec4"),t.UBO.addEntry("AmbientIntensity","f32"),t.UBO.addEntry("DiffuseIntensity","f32"),t.UBO.addEntry("SpecularColor","vec4"),t.UBO.addEntry("SpecularIntensity","f32"),t.UBO.addEntry("Opacity","f32"),t.UBO.addEntry("SpecularPower","f32"),t.UBO.addEntry("PropID","u32"),f.b(e,t,["fragmentShaderTemplate","vertexShaderTemplate","UBO"]),f.i(e,t,["renderEncoder"]),t.textures=[],t.textureViews=[],t.primitives=[],function(e,t){t.classHierarchy.push("vtkWebGPUPolyDataMapper"),e.buildPass=function(n){n&&(t.WebGPUActor=e.getFirstAncestorOfType("vtkWebGPUActor"),t.WebGPURenderer=t.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),t.WebGPURenderWindow=t.WebGPURenderer.getParent(),t.device=t.WebGPURenderWindow.getDevice())},e.translucentPass=function(t){t&&e.render()},e.opaquePass=function(t){t&&e.render()},e.updateUBO=function(){var n=t.WebGPUActor.getRenderable().getProperty(),r=t.UBO.getSendTime();if(e.getMTime()>r||n.getMTime()>r||t.renderable.getMTime()>r){var a=t.WebGPUActor.getKeyMatrices(t.WebGPURenderer);t.UBO.setArray("BCWCMatrix",a.bcwc),t.UBO.setArray("BCSCMatrix",a.bcsc),t.UBO.setArray("MCWCNormals",a.normalMatrix);var o=n.getAmbientColorByReference();t.UBO.setValue("AmbientIntensity",n.getAmbient()),t.UBO.setArray("AmbientColor",[o[0],o[1],o[2],1]),t.UBO.setValue("DiffuseIntensity",n.getDiffuse()),o=n.getDiffuseColorByReference(),t.UBO.setArray("DiffuseColor",[o[0],o[1],o[2],1]),t.UBO.setValue("SpecularIntensity",n.getSpecular()),t.UBO.setValue("SpecularPower",n.getSpecularPower()),o=n.getSpecularColorByReference(),t.UBO.setArray("SpecularColor",[o[0],o[1],o[2],1]),t.UBO.setValue("Opacity",n.getOpacity()),t.UBO.setValue("PropID",t.WebGPUActor.getPropID());var i=t.WebGPURenderWindow.getDevice();t.UBO.sendIfNeeded(i)}},e.render=function(){e.invokeEvent(kf),t.renderable.getStatic()||t.renderable.update(),t.currentInput=t.renderable.getInputData(),e.invokeEvent(Ff),t.renderEncoder=t.WebGPURenderer.getRenderEncoder(),e.buildPrimitives(),e.updateUBO()},e.replaceShaderPosition=function(e,t,n){var r=t.getShaderDescription("vertex");r.addBuiltinOutput("vec4","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,n){if(n.hasAttribute("normalMC")){var r=t.getShaderDescription("vertex");r.addOutput("vec3","normalVC");var a=r.getCode();a=su.substitute(a,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"]).result,o.setCode(a)}},e.replaceShaderLight=function(e,t,n){var r=t.getShaderDescription("fragment"),a=r.getCode();a.includes("var normal")?(a=su.substitute(a,"//VTK::Light::Impl",[" var df: f32 = max(0.0, normal.z);"," var sf: f32 = pow(df, mapperUBO.SpecularPower);"," var diffuse: vec3 = df * diffuseColor.rgb;"," var specular: vec3 = sf * mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a)):(a=su.substitute(a,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"]).result,r.setCode(a))},e.replaceShaderColor=function(e,t,n){if(n.hasAttribute("colorVI")){var r=t.getShaderDescription("vertex");r.addOutput("vec4","color");var a=r.getCode();a=su.substitute(a,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,o.setCode(a)}},e.replaceShaderTCoord=function(e,n,r){if(r.hasAttribute("tcoord")){var a=n.getShaderDescription("vertex");a.addOutput("vec2","tcoordVS");var o=a.getCode();o=su.substitute(o,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,a.setCode(o);var i=n.getShaderDescription("fragment");o=i.getCode(),t.textures.length&&(o=su.substitute(o,"//VTK::TCoord::Impl",["var tcolor: vec4 = textureSample(Texture0, Texture0Sampler, input.tcoordVS);","computedColor = computedColor*tcolor;"]).result),i.setCode(o)}},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("fragment"),a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,r.setCode(a)}},e.getUsage=function(e,t){return e===Nf.POINTS||0===t?Vf.Verts:1===t?Vf.Lines:e===Nf.WIREFRAME?2===t?Vf.LinesFromTriangles:Vf.LinesFromStrips:2===t?Vf.Triangles:Vf.Strips},e.getHashFromUsage=function(e){return"pt".concat(e)},e.getTopologyFromUsage=function(e){switch(e){case Vf.Triangles:return"triangle-list";case Vf.Verts:return"point-list";default:case Vf.Lines:return"line-list"}},e.buildVertexInput=function(n,r,a){var o=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),i=t.WebGPURenderWindow.getDevice(),s=t.primitives[a].getVertexInput(),l=r.getMTime()+o,c=n.getPoints();if(c){var u=t.WebGPUActor.getBufferShift(t.WebGPURenderer),d={hash:l+c.getMTime(),dataArray:c,source:c,cells:r,primitiveType:a,representation:o,time:Math.max(c.getMTime(),r.getMTime(),t.WebGPUActor.getKeyMatricesTime().getMTime()),shift:u,usage:Vf.PointArray,format:"float32x4",packExtra:!0},f=i.getBufferManager().getBuffer(d);s.addBuffer(f,["vertexBC"])}else s.removeBufferIfPresent("vertexBC");var p=e.getUsage(o,a);if(p===Vf.Triangles||p===Vf.Strips){var g=n.getPointData().getNormals(),m={cells:r,representation:o,primitiveType:a,format:"snorm8x4",packExtra:!0,shift:0,scale:127};if(g){m.hash=l+g.getMTime(),m.dataArray=g,m.source=g,m.time=Math.max(g.getMTime(),r.getMTime()),m.usage=Vf.PointArray;var v=i.getBufferManager().getBuffer(m);s.addBuffer(v,["normalMC"])}else if(a===Lf.Triangles){m.hash=l+c.getMTime(),m.dataArray=c,m.source=c,m.time=Math.max(c.getMTime(),r.getMTime()),m.usage=Vf.NormalsFromPoints;var h=i.getBufferManager().getBuffer(m);s.addBuffer(h,["normalMC"])}else s.removeBufferIfPresent("normalMC")}else s.removeBufferIfPresent("normalMC");var y=!1;if(t.renderable.getScalarVisibility()){var b=t.renderable.getColorMapColors();if(b){var T=t.renderable.getScalarMode(),C=!1;T!==Bf.USE_CELL_DATA&&T!==Bf.USE_CELL_FIELD_DATA&&T!==Bf.USE_FIELD_DATA&&n.getPointData().getScalars()||T===Bf.USE_POINT_FIELD_DATA||!b||(C=!0);var S={hash:l+c.getMTime(),dataArray:b,source:b,cells:r,primitiveType:a,representation:o,time:Math.max(b.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"unorm8x4",cellData:C,cellOffset:0},P=i.getBufferManager().getBuffer(S);s.addBuffer(P,["colorVI"]),y=!0}}y||s.removeBufferIfPresent("colorVI");var w=null;if(w=t.renderable.getInterpolateScalarsBeforeMapping()&&t.renderable.getColorCoordinates()?t.renderable.getColorCoordinates():n.getPointData().getTCoords()){var x={hash:l+w.getMTime(),dataArray:w,source:w,cells:r,primitiveType:a,representation:o,time:Math.max(w.getMTime(),r.getMTime()),usage:Vf.PointArray,format:"float32x2"},O=i.getBufferManager().getBuffer(x);s.addBuffer(O,["tcoord"])}else s.removeBufferIfPresent("tcoord")},e.updateTextures=function(){var e=[],n=[],r=t.renderable.getColorTextureMap();r&&(t.colorTexture||(t.colorTexture=Df.newInstance()),t.colorTexture.setInputData(r),n.push(t.colorTexture));for(var a=t.WebGPUActor.getRenderable().getTextures(),o=0;o=0;m--)e[m]||(t.textures.splice(m,1),t.textureViews.splice(m,1))},e.computePipelineHash=function(n,r){var a="pd";return n.hasAttribute("normalMC")&&(a+="n"),n.hasAttribute("colorVI")&&(a+="c"),n.hasAttribute("tcoord")&&(a+="t"),t.textures.length&&(a+="tx".concat(t.textures.length)),t.SSBO&&(a+="ssbo"),a+=e.getHashFromUsage(r),a+=t.renderEncoder.getPipelineHash()},e.buildPrimitives=function(){var n=t.currentInput,r=[n.getVerts(),n.getLines(),n.getPolys(),n.getStrips()],a=t.WebGPURenderWindow.getDevice();t.renderable.mapScalars(n,1),e.updateTextures();for(var o=Lf.Points;o<=Lf.Triangles;o++)if(r[o].getNumberOfValues()>0){var i=t.WebGPUActor.getRenderable().getProperty().getRepresentation(),s=e.getUsage(i,o),l=t.primitives[o];e.buildVertexInput(t.currentInput,r[o],o),l.setPipelineHash(e.computePipelineHash(l.getVertexInput(),s)),l.setTextureViews(t.textureViews),l.setWebGPURenderer(t.WebGPURenderer),l.setNumberOfInstances(1);var c=l.getVertexInput().getBuffer("vertexBC");l.setNumberOfVertices(c.getSizeInBytes()/c.getStrideInBytes()),l.setTopology(e.getTopologyFromUsage(s)),l.build(t.renderEncoder,a),l.registerToDraw()}},e.setShaderReplacement=function(e,n){for(var r=Lf.Start;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","handle"]),f.a.setGet(e,t,["bindGroupLayoutEntry","device","name"]),function(e,t){t.classHierarchy.push("vtkWebGPUSampler"),e.create=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.device=e,t.handle=t.device.getHandle().createSampler({magFilter:n.magFilter?n.magFilter:"nearest",minFilter:n.minFilter?n.minFilter:"nearest"}),t.bindGroupTime.modified()},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": sampler;")},e.getBindGroupEntry=function(){return{resource:t.handle}}}(e,t)}var Xf={newInstance:f.a.newInstance(Kf),extend:Kf};var qf={texture:null,handle:null,name:null,sampler:null};function Yf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qf,n),f.a.obj(e,t),t.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{}},t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),f.a.get(e,t,["bindGroupTime","name","texture"]),f.a.setGet(e,t,["bindGroupLayoutEntry","sampler"]),function(e,t){t.classHierarchy.push("vtkWebGPUTextureView"),e.create=function(e,n){t.texture=e,t.options=n,t.textureHandle=e.getHandle(),t.handle=t.textureHandle.createView(t.options)},e.getBindGroupEntry=function(){return{resource:e.getHandle()}},e.getShaderCode=function(e,n){return"[[binding(".concat(e,"), group(").concat(n,")]] var ").concat(t.name,": texture_2d;")},e.addSampler=function(n,r){var a=Xf.newInstance();a.create(n,r),e.setSampler(a),t.sampler.setName("".concat(t.name,"Sampler"))},e.setName=function(n){t.sampler&&t.sampler.setName("".concat(n,"Sampler")),t.name!==n&&(t.name=n,e.modified())},e.getHandle=function(){return t.texture.getHandle()!==t.textureHandle&&(t.textureHandle=t.texture.getHandle(),t.handle=t.textureHandle.createView(t.options),t.bindGroupTime.modified()),t.handle}}(e,t)}var Zf={newInstance:f.a.newInstance(Yf),extend:Yf},Qf=ad.BufferUsage;var $f={device:null,handle:null,buffer:null,ready:!1};function Jf(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$f,n),f.a.obj(e,t),f.a.get(e,t,["handle","ready","width","height","depth","format","usage"]),f.a.setGet(e,t,["device"]),function(e,t){t.classHierarchy.push("vtkWebGPUTexture"),e.create=function(e,n){t.device=e,t.width=n.width,t.height=n.height,t.depth=n.depth?n.depth:1;var r=1===t.depth?"2d":"3d";t.format=n.format?n.format:"rgbaunorm",t.usage=n.usage?n.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage,dimension:r})},e.assignFromHandle=function(e,n,r){t.device=e,t.handle=n,t.width=r.width,t.height=r.height,t.depth=r.depth?r.depth:1,t.format=r.format?r.format:"rgbaunorm",t.usage=r.usage?r.usage:GPUTextureUsage.SAMPLED|GPUTextureUsage.COPY_DST},e.writeImageData=function(e){var n=4*t.width;if(e.dataArray){var r={dataArray:e.dataArray,time:e.dataArray.getMTime(),usage:Qf.Texture,format:"unorm8x4"};if(t.width%64){for(var a=e.dataArray.getData(),o=64*Math.floor((t.width+63)/64),i=new Uint8Array(o*t.height*4),s=0;s2&&void 0!==arguments[2]?arguments[2]:1;e===t.width&&n===t.height&&r===t.depth||(t.width=e,t.height=n,t.depth=r,t.handle=t.device.getHandle().createTexture({size:[t.width,t.height,t.depth],format:t.format,usage:t.usage}))},e.createView=function(t){var n=Zf.newInstance();return n.create(e,t),n}}(e,t)}f.a.newInstance(Jf);var ep={PassTypes:{MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,MAX_KNOWN_PASS:2}};function tp(e,t,n,r,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function np(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var o=e.apply(t,n);function i(e){tp(o,r,a,i,s,"next",e)}function s(e){tp(o,r,a,i,s,"throw",e)}i(void 0)})}}var rp={fieldAssociation:Cn.FieldAssociations.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function ap(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rp,n),f.a.obj(e,t),f.a.setGet(e,t,["fieldAssociation","captureZValues"]),function(e,t){t.classHierarchy.push("vtkHardwareSelector"),e.getSourceDataAsync=function(){var e=np(regeneratorRuntime.mark(function e(t,n,r,a,o){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)}));return function(t,n,r,a,o){return e.apply(this,arguments)}}(),e.selectAsync=function(){var t=np(regeneratorRuntime.mark(function t(n,r,a,o,i){var s;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.getSourceDataAsync(n,r,a,o,i);case 2:if(!(s=t.sent)){t.next=5;break}return t.abrupt("return",s.generateSelection(r,a,o,i));case 5:return t.abrupt("return",[]);case 6:case"end":return t.stop()}},t)}));return function(e,n,r,a,o){return t.apply(this,arguments)}}()}(e,t)}var op={newInstance:f.a.newInstance(ap,"vtkHardwareSelector"),extend:ap},ip={SelectionContent:{GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},SelectionField:{CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5}};function sp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var cp={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function up(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cp,n),f.a.obj(e,t),t.properties={},f.a.setGet(e,t,["contentType","fieldType","properties","selectionList"]),function(e,t){t.classHierarchy.push("vtkSelectionNode"),e.getBounds=function(){return t.points.getBounds()}}(e,t)}var dp=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.area[2]||t[1]e.area[3])return null;var o=[t[0]-e.area[0],t[1]-e.area[1]],i=wp(o[0],o[1],e.pixBuffer[hp.ACTOR_PASS],e.area);if(i<=0)return null;var s={valid:!0};s.propID=i-Sp,s.prop=e.props[s.propID];var l=wp(o[0],o[1],e.pixBuffer[hp.COMPOSITE_INDEX_PASS],e.area);if((l<0||l>16777215)&&(l=0),s.compositeID=l-Sp,e.captureZValues){var c=4*(o[1]*(e.area[2]-e.area[0]+1)+o[0]);s.zValue=(256*e.zBuffer[c]+e.zBuffer[c+1])/65535,s.displayPosition=t}return s}var u=[t[0],t[1]],d=[0,0],f=xp(e,t,0,r);if(f&&f.valid)return f;for(var p=1;pp?u[1]-p:0;g<=u[1]+p;++g){if(d[1]=g,u[0]>=p&&(d[0]=u[0]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[0]=u[0]+p,(f=xp(e,d,0,r))&&f.valid)return f}for(var m=u[0]>=p?u[0]-(p-1):0;m<=u[0]+(p-1);++m){if(d[0]=m,u[1]>=p&&(d[1]=u[1]-p,(f=xp(e,d,0,r))&&f.valid))return f;if(d[1]=u[1]+p,(f=xp(e,d,0,r))&&f.valid)return f}}return r[0]=t[0],r[1]=t[1],null}function Op(e,t,n,r,a){var o=[],i=0;return t.forEach(function(t,s){var l=dp.newInstance();switch(l.setContentType(yp.INDICES),e){case Tp.FIELD_ASSOCIATION_CELLS:l.setFieldType(bp.CELL);break;case Tp.FIELD_ASSOCIATION_POINTS:l.setFieldType(bp.POINT);break;default:Cp("Unknown field association")}l.getProperties().propID=t.info.propID,l.getProperties().prop=t.info.prop,l.getProperties().compositeID=t.info.compositeID,l.getProperties().pixelCount=t.pixelCount,n&&(l.getProperties().displayPosition=[t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue],l.getProperties().worldPosition=a.displayToWorld(t.info.displayPosition[0],t.info.displayPosition[1],t.info.zValue,r)),l.setSelectionList(t.attributeIDs),o[i]=l,i++}),o}function Mp(e,t,n,r,a){for(var o=Math.floor(t),i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=new Map,u=[0,0],d=i;d<=l;d++)for(var f=o;f<=s;f++){var p=xp(e,[f,d],0,u);if(p&&p.valid){var g=Pp(p);if(c.has(g)){var m=c.get(g);m.pixelCount++,e.captureZValues&&p.zValue0&&(--a in t.hitProps||(t.hitProps[a]=!0))}},e.renderProp=function(n){t.currentPass===hp.ACTOR_PASS&&(e.setPropColorValueFromInt(t.props.length+Sp),t.props.push(n))},e.renderCompositeIndex=function(n){t.currentPass===hp.COMPOSITE_INDEX_PASS&&e.setPropColorValueFromInt(n+Sp)},e.renderAttributeId=function(e){e<0||(t.maxAttributeId=e>t.maxAttributeId?e:t.maxAttributeId)},e.passTypeToString=function(e){return f.a.enumToString(hp,e)},e.isPropHit=function(e){return Boolean(t.hitProps[e])},e.setPropColorValueFromInt=function(e){t.propColorValue[0]=e%256/255,t.propColorValue[1]=Math.floor(e/256)%256/255,t.propColorValue[2]=Math.floor(e/65536)%256/255},e.getPixelInformation=function(n,r,a){var o=r<0?0:r;if(0===o){if(a[0]=n[0],a[1]=n[1],n[0]t.area[2]||n[1]t.area[3])return null;var i=[n[0]-t.area[0],n[1]-t.area[1]],s=wp(i[0],i[1],t.pixBuffer[hp.ACTOR_PASS],t.area);if(s<=0)return null;var l={valid:!0};l.propID=s-Sp,l.prop=t.props[l.propID];var c=wp(i[0],i[1],t.pixBuffer[hp.COMPOSITE_INDEX_PASS],t.area);if((c<0||c>16777215)&&(c=0),l.compositeID=c-Sp,t.captureZValues){var u=4*(i[1]*(t.area[2]-t.area[0]+1)+i[0]);l.zValue=(256*t.zBuffer[u]+t.zBuffer[u+1])/65535,l.displayPosition=n}return l}var d=[n[0],n[1]],f=[0,0],p=e.getPixelInformation(n,0,a);if(p&&p.valid)return p;for(var g=1;gg?d[1]-g:0;m<=d[1]+g;++m){if(f[1]=m,d[0]>=g&&(f[0]=d[0]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[0]=d[0]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}for(var v=d[0]>=g?d[0]-(g-1):0;v<=d[0]+(g-1);++v){if(f[0]=v,d[1]>=g&&(f[1]=d[1]-g,(p=e.getPixelInformation(f,0,a))&&p.valid))return p;if(f[1]=d[1]+g,(p=e.getPixelInformation(f,0,a))&&p.valid)return p}}return a[0]=n[0],a[1]=n[1],null},e.generateSelection=function(n,r,a,o){for(var i=Math.floor(n),s=Math.floor(r),l=Math.floor(a),c=Math.floor(o),u=new Map,d=[0,0],f=s;f<=c;f++)for(var p=i;p<=l;p++){var g=[p,f],m=e.getPixelInformation(g,0,d);if(m&&m.valid){var v=Pp(m);if(u.has(v)){var h=u.get(v);h.pixelCount++,t.captureZValues&&m.zValue2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ip,n),op.extend(e,t,n),t.propColorValue=[0,0,0],t.props=[],t.area||(t.area=[0,0,0,0]),f.a.setGetArray(e,t,["area"],4),f.a.setGet(e,t,["renderer","currentPass","openGLRenderWindow"]),f.a.setGetArray(e,t,["propColorValue"],3),f.a.event(e,t,"event"),Ap(e,t)}var Ep=function(e){for(var t=1;t0){var o=e.Vertex;t.lastBoundBO.getCABO().getNormalOffset()&&(o=_l.substitute(o,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,o=_l.substitute(o,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),e.Vertex=o}n.replaceShaderNormal(e,r,a)},e.replaceShaderColor=function(e,r,a){if(t.hardwareSupport&&t.renderable.getColorArray()){var o=e.Vertex,i=e.Geometry,s=e.Fragment,l=t.lastBoundBO.getReferenceByName("lastLightComplexity"),c=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(c=c.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));var u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),t.drawingEdges||(c=c.concat(["varying vec4 vertexColorVSOutput;"]),o=_l.substitute(o,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,o=_l.substitute(o,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,i=_l.substitute(i,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,i=_l.substitute(i,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),s=_l.substitute(s,"//VTK::Color::Impl",u).result,s=_l.substitute(s,"//VTK::Color::Dec",c).result,e.Vertex=o,e.Geometry=i,e.Fragment=s}n.replaceShaderColor(e,r,a)},e.replaceShaderPositionVC=function(e,r,a){if(t.hardwareSupport){var o=e.Vertex;t.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(o=_l.substitute(o,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,o=_l.substitute(o,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),e.Vertex=o}n.replaceShaderPositionVC(e,r,a)},e.replaceShaderPicking=function(e,r,a){if(t.hardwareSupport){var o=e.Fragment,i=e.Vertex;i=_l.substitute(i,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,i=_l.substitute(i,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,e.Vertex=i,o=_l.substitute(o,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,o=_l.substitute(o,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,e.Fragment=o}else n.replaceShaderPicking(e,r,a)},e.updateGlyphShaderParameters=function(n,r,a,o,i,s,l,c){var u=a.getProgram();if(n){var d=t.normalMatrix,f=s,p=9*l,g=t.tmpMat3,m=d[0],v=d[1],h=d[2],y=d[3],b=d[4],T=d[5],C=d[6],S=d[7],P=d[8],w=f[p],x=f[p+1],O=f[p+2],M=f[p+3],A=f[p+4],I=f[p+5],R=f[p+6],E=f[p+7],D=f[p+8];g[0]=w*m+x*y+O*C,g[1]=w*v+x*b+O*S,g[2]=w*h+x*T+O*P,g[3]=M*m+A*y+I*C,g[4]=M*v+A*b+I*S,g[5]=M*h+A*T+I*P,g[6]=R*m+E*y+D*C,g[7]=R*v+E*b+D*S,g[8]=R*h+E*T+D*P,u.setUniformMatrix3x3("normalMatrix",t.tmpMat3)}if(e.multiply4x4WithOffset(t.tmpMat4,t.mcpcMatrix,i,16*l),u.setUniformMatrix("MCPCMatrix",t.tmpMat4),r&&(e.multiply4x4WithOffset(t.tmpMat4,t.mcvcMatrix,i,16*l),u.setUniformMatrix("MCVCMatrix",t.tmpMat4)),o){var V=o.getData();t.tmpColor[0]=V[4*l]/255,t.tmpColor[1]=V[4*l+1]/255,t.tmpColor[2]=V[4*l+2]/255,u.setUniform3fArray("ambientColorUniform",t.tmpColor),u.setUniform3fArray("diffuseColorUniform",t.tmpColor)}c&&u.setUniform3fArray("mapperIndex",c.getPropColorValue())},e.renderPieceDraw=function(n,r){var i=r.getProperty().getRepresentation(),s=t.context,l=r.getProperty().getEdgeVisibility()&&i===Np.SURFACE,c=t.openGLCamera.getKeyMatrices(n),u=t.openGLActor.getKeyMatrices();a.multiply(t.normalMatrix,c.normalMatrix,u.normalMatrix),o.multiply(t.mcpcMatrix,c.wcpc,u.mcwc),o.multiply(t.mcvcMatrix,c.wcvc,u.mcwc);var d=t.renderable.getMatrixArray(),f=t.renderable.getNormalArray(),p=t.renderable.getColorArray(),g=d.length/16,m=!1;t.openGLRenderer.getSelector()&&t.openGLRenderer.getSelector().getCurrentPass()===kp.COMPOSITE_INDEX_PASS&&(m=!0);for(var v=t.primTypes.Start;ve.getAttributeUpdateTime().getMTime()||e.getShaderSourceTime().getMTime()>e.getAttributeUpdateTime().getMTime()))return e.getProgram().isAttributeUsed("gMatrix")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.matrixBuffer,"gMatrix",0,64,t.context.FLOAT,4,!1,1)||Lp("Error setting gMatrix in shader VAO."):e.getVAO().removeAttributeArray("gMatrix"),e.getProgram().isAttributeUsed("gNormal")?e.getVAO().addAttributeMatrixWithDivisor(e.getProgram(),t.normalBuffer,"gNormal",0,36,t.context.FLOAT,3,!1,1)||Lp("Error setting gNormal in shader VAO."):e.getVAO().removeAttributeArray("gNormal"),e.getProgram().isAttributeUsed("gColor")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.colorBuffer,"gColor",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting gColor in shader VAO."):e.getVAO().removeAttributeArray("gColor"),e.getProgram().isAttributeUsed("mapperIndexVS")?e.getVAO().addAttributeArrayWithDivisor(e.getProgram(),t.pickBuffer,"mapperIndexVS",0,4,t.context.UNSIGNED_BYTE,4,!0,1,!1)||Lp("Error setting mapperIndexVS in shader VAO."):e.getVAO().removeAttributeArray("mapperIndexVS"),n.setMapperShaderParameters(e,r,a),void e.getAttributeUpdateTime().modified();n.setMapperShaderParameters(e,r,a)},e.getNeedToRebuildBufferObjects=function(e,r){return t.renderable.buildArrays(),t.VBOBuildTime.getMTime()t.glyphBOBuildTime.getMTime()){t.matrixBuffer.upload(a,Bp.ARRAY_BUFFER),t.normalBuffer.upload(o,Bp.ARRAY_BUFFER),i?t.colorBuffer.upload(i.getData(),Bp.ARRAY_BUFFER):t.colorBuffer.releaseGraphicsResources();for(var s=a.length/16,l=new Uint8Array(4*s),c=0;c2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Up,n),Sf.extend(e,t,n),t.tmpMat3=a.identity(new Float64Array(9)),t.normalMatrix=a.identity(new Float64Array(9)),t.mcpcMatrix=o.identity(new Float64Array(16)),t.mcvcMatrix=o.identity(new Float64Array(16)),t.tmpColor=[],t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),_p(e,t)}var Wp=f.d(jp,"vtkOpenGLGlyph3DMapper");al("vtkGlyph3DMapper",Wp);var zp=ad.BufferUsage,Hp=f.a.vtkErrorMacro;var Kp={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,name:null,numberOfInstances:1};function Xp(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Kp,n),f.a.obj(e,t),t._bufferEntryNames=new Map,t.bufferEntries=[],t._sendTime={},f.a.obj(t._sendTime,{mtime:0}),t.bindGroupTime={},f.a.obj(t.bindGroupTime,{mtime:0}),t.bindGroupLayoutEntry=t.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},f.a.get(e,t,["bindGroupTime"]),f.a.setGet(e,t,["device","bindGroupLayoutEntry","name","numberOfInstances","sizeInBytes"]),function(e,t){t.classHierarchy.push("vtkWebGPUStorageBuffer"),e.addEntry=function(e,n){if(t._bufferEntryNames.has(e))Hp("entry named ".concat(e," already exists"));else{t._bufferEntryNames.set(e,t.bufferEntries.length);var r=gu.getByteStrideFromShaderFormat(n);t.bufferEntries.push({name:e,type:n,sizeInBytes:r,offset:t.sizeInBytes,nativeType:gu.getNativeTypeFromShaderFormat(n)}),t.sizeInBytes+=r}},e.send=function(e){if(!t._buffer){var n={nativeArray:t.Float32Array,time:0,usage:zp.Storage};return t._buffer=e.getBufferManager().getBuffer(n),t.bindGroupTime.modified(),void t._sendTime.modified()}e.getHandle().queue.writeBuffer(t._buffer.getHandle(),0,t.arrayBuffer,0,t.sizeInBytes*t.numberOfInstances),t._sendTime.modified()},e.createView=function(e){e in t==0&&(t.arrayBuffer||(t.arrayBuffer=new ArrayBuffer(t.sizeInBytes*t.numberOfInstances)),t[e]=f.a.newTypedArray(e,t.arrayBuffer))},e.setValue=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);var s=t[i.nativeType];s[(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT]=a}else Hp("entry named ".concat(n," not found in UBO"))},e.setArray=function(n,r,a){var o=t._bufferEntryNames.get(n);if(void 0!==o){var i=t.bufferEntries[o];e.createView(i.nativeType);for(var s=t[i.nativeType],l=(i.offset+r*t.sizeInBytes)/s.BYTES_PER_ELEMENT,c=0;c;\n};\n[[binding(").concat(e,"), group(").concat(n,")]] var ").concat(t.name,": [[access(read)]] ").concat(t.name,"Struct;\n")),r.join("\n")},e.getBindGroupEntry=function(){return{resource:{buffer:t._buffer.getHandle()}}},e.clearData=function(){t.numberOfInstances=0,t.sizeInBytes=0,t.bufferEntries=[],t._bufferEntryNames=new Map,t._buffer=null,delete t.arrayBuffer,delete t.Float32Array}}(e,t)}var qp={newInstance:f.a.newInstance(Xp,"vtkWebGPUStorageBuffer"),extend:Xp};function Yp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qp=ad.PrimitiveTypes;function $p(e,t){t.classHierarchy.push("vtkWebGPUGlyph3DMapper");var n=function(e){for(var t=1;t","[[builtin(position)]] Position");var a=r.getCode();a=su.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix"," *glyphSSBO.values[input.instanceIndex].matrix"," *vertexBC;"]).result,r.setCode(a)},e.replaceShaderNormal=function(e,t,r){if(r.hasAttribute("normalMC")){var a=t.getShaderDescription("vertex"),o=a.getCode();o=su.substitute(o,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals"," * mapperUBO.MCWCNormals"," * glyphSSBO.values[input.instanceIndex].normal*normalMC).xyz);"]).result,a.setCode(o)}n.replaceShaderNormal(e,t,r)},e.replaceShaderColor=function(e,r,a){if(t.carray){var o=r.getShaderDescription("vertex");o.addOutput("vec4","color");var i=o.getCode();i=su.substitute(i,"//VTK::Color::Impl",[" output.color = glyphSSBO.values[input.instanceIndex].color;"]).result,o.setCode(i);var s=r.getShaderDescription("fragment");i=s.getCode(),i=su.substitute(i,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,s.setCode(i)}else n.replaceShaderColor(e,r,a)},e.replaceShaderSelect=function(e,t,n){if(e.includes("sel")){var r=t.getShaderDescription("vertex");r.addOutput("u32","compositeID");var a=r.getCode();a=su.substitute(a,"//VTK::Select::Impl",[" output.compositeID = input.instanceIndex;"]).result,r.setCode(a);var o=t.getShaderDescription("fragment");a=o.getCode(),a=su.substitute(a,"//VTK::Select::Impl",["var compositeID: u32 = input.compositeID;"]).result,o.setCode(a)}},e.buildPrimitives=function(){t.currentInput=t.renderable.getInputData(1),t.renderable.buildArrays();var e=t.renderable.getMatrixArray(),r=t.renderable.getNormalArray();t.carray=t.renderable.getColorArray();var a=e.length/16;if(t.renderable.getBuildTime().getMTime()>t.glyphBOBuildTime.getMTime()){var o=t.WebGPURenderWindow.getDevice();t.SSBO.clearData(),t.SSBO.setNumberOfInstances(a),t.SSBO.addEntry("matrix","mat4x4"),t.SSBO.addEntry("normal","mat4x4"),t.carray&&t.SSBO.addEntry("color","vec4"),t.SSBO.setAllInstancesFromArray("matrix",e),t.SSBO.setAllInstancesFromArray3x3To4x4("normal",r),t.carray&&t.SSBO.setAllInstancesFromArrayColorToFloat("color",t.carray.getData()),t.SSBO.send(o),t.glyphBOBuildTime.modified()}n.buildPrimitives();for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jp,n),zf.extend(e,t,n),t.glyphBOBuildTime={},f.g(t.glyphBOBuildTime,{mtime:0}),t.SSBO=qp.newInstance(),t.SSBO.setName("glyphSSBO"),$p(e,t);for(var r=Qp.Start;r1&&void 0!==arguments[1]?arguments[1]:{};return rg[e]&&rg[e](t)}var ig={defaultViewAPI:ng,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1};function sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ig,n),f.a.obj(e,t),f.a.setGet(e,t,["interactor","numberOfLayers","views","defaultViewAPI"]),f.a.get(e,t,["neverRendered"]),f.a.getArray(e,t,["renderers"]),f.a.event(e,t,"completion"),function(e,t){t.classHierarchy.push("vtkRenderWindow"),e.addRenderer=function(n){e.hasRenderer(n)||(n.setRenderWindow(e),t.renderers.push(n),e.modified())},e.removeRenderer=function(n){t.renderers=t.renderers.filter(function(e){return e!==n}),e.modified()},e.hasRenderer=function(e){return-1!==t.renderers.indexOf(e)},e.newAPISpecificView=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return og(e||t.defaultViewAPI,n)},e.addView=function(n){e.hasView(n)||(n.setRenderable(e),t.views.push(n),e.modified())},e.removeView=function(n){t.views=t.views.filter(function(e){return e!==n}),e.modified()},e.hasView=function(e){return-1!==t.views.indexOf(e)},e.render=function(){t.interactor?t.interactor.render():t.views.forEach(function(e){return e.traverseAllPasses()})},e.getStatistics=function(){var e={propCount:0,invisiblePropCount:0};return t.renderers.forEach(function(t){t.getViewProps().forEach(function(t){if(t.getVisibility()){e.propCount+=1;var n=t.getMapper&&t.getMapper();if(n&&n.getPrimitiveCount){var r=n.getPrimitiveCount();Object.keys(r).forEach(function(t){e[t]||(e[t]=0),e[t]+=r[t]})}}else e.invisiblePropCount+=1})}),e.str=Object.keys(e).map(function(t){return"".concat(t,": ").concat(e[t])}).join("\n"),e},e.captureImages=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return f.a.setImmediate(e.render),t.views.map(function(e){return e.captureNextImage?e.captureNextImage(n,r):void 0}).filter(function(e){return!!e})}}(e,t)}var lg={newInstance:f.a.newInstance(sg,"vtkRenderWindow"),extend:sg,registerViewConstructor:ag,listViewAPIs:function(){return Object.keys(rg)},newAPISpecificView:og};var cg={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function ug(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cg,n),f.a.obj(e,t),f.a.get(e,t,["currentOperation"]),f.a.setGet(e,t,["delegates","currentParent","preDelegateOperations","postDelegateOperations"]),function(e,t){t.classHierarchy.push("vtkRenderPass"),e.getOperation=function(){return t.currentOperation},e.setCurrentOperation=function(e){t.currentOperation=e,t.currentTraverseOperation="traverse".concat(f.a.capitalize(t.currentOperation))},e.getTraverseOperation=function(){return t.currentTraverseOperation},e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t.deleted||(t.currentParent=r,t.preDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}),t.delegates.forEach(function(t){t.traverse(n,e)}),t.postDelegateOperations.forEach(function(t){e.setCurrentOperation(t),n.traverse(e)}))}}(e,t)}var dg={newInstance:f.a.newInstance(ug,"vtkRenderPass"),extend:ug};var fg={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,framebuffer:null,depthRequested:!1};function pg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fg,n),dg.extend(e,t,n),f.a.get(e,t,["framebuffer"]),function(e,t){t.classHierarchy.push("vtkForwardPass"),e.traverse=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t.deleted){t.currentParent=r,e.setCurrentOperation("buildPass"),n.traverse(e);for(var a=n.getRenderable().getNumberOfLayers(),o=n.getChildren(),i=0;i0&&t.volumeCount>0||t.depthRequested){var u=n.getFramebufferSize();null===t.framebuffer&&(t.framebuffer=Ac.newInstance()),t.framebuffer.setOpenGLRenderWindow(n),t.framebuffer.saveCurrentBindingsAndBuffers();var d=t.framebuffer.getSize();null!==d&&d[0]===u[0]&&d[1]===u[1]||(t.framebuffer.create(u[0],u[1]),t.framebuffer.populateFramebuffer()),t.framebuffer.bind(),e.setCurrentOperation("opaqueZBufferPass"),l.traverse(e),t.framebuffer.restorePreviousBindingsAndBuffers(),t.depthRequested=!1}e.setCurrentOperation("cameraPass"),l.traverse(e),t.opaqueActorCount>0&&(e.setCurrentOperation("opaquePass"),l.traverse(e)),t.translucentActorCount>0&&(e.setCurrentOperation("translucentPass"),l.traverse(e)),t.volumeCount>0&&(e.setCurrentOperation("volumePass"),l.traverse(e))}}}},e.getZBufferTexture=function(){return t.framebuffer?t.framebuffer.getColorTexture():null},e.requestDepth=function(){t.depthRequested=!0},e.incrementOpaqueActorCount=function(){return t.opaqueActorCount++},e.incrementTranslucentActorCount=function(){return t.translucentActorCount++},e.incrementVolumeCount=function(){return t.volumeCount++}}(e,t)}var gg={newInstance:f.a.newInstance(pg,"vtkForwardPass"),extend:pg},mg=n(12),vg=n.n(mg),hg=["lastShaderBound","context","openGLRenderWindow"];var yg={lastShaderBound:null,shaderPrograms:null,context:null,openGLRenderWindow:null};function bg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,yg,n),t.shaderPrograms={},f.a.obj(e,t),f.a.setGet(e,t,hg),function(e,t){t.classHierarchy.push("vtkShaderCache"),e.replaceShaderValues=function(e,n,r){var a=n;r.length>0&&(a=_l.substitute(a,"VSOut","GSOut").result);var o=t.openGLRenderWindow.getWebgl2(),i="\n",s="#version 100\n";o?s="#version 300 es\n#define attribute in\n#define textureCube texture\n#define texture2D texture\n#define textureCubeLod textureLod\n#define texture2DLod textureLod\n":(t.context.getExtension("OES_standard_derivatives"),t.context.getExtension("EXT_frag_depth")&&(i="#extension GL_EXT_frag_depth : enable\n"),t.context.getExtension("EXT_shader_texture_lod")&&(i+="#extension GL_EXT_shader_texture_lod : enable\n#define textureCubeLod textureCubeLodEXT\n#define texture2DLod texture2DLodEXT")),a=_l.substitute(a,"//VTK::System::Dec",["".concat(s,"\n"),o?"":"#extension GL_OES_standard_derivatives : enable\n",i,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;var l=_l.substitute(e,"//VTK::System::Dec",["".concat(s,"\n"),"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;return o&&(l=_l.substitute(l,"varying","out").result,a=_l.substitute(a,"varying","in").result,a=_l.substitute(a,"gl_FragData\\[0\\]","fragOutput0").result,a=_l.substitute(a,"//VTK::Output::Dec","layout(location = 0) out vec4 fragOutput0;").result),{VSSource:l,FSSource:a,GSSource:_l.substitute(r,"//VTK::System::Dec",s).result}},e.readyShaderProgramArray=function(t,n,r){var a=e.replaceShaderValues(t,n,r),o=e.getShaderProgram(a.VSSource,a.FSSource,a.GSSource);return e.readyShaderProgram(o)},e.readyShaderProgram=function(t){return t&&(t.getCompiled()||t.compileShader())&&e.bindShader(t)?t:null},e.getShaderProgram=function(e,n,r){var a="".concat(e).concat(n).concat(r),o=vg()(a);if(-1===Object.keys(t.shaderPrograms).indexOf(o)){var i=_l.newInstance();return i.setContext(t.context),i.getVertexShader().setSource(e),i.getFragmentShader().setSource(n),r&&i.getGeometryShader().setSource(r),i.setMd5Hash(o),t.shaderPrograms[o]=i,i}return t.shaderPrograms[o]},e.releaseGraphicsResources=function(n){e.releaseCurrentShader(),Object.keys(t.shaderPrograms).map(function(e){return t.shaderPrograms[e]}).forEach(function(e){return e.releaseGraphicsResources(n)})},e.releaseGraphicsResources=function(){t.astShaderBound&&(t.lastShaderBound.release(),t.lastShaderBound=null)},e.bindShader=function(e){return t.lastShaderBound===e?1:(t.lastShaderBound&&t.lastShaderBound.release(),e.bind(),t.lastShaderBound=e,1)}}(e,t)}var Tg={newInstance:f.a.newInstance(bg,"vtkShaderCache"),extend:bg};var Cg={size:void 0,selector:void 0};function Sg(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Cg,n),t.size||(t.size=[300,300]),f.a.getArray(e,t,["size"],2),f.a.get(e,t,["selector"]),Js.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkRenderWindowViewNode"),e.getViewNodeFactory=function(){return null},e.getAspectRatio=function(){return t.size[0]/t.size[1]},e.getAspectRatioForRenderer=function(e){var n=e.getViewportByReference();return t.size[0]*(n[2]-n[0])/((n[3]-n[1])*t.size[1])},e.isInViewport=function(t,n,r){var a=r.getViewportByReference(),o=e.getFramebufferSize();return a[0]*o[0]<=t&&a[2]*o[0]>=t&&a[1]*o[1]<=n&&a[3]*o[1]>=n},e.getViewportSize=function(t){var n=t.getViewportByReference(),r=e.getFramebufferSize();return[(n[2]-n[0])*r[0],(n[3]-n[1])*r[1]]},e.getViewportCenter=function(t){var n=e.getViewportSize(t);return[.5*n[0],.5*n[1]]},e.displayToNormalizedDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t/a[0],n/a[1],r]},e.normalizedDisplayToDisplay=function(t,n,r){var a=e.getFramebufferSize();return[t*a[0],n*a[1],r]},e.worldToView=function(e,t,n,r){return r.worldToView(e,t,n)},e.viewToWorld=function(e,t,n,r){return r.viewToWorld(e,t,n)},e.worldToDisplay=function(t,n,r,a){var o=a.worldToView(t,n,r),i=e.getViewportSize(a),s=a.viewToProjection(o[0],o[1],o[2],i[0]/i[1]),l=a.projectionToNormalizedDisplay(s[0],s[1],s[2]);return e.normalizedDisplayToDisplay(l[0],l[1],l[2])},e.displayToWorld=function(t,n,r,a){var o=e.displayToNormalizedDisplay(t,n,r),i=a.normalizedDisplayToProjection(o[0],o[1],o[2]),s=e.getViewportSize(a),l=a.projectionToView(i[0],i[1],i[2],s[0]/s[1]);return a.viewToWorld(l[0],l[1],l[2])},e.normalizedDisplayToViewport=function(t,n,r,a){var o=a.getViewportByReference();o=e.normalizedDisplayToDisplay(o[0],o[1],0);var i=e.normalizedDisplayToDisplay(t,n,r);return[i[0]-o[0]-.5,i[1]-o[1]-.5,r]},e.viewportToNormalizedViewport=function(t,n,r,a){var o=e.getViewportSize(a);return o&&0!==o[0]&&0!==o[1]?[t/(o[0]-1),n/(o[1]-1),r]:[t,n,r]},e.normalizedViewportToViewport=function(t,n,r){var a=e.getFramebufferSize();return[t*(a[0]-1),n*(a[1]-1),r]},e.displayToLocalDisplay=function(t,n,r){return[t,e.getFramebufferSize()[1]-n-1,r]},e.viewportToNormalizedDisplay=function(t,n,r,a){var o=a.getViewportByReference(),i=t+(o=e.normalizedDisplayToDisplay(o[0],o[1],0))[0]+.5,s=n+o[1]+.5;return e.displayToNormalizedDisplay(i,s,r)},e.getPixelData=function(e,t,n,r){f.a.vtkErrorMacro("not implemented")}}(e,t)}var Pg={newInstance:f.a.newInstance(Sg,"vtkRenderWindowViewNode"),extend:Sg},wg=f.a.vtkErrorMacro;var xg={context:null,numberOfTextureUnits:0,textureUnits:0};function Og(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xg,n),f.a.obj(e,t),t.textureUnits=[],f.a.get(e,t,["numberOfTextureUnits"]),f.a.setGet(e,t,["context"]),function(e,t){t.classHierarchy.push("vtkOpenGLTextureUnitManager"),e.deleteTable=function(){for(var e=0;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0},r=null,a="undefined"!=typeof WebGL2RenderingContext;return t.webgl2=!1,t.defaultToWebgl2&&a&&(r=t.canvas.getContext("webgl2",n))&&(t.webgl2=!0,Dg("using webgl2")),r||(Dg("using webgl1"),r=t.canvas.getContext("webgl",n)||t.canvas.getContext("experimental-webgl",n)),navigator.getVRDisplays&&navigator.getVRDisplays().then(function(n){n.length>0&&(t.vrDisplay=n[0],t.vrDisplay.depthNear=.01,t.vrDisplay.depthFar=100,e.invokeHaveVRDisplay())}),t.canvas.addEventListener("webglcontextlost",function(e){e.preventDefault()},!1),t.canvas.addEventListener("webglcontextrestored",e.restoreContext,!1),r},e.startVR=function(){t.oldCanvasSize=t.size.slice(),t.vrDisplay.capabilities.canPresent?t.vrDisplay.requestPresent([{source:t.canvas}]).then(function(){if(t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&t.hideCanvasInVR&&(t.el.style.display="none"),t.queryVRSize){var n=t.vrDisplay.getEyeParameters("left"),r=t.vrDisplay.getEyeParameters("right"),a=Math.floor(n.renderWidth+r.renderWidth),o=Math.floor(Math.max(n.renderHeight,r.renderHeight));e.setSize(a,o)}else e.setSize(t.vrResolution);t.renderable.getRenderers()[0].resetCamera(),t.vrFrameData=new VRFrameData,t.renderable.getInteractor().switchToVRAnimation(),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),Lg&&(t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender))}).catch(function(){console.error("failed to requestPresent")}):Vg("vrDisplay is not connected")},e.stopVR=function(){t.renderable.getInteractor().returnFromVRAnimation(),t.vrDisplay.exitPresent(),t.vrDisplay.cancelAnimationFrame(t.vrSceneFrame),e.setSize.apply(e,Ig(t.oldCanvasSize)),t.el&&t.vrDisplay.capabilities.hasExternalDisplay&&(t.el.style.display="block");var n=t.renderable.getRenderers()[0];n.getActiveCamera().setProjectionMatrix(null),n.setViewport(0,0,1,1),e.traverseAllPasses()},e.vrRender=function(){if(t.vrDisplay.isPresenting){t.renderable.getInteractor().updateGamepads(t.vrDisplay.displayId),t.vrSceneFrame=t.vrDisplay.requestAnimationFrame(e.vrRender),t.vrDisplay.getFrameData(t.vrFrameData);var n=t.renderable.getRenderers()[0];n.setViewport(0,0,.5,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.leftViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.leftProjectionMatrix),e.traverseAllPasses(),n.setViewport(.5,0,1,1),n.getActiveCamera().computeViewParametersFromPhysicalMatrix(t.vrFrameData.rightViewMatrix),n.getActiveCamera().setProjectionMatrix(t.vrFrameData.rightProjectionMatrix),e.traverseAllPasses(),t.vrDisplay.submitFrame()}},e.restoreContext=function(){var t=dg.newInstance();t.setCurrentOperation("Release"),t.traverse(e,null)},e.activateTexture=function(n){var r=t._textureResourceIds.get(n);if(void 0===r){var a=e.getTextureUnitManager().allocate();a<0?Vg("Hardware does not support the number of textures defined."):(t._textureResourceIds.set(n,a),t.context.activeTexture(t.context.TEXTURE0+a))}else t.context.activeTexture(t.context.TEXTURE0+r)},e.deactivateTexture=function(n){var r=t._textureResourceIds.get(n);void 0!==r&&(e.getTextureUnitManager().free(r),t._textureResourceIds.delete(n))},e.getTextureUnitForTexture=function(e){var n=t._textureResourceIds.get(e);return void 0!==n?n:-1},e.getDefaultTextureInternalFormat=function(e,n,r){if(t.webgl2)switch(e){case u.UNSIGNED_CHAR:switch(n){case 1:return t.context.R8;case 2:return t.context.RG8;case 3:return t.context.RGB8;case 4:default:return t.context.RGBA8}default:case u.FLOAT:switch(n){case 1:return t.context.R16F;case 2:return t.context.RG16F;case 3:return t.context.RGB16F;case 4:default:return t.context.RGBA16F}}switch(n){case 1:return t.context.LUMINANCE;case 2:return t.context.LUMINANCE_ALPHA;case 3:return t.context.RGB;case 4:default:return t.context.RGBA}},e.setBackgroundImage=function(e){t.bgImage.src=e.src},e.setUseBackgroundImage=function(e){t.useBackgroundImage=e,t.useBackgroundImage&&!t.el.contains(t.bgImage)?t.el.appendChild(t.bgImage):!t.useBackgroundImage&&t.el.contains(t.bgImage)&&t.el.removeChild(t.bgImage)},e.captureNextImage=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"image/png",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.resetCamera,o=void 0!==a&&a,i=r.size,s=void 0===i?null:i,l=r.scale,c=void 0===l?1:l;if(t.deleted)return null;t.imageFormat=n;var u=t.notifyStartCaptureImage;return t.notifyStartCaptureImage=!0,t._screenshot={size:s||1!==c?s||t.size.map(function(e){return e*c}):null},new Promise(function(n,r){var a=e.onImageReady(function(r){if(null===t._screenshot.size)t.notifyStartCaptureImage=u,a.unsubscribe(),t._screenshot.placeHolder&&(t.size=t._screenshot.originalSize,e.modified(),t._screenshot.cameras&&t._screenshot.cameras.forEach(function(e){return(0,e.restoreParamsFn)(e.arg)}),e.traverseAllPasses(),t.el.removeChild(t._screenshot.placeHolder),t._screenshot.placeHolder.remove(),t._screenshot=null),n(r);else{var i=document.createElement("img");i.style=Ng,i.src=r,t._screenshot.placeHolder=t.el.appendChild(i),t.canvas.style.display="none",t._screenshot.originalSize=t.size,t.size=t._screenshot.size,t._screenshot.size=null,e.modified(),o&&(t._screenshot.cameras=t.renderable.getRenderers().map(function(e){var t=e.getActiveCamera(),n=t.get("focalPoint","position","parallelScale");return{resetCameraFn:e.resetCamera,restoreParamsFn:t.set,arg:JSON.parse(JSON.stringify(n))}}),t._screenshot.cameras.forEach(function(e){return(0,e.resetCameraFn)()})),e.traverseAllPasses()}})})},e.getGLInformations=function(){for(var n=e.get3DContext(),r=n.getExtension("OES_texture_float"),a=n.getExtension("OES_texture_half_float"),o=n.getExtension("WEBGL_debug_renderer_info"),i=n.getExtension("WEBGL_draw_buffers"),s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),l=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",n.getParameter(n.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",n.getParameter(n.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",n.getParameter(n.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",s&&n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",n.getParameter(n.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",n.getParameter(n.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",n.getParameter(n.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",n.getParameter(n.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",n.getParameter(n.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",n.getParameter(n.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",n.getParameter(n.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",n.getParameter(n.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",n.getParameter(n.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",n.getParameter(n.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",n.getParameter(n.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",n.getParameter(n.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",n.getParameter(n.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.UNSIGNED_BYTE)?"RGBA":"",r&&Bg(n,n.RGB,n.UNSIGNED_BYTE)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.UNSIGNED_BYTE)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.UNSIGNED_BYTE)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[a&&Bg(n,n.RGBA,a.HALF_FLOAT_OES)?"RGBA":"",a&&Bg(n,n.RGB,a.HALF_FLOAT_OES)?"RGB":"",a&&Bg(n,n.LUMINANCE,a.HALF_FLOAT_OES)?"LUMINANCE":"",a&&Bg(n,n.ALPHA,a.HALF_FLOAT_OES)?"ALPHA":"",a&&Bg(n,n.LUMINANCE_ALPHA,a.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[r&&Bg(n,n.RGBA,n.FLOAT)?"RGBA":"",r&&Bg(n,n.RGB,n.FLOAT)?"RGB":"",r&&Bg(n,n.LUMINANCE,n.FLOAT)?"LUMINANCE":"",r&&Bg(n,n.ALPHA,n.FLOAT)?"ALPHA":"",r&&Bg(n,n.LUMINANCE_ALPHA,n.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",i?n.getParameter(i.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).precision," (-2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMin," - 2",n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",n.getSupportedExtensions().join("
\t\t\t\t\t ")],["WebGL Renderer","RENDERER",n.getParameter(n.RENDERER)],["WebGL Vendor","VENDOR",n.getParameter(n.VENDOR)],["WebGL Version","VERSION",n.getParameter(n.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",n.getParameter(n.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",o&&n.getParameter(o.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",o&&n.getParameter(o.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",t.webgl2?2:1]],c={};l.length;){var u=Ag(l.pop(),3),d=u[0],f=u[1],p=u[2];f&&(c[f]={label:d,value:p})}return c},e.traverseAllPasses=function(){if(t.renderPasses)for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:t.imageFormat,r=document.createElement("canvas"),a=r.getContext("2d");r.width=t.canvas.width,r.height=t.canvas.height,a.drawImage(t.canvas,0,0);var o=t.canvas.getBoundingClientRect();t.renderable.getRenderers().forEach(function(e){e.getViewProps().forEach(function(e){if(e.getContainer)for(var t=e.getContainer().getElementsByTagName("canvas"),n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ug,n),Pg.extend(e,t,n),t.canvas=document.createElement("canvas"),t.canvas.style.width="100%",kg++,Fg.forEach(function(e){return e(kg)}),t.selector||(t.selector=Ep.newInstance(),t.selector.setOpenGLRenderWindow(e)),t.bgImage=new Image,t.bgImage.style.position="absolute",t.bgImage.style.left="0",t.bgImage.style.top="0",t.bgImage.style.width="100%",t.bgImage.style.height="100%",t.bgImage.style.zIndex="-1",t._textureResourceIds=new Map,t.myFactory=sl.newInstance(),t.myFactory.registerOverride("vtkRenderWindow",Wg),t.shaderCache=Tg.newInstance(),t.shaderCache.setOpenGLRenderWindow(e),t.renderPasses[0]=gg.newInstance(),f.a.event(e,t,"imageReady"),f.a.event(e,t,"haveVRDisplay"),f.a.get(e,t,["shaderCache","textureUnitManager","webgl2","vrDisplay","useBackgroundImage"]),f.a.setGet(e,t,["initialized","context","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","queryVRSize","hideCanvasInVR","useOffScreen","activeFramebuffer"]),f.a.setGetArray(e,t,["size","vrResolution"],2),_g(e,t)}var Wg=f.a.newInstance(jg,"vtkOpenGLRenderWindow");ag("WebGL",Wg);var zg={newInstance:Wg,extend:jg,pushMonitorGLContextCount:function(e){Fg.push(e)},popMonitorGLContextCount:function(e){return Fg.pop()}};function Hg(e){return function(e){if(Array.isArray(e))return Kg(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kg(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qg,n),f.a.obj(e,t),f.a.get(e,t,["distance"]),f.a.setGet(e,t,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),f.a.getArray(e,t,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),f.a.setGetArray(e,t,["clippingRange","windowCenter"],2),f.a.setGetArray(e,t,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),function(e,t){t.classHierarchy.push("vtkCamera");var n=new Float64Array(3),r=new Float64Array([0,0,-1]),a=new Float64Array([0,1,0]),c=o.identity(new Float64Array(16)),u=new Float64Array(3),d=new Float64Array(3),f=new Float64Array(3),p=o.identity(new Float64Array(16)),g=o.identity(new Float64Array(16)),m=new Float64Array(3),v=new Float64Array(3);function h(){t.viewPlaneNormal[0]=-t.directionOfProjection[0],t.viewPlaneNormal[1]=-t.directionOfProjection[1],t.viewPlaneNormal[2]=-t.directionOfProjection[2]}e.orthogonalizeViewUp=function(){var n=e.getViewMatrix();t.viewUp[0]=n[4],t.viewUp[1]=n[5],t.viewUp[2]=n[6],e.modified()},e.setPosition=function(n,r,a){n===t.position[0]&&r===t.position[1]&&a===t.position[2]||(t.position[0]=n,t.position[1]=r,t.position[2]=a,e.computeDistance(),e.modified())},e.setFocalPoint=function(n,r,a){n===t.focalPoint[0]&&r===t.focalPoint[1]&&a===t.focalPoint[2]||(t.focalPoint[0]=n,t.focalPoint[1]=r,t.focalPoint[2]=a,e.computeDistance(),e.modified())},e.setDistance=function(n){if(t.distance!==n){t.distance=n,t.distance<1e-20&&(t.distance=1e-20,Xg("Distance is set to minimum."));var r=t.directionOfProjection;t.focalPoint[0]=t.position[0]+r[0]*t.distance,t.focalPoint[1]=t.position[1]+r[1]*t.distance,t.focalPoint[2]=t.position[2]+r[2]*t.distance,e.modified()}},e.computeDistance=function(){var e=t.focalPoint[0]-t.position[0],n=t.focalPoint[1]-t.position[1],r=t.focalPoint[2]-t.position[2];if(t.distance=Math.sqrt(e*e+n*n+r*r),t.distance<1e-20){t.distance=1e-20,Xg("Distance is set to minimum.");var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance}t.directionOfProjection[0]=e/t.distance,t.directionOfProjection[1]=n/t.distance,t.directionOfProjection[2]=r/t.distance,h()},e.dolly=function(n){if(!(n<=0)){var r=t.distance/n;e.setPosition(t.focalPoint[0]-r*t.directionOfProjection[0],t.focalPoint[1]-r*t.directionOfProjection[1],t.focalPoint[2]-r*t.directionOfProjection[2])}},e.roll=function(n){var r=t.position,a=t.focalPoint,i=t.viewUp,l=new Float64Array([i[0],i[1],i[2],0]);o.identity(p);var c=new Float64Array([a[0]-r[0],a[1]-r[1],a[2]-r[2]]);o.rotate(p,p,x(n),c),s.transformMat4(l,l,p),t.viewUp[0]=l[0],t.viewUp[1]=l[1],t.viewUp[2]=l[2],e.modified()},e.azimuth=function(n){var r=t.focalPoint;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.yaw=function(n){var r=t.position;o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),t.viewUp),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint(v[0],v[1],v[2])},e.elevation=function(n){var r=t.focalPoint,a=e.getViewMatrix(),s=[-a[0],-a[1],-a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(m,t.position,g),e.setPosition(m[0],m[1],m[2])},e.pitch=function(n){var r=t.position,a=e.getViewMatrix(),s=[a[0],a[1],a[2]];o.identity(g),o.translate(g,g,r),o.rotate(g,g,x(n),s),o.translate(g,g,[-r[0],-r[1],-r[2]]),i.transformMat4(v,t.focalPoint,g),e.setFocalPoint.apply(e,Hg(v))},e.zoom=function(n){n<=0||(t.parallelProjection?t.parallelScale/=n:t.viewAngle/=n,e.modified())},e.translate=function(n,r,a){var o=[n,r,a];F(t.position,o,t.position),F(t.focalPoint,o,t.focalPoint),e.computeDistance(),e.modified()},e.applyTransform=function(n){var r=[].concat(Hg(t.viewUp),[1]),a=[],o=[],i=[];r[0]+=t.position[0],r[1]+=t.position[1],r[2]+=t.position[2],s.transformMat4(a,[].concat(Hg(t.position),[1]),n),s.transformMat4(o,[].concat(Hg(t.focalPoint),[1]),n),s.transformMat4(i,r,n),i[0]-=a[0],i[1]-=a[1],i[2]-=a[2],e.setPosition.apply(e,Hg(a.slice(0,3))),e.setFocalPoint.apply(e,Hg(o.slice(0,3))),e.setViewUp.apply(e,Hg(i.slice(0,3)))},e.getThickness=function(){return t.clippingRange[1]-t.clippingRange[0]},e.setThickness=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.clippingRange[0],t.clippingRange[0]+r)},e.setThicknessFromFocalPoint=function(n){var r=n;r<1e-20&&(r=1e-20,Xg("Thickness is set to minimum.")),e.setClippingRange(t.distance-r/2,t.distance+r/2)},e.setRoll=function(e){},e.getRoll=function(){},e.setObliqueAngles=function(e,t){},e.getOrientation=function(){},e.getOrientationWXYZ=function(){},e.getFrustumPlanes=function(e){},e.getCameraLightTransformMatrix=function(){},e.deepCopy=function(e){},e.physicalOrientationToWorldDirection=function(e){var t=l.fromValues(e[0],e[1],e[2],e[3]),n=l.create(),r=l.fromValues(0,0,1,0);return l.conjugate(n,t),l.multiply(r,t,r),l.multiply(r,r,n),[r[0],r[1],r[2]]},e.getPhysicalToWorldMatrix=function(t){e.getWorldToPhysicalMatrix(t),o.invert(t,t)},e.getWorldToPhysicalMatrix=function(e){o.identity(e);var n=[3];z(t.physicalViewNorth,t.physicalViewUp,n),e[0]=n[0],e[1]=n[1],e[2]=n[2],e[4]=t.physicalViewUp[0],e[5]=t.physicalViewUp[1],e[6]=t.physicalViewUp[2],e[8]=-t.physicalViewNorth[0],e[9]=-t.physicalViewNorth[1],e[10]=-t.physicalViewNorth[2],o.transpose(e,e),i.set(u,1/t.physicalScale,1/t.physicalScale,1/t.physicalScale),o.scale(e,e,u),o.translate(e,e,t.physicalTranslation)},e.computeViewParametersFromViewMatrix=function(s){o.invert(c,s),i.transformMat4(u,n,c),e.computeDistance();var l=t.distance;e.setPosition(u[0],u[1],u[2]),i.transformMat4(d,r,c),i.subtract(d,d,u),i.normalize(d,d),e.setDirectionOfProjection(d[0],d[1],d[2]),i.transformMat4(f,a,c),i.subtract(f,f,u),i.normalize(f,f),e.setViewUp(f[0],f[1],f[2]),e.setDistance(l)},e.computeViewParametersFromPhysicalMatrix=function(t){e.getWorldToPhysicalMatrix(c),o.multiply(c,t,c),e.computeViewParametersFromViewMatrix(c)},e.setViewMatrix=function(n){t.viewMatrix=n,t.viewMatrix&&(o.copy(c,t.viewMatrix),e.computeViewParametersFromViewMatrix(c),o.transpose(t.viewMatrix,t.viewMatrix))},e.getViewMatrix=function(){if(t.viewMatrix)return t.viewMatrix;o.lookAt(c,t.position,t.focalPoint,t.viewUp),o.transpose(c,c);var e=new Float64Array(16);return o.copy(e,c),e},e.setProjectionMatrix=function(e){t.projectionMatrix=e},e.getProjectionMatrix=function(e,n,r){var a=new Float64Array(16);if(o.identity(a),t.projectionMatrix){var s=1/t.physicalScale;return i.set(u,s,s,s),o.copy(a,t.projectionMatrix),o.scale(a,a,u),o.transpose(a,a),a}o.identity(c);var l=t.clippingRange[1]-t.clippingRange[0],d=[t.clippingRange[0]+(n+1)*l/2,t.clippingRange[0]+(r+1)*l/2];if(t.parallelProjection){var f=t.parallelScale*e,p=t.parallelScale,g=(t.windowCenter[0]-1)*f,m=(t.windowCenter[0]+1)*f,v=(t.windowCenter[1]-1)*p,h=(t.windowCenter[1]+1)*p;o.ortho(c,g,m,v,h,d[0],d[1]),o.transpose(c,c)}else{if(t.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");var y,b,T=Math.tan(x(t.viewAngle)/2);!0===t.useHorizontalViewAngle?(y=t.clippingRange[0]*T,b=t.clippingRange[0]*T/e):(y=t.clippingRange[0]*T*e,b=t.clippingRange[0]*T);var C=(t.windowCenter[0]-1)*y,S=(t.windowCenter[0]+1)*y,P=(t.windowCenter[1]-1)*b,w=(t.windowCenter[1]+1)*b,O=d[0],M=d[1];c[0]=2*O/(S-C),c[5]=2*O/(w-P),c[2]=(C+S)/(S-C),c[6]=(P+w)/(w-P),c[10]=-(O+M)/(M-O),c[14]=-1,c[11]=-2*O*M/(M-O),c[15]=0}return o.copy(a,c),a},e.getCompositeProjectionMatrix=function(t,n,r){var a=e.getViewMatrix(),i=e.getProjectionMatrix(t,n,r);return o.multiply(i,a,i),i},e.setDirectionOfProjection=function(e,n,r){if(t.directionOfProjection[0]!==e||t.directionOfProjection[1]!==n||t.directionOfProjection[2]!==r){t.directionOfProjection[0]=e,t.directionOfProjection[1]=n,t.directionOfProjection[2]=r;var a=t.directionOfProjection;t.focalPoint[0]=t.position[0]+a[0]*t.distance,t.focalPoint[1]=t.position[1]+a[1]*t.distance,t.focalPoint[2]=t.position[2]+a[2]*t.distance,h()}},e.setDeviceAngles=function(n,r,a,s){var l=[3];z(t.physicalViewNorth,t.physicalViewUp,l);var c=o.identity(new Float64Array(16));o.rotate(c,c,x(n),t.physicalViewUp),o.rotate(c,c,x(r),l),o.rotate(c,c,x(a),t.physicalViewNorth),o.rotate(c,c,x(-s),t.physicalViewUp);var u=new Float64Array([-t.physicalViewUp[0],-t.physicalViewUp[1],-t.physicalViewUp[2]]),d=new Float64Array(t.physicalViewNorth);i.transformMat4(u,u,c),i.transformMat4(d,d,c),e.setDirectionOfProjection(u[0],u[1],u[2]),e.setViewUp(d[0],d[1],d[2]),e.modified()},e.setOrientationWXYZ=function(t,n,r,a){var s=o.identity(new Float64Array(16));if(0!==t&&(0!==n||0!==r||0!==a)){var c=x(t),u=l.create();l.setAxisAngle(u,[n,r,a],c),o.fromQuat(s,u)}var d=new Float64Array(3);i.transformMat4(d,[0,0,-1],s);var f=new Float64Array(3);i.transformMat4(f,[0,1,0],s),e.setDirectionOfProjection.apply(e,Hg(d)),e.setViewUp.apply(e,Hg(f)),e.modified()},e.computeClippingRange=function(e){var n,r;n=t.viewPlaneNormal,r=t.position;for(var a=-n[0],o=-n[1],i=-n[2],s=-(a*r[0]+o*r[1]+i*r[2]),l=[a*e[0]+o*e[2]+i*e[4]+s,1e-18],c=0;c<2;c++)for(var u=0;u<2;u++)for(var d=0;d<2;d++){var f=a*e[d]+o*e[2+u]+i*e[4+c]+s;l[0]=fl[1]?f:l[1]}return l}}(e,t)}var Zg={newInstance:f.a.newInstance(Yg,"vtkCamera"),extend:Yg};var Qg={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function $g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qg,n),f.a.obj(e,t),f.a.setGet(e,t,["intensity","switch","positional","exponent","coneAngle","transformMatrix","lightType","shadowAttenuation"]),f.a.setGetArray(e,t,["color","position","focalPoint","attenuationValues"],3),function(e,t){t.classHierarchy.push("vtkLight"),e.getTransformedPosition=function(){return t.transformMatrix?[]:[].concat(t.position)},e.getTransformedFocalPoint=function(){return t.transformMatrix?[]:[].concat(t.focalPoint)},e.getDirection=function(){return t.directionMTime1&&void 0!==arguments[1]?arguments[1]:[];t.push(e);var r=e.getNestedProps();if(r&&r.length)for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nm,n),f.a.obj(e,t),f.a.event(e,t,"event"),f.a.setGetArray(e,t,["viewport"],4),f.a.setGetArray(e,t,["background","background2"],3),tm(e,t)}var am={newInstance:f.a.newInstance(rm,"vtkViewport"),extend:rm},om=f.k,im=f.l,sm=f.m;function lm(e){return function(){return im("vtkRenderer::".concat(e," - NOT IMPLEMENTED"))}}var cm={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,createdLight:null,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:Ne(),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,pass:0};function um(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cm,n),am.extend(e,t,n),f.b(e,t,["renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),f.i(e,t,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","useShadows","pass"]),f.c(e,t,["actors","volumes","lights"]),f.j(e,t,["background"],4,1),function(e,t){for(t.classHierarchy.push("vtkRenderer"),t.background||(t.background=[0,0,0,1]);t.background.length<3;)t.background.push(0);3===t.background.length&&t.background.push(1);var n={type:"ComputeVisiblePropBoundsEvent",renderer:e},r={type:"ResetCameraClippingRangeEvent",renderer:e},a={type:"ResetCameraEvent",renderer:e};e.updateCamera=function(){return t.activeCamera||(om("No cameras are on, creating one."),e.getActiveCameraAndResetIfCreated()),t.activeCamera.render(e),!0},e.updateLightsGeometryToFollowCamera=function(){var n=e.getActiveCameraAndResetIfCreated();t.lights.forEach(function(e){e.lightTypeIsSceneLight()||e.lightTypeIsCameraLight()||(e.lightTypeIsHeadLight()?(e.setPositionFrom(n.getPositionByReference()),e.setFocalPointFrom(n.getFocalPointByReference()),e.modified(n.getMTime())):im("light has unknown light type",e.get()))})},e.updateLightGeometry=function(){return!t.lightFollowCamera||e.updateLightsGeometryToFollowCamera()},e.allocateTime=lm("allocateTime"),e.updateGeometry=lm("updateGeometry"),e.getVTKWindow=function(){return t.renderWindow},e.setLayer=function(n){om(e.getClassName(),e,"setting Layer to ",n),t.layer!==n&&(t.layer=n,e.modified()),e.setPreserveColorBuffer(!!n)},e.setActiveCamera=function(n){return t.activeCamera!==n&&(t.activeCamera=n,e.modified(),e.invokeEvent({type:"ActiveCameraEvent",camera:n}),!0)},e.makeCamera=function(){var t=Zg.newInstance();return e.invokeEvent({type:"CreateCameraEvent",camera:t}),t},e.getActiveCamera=function(){return t.activeCamera||(t.activeCamera=e.makeCamera()),t.activeCamera},e.getActiveCameraAndResetIfCreated=function(){return t.activeCamera||(e.getActiveCamera(),e.resetCamera()),t.activeCamera},e.getActors=function(){return t.actors=[],t.props.forEach(function(e){t.actors=t.actors.concat(e.getActors())}),t.actors},e.addActor=e.addViewProp,e.removeActor=function(n){t.actors=t.actors.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllActors=function(){e.getActors().forEach(function(t){e.removeViewProp(t)}),t.actors=[],e.modified()},e.getVolumes=function(){return t.volumes=[],t.props.forEach(function(e){t.volumes=t.volumes.concat(e.getVolumes())}),t.volumes},e.addVolume=e.addViewProp,e.removeVolume=function(n){t.volumes=t.volumes.filter(function(e){return e!==n}),e.removeViewProp(n),e.modified()},e.removeAllVolumes=function(){e.getVolumes().forEach(function(t){e.removeViewProp(t)}),t.volumes=[],e.modified()},e.addLight=function(n){t.lights=[].concat(t.lights,n),e.modified()},e.removeLight=function(n){t.lights=t.lights.filter(function(e){return e!==n}),e.modified()},e.removeAllLights=function(){t.lights=[],e.modified()},e.setLightCollection=function(n){t.lights=n,e.modified()},e.makeLight=Jg.newInstance,e.createLight=function(){t.automaticLightCreation&&(t.createdLight&&(e.removeLight(t.createdLight),t.createdLight.delete(),t.createdLight=null),t.createdLight=e.makeLight(),e.addLight(t.createdLight),t.createdLight.setLightTypeToHeadLight(),t.createdLight.setPosition(e.getActiveCamera().getPosition()),t.createdLight.setFocalPoint(e.getActiveCamera().getFocalPoint()))},e.normalizedDisplayToWorld=function(t,n,r,a){var o=e.normalizedDisplayToProjection(t,n,r);return o=e.projectionToView(o[0],o[1],o[2],a),e.viewToWorld(o[0],o[1],o[2])},e.worldToNormalizedDisplay=function(t,n,r,a){var o=e.worldToView(t,n,r);return o=e.viewToProjection(o[0],o[1],o[2],a),e.projectionToNormalizedDisplay(o[0],o[1],o[2])},e.viewToWorld=function(e,n,r){if(null===t.activeCamera)return im("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.invert(a,a),o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.projectionToView=function(e,n,r,a){if(null===t.activeCamera)return im("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.invert(s,s),o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.worldToView=function(e,n,r){if(null===t.activeCamera)return im("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];var a=t.activeCamera.getViewMatrix();o.transpose(a,a);var s=new Float64Array([e,n,r]);return i.transformMat4(s,s,a),s},e.viewToProjection=function(e,n,r,a){if(null===t.activeCamera)return im("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];var s=t.activeCamera.getProjectionMatrix(a,-1,1);o.transpose(s,s);var l=new Float64Array([e,n,r]);return i.transformMat4(l,l,s),l},e.computeVisiblePropBounds=function(){t.allBounds[0]=Jt.INIT_BOUNDS[0],t.allBounds[1]=Jt.INIT_BOUNDS[1],t.allBounds[2]=Jt.INIT_BOUNDS[2],t.allBounds[3]=Jt.INIT_BOUNDS[3],t.allBounds[4]=Jt.INIT_BOUNDS[4],t.allBounds[5]=Jt.INIT_BOUNDS[5];var r=!0;e.invokeEvent(n);for(var a=0;at.allBounds[1]&&(t.allBounds[1]=i[1]),i[2]t.allBounds[3]&&(t.allBounds[3]=i[3]),i[4]t.allBounds[5]&&(t.allBounds[5]=i[5]))}}return r&&(we(t.allBounds),om("Can't compute bounds, no 3D props are visible")),t.allBounds},e.resetCamera=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds(),r=[0,0,0];if(!xe(n))return om("Cannot reset camera!"),!1;var o=null;if(!e.getActiveCamera())return im("Trying to reset non-existent camera"),!1;o=t.activeCamera.getViewPlaneNormal(),t.activeCamera.setViewAngle(30),r[0]=(n[0]+n[1])/2,r[1]=(n[2]+n[3])/2,r[2]=(n[4]+n[5])/2;var i=n[1]-n[0],s=n[3]-n[2],l=n[5]-n[4],c=(i*=i)+(s*=s)+(l*=l);c=0===c?1:c,c=.5*Math.sqrt(c);var u=x(t.activeCamera.getViewAngle()),d=c,f=c/Math.sin(.5*u),p=t.activeCamera.getViewUp();return Math.abs(W(p,o))>.999&&(sm("Resetting view-up since view plane normal is parallel"),t.activeCamera.setViewUp(-p[2],p[0],p[1])),t.activeCamera.setFocalPoint(r[0],r[1],r[2]),t.activeCamera.setPosition(r[0]+f*o[0],r[1]+f*o[1],r[2]+f*o[2]),e.resetCameraClippingRange(n),t.activeCamera.setParallelScale(d),t.activeCamera.setPhysicalScale(c),t.activeCamera.setPhysicalTranslation(-r[0],-r[1],-r[2]),e.invokeEvent(a),!0},e.resetCameraClippingRange=function(){var n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||e.computeVisiblePropBounds();if(!xe(n))return om("Cannot reset camera clipping range!"),!1;if(e.getActiveCameraAndResetIfCreated(),!t.activeCamera)return im("Trying to reset clipping range of non-existent camera"),!1;var a=t.activeCamera.computeClippingRange(n),o=0;if(t.activeCamera.getParallelProjection())o=.1*t.activeCamera.getParallelScale();else{var i=x(t.activeCamera.getViewAngle());o=.2*Math.tan(i/2)*a[1]}return a[1]-a[0]=a[1]?.01*a[1]:a[0],t.nearClippingPlaneTolerance||(t.nearClippingPlaneTolerance=.01),a[0]e&&(e=n);var r=t.createdLight?t.createdLight.getMTime():0;return r>e&&(e=r),e},e.getTransparent=function(){return!!t.preserveColorBuffer},e.isActiveCameraCreated=function(){return!!t.activeCamera}}(e,t)}var dm={newInstance:f.d(um,"vtkRenderer"),extend:um},fm={Unknown:0,LeftController:1,RightController:2},pm={Unknown:0,Trigger:1,TrackPad:2,Grip:3,ApplicationMenu:4},gm={Device:fm,Input:pm};function mm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vm(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mm,n),f.a.obj(e,t),f.a.event(e,t,"RenderEvent"),xm.forEach(function(n){return f.a.event(e,t,n)}),f.a.get(e,t,["initialized","container","interactorStyle","lastFrameTime","view"]),f.a.setGet(e,t,["lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker"]),function(e,t){t.classHierarchy.push("vtkRenderWindowInteractor");var n=new Set,r=0;function a(n,r){t.currentRenderer=e.findPokedRenderer(n,r)}function o(e){var n=t.container.getBoundingClientRect(),r=t.view.getCanvas(),o=r.width/n.width,i=r.height/n.height,s={x:o*(e.clientX-n.left),y:i*(n.height-e.clientY+n.top),z:0};return a(s.x,s.y),s}function i(e){for(var t={},n=0;n1&&void 0!==arguments[1]&&arguments[1],o=document,i=n?"addEventListener":"removeEventListener",s=n?"removeEventListener":"addEventListener";!a&&!n&&r>0&&--r,r&&!a||(r=0,t.container&&t.container[s]("mousemove",e.handleMouseMove),o[i]("mouseup",e.handleMouseUp),o[i]("mousemove",e.handleMouseMove),o[i]("touchend",e.handleTouchEnd,!1),o[i]("touchcancel",e.handleTouchEnd,!1),o[i]("touchmove",e.handleTouchMove,!1)),!a&&n&&++r}function u(){t.view&&t.enabled&&t.enableRender&&(t.inRender=!0,t.view.traverseAllPasses(),t.inRender=!1),e.invokeRenderEvent()}e.start=function(){(t.initialized||(e.initialize(),t.initialized))&&e.startEventLoop()},e.setRenderWindow=function(e){Cm("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},e.setInteractorStyle=function(n){t.interactorStyle!==n&&(null!=t.interactorStyle&&t.interactorStyle.setInteractor(null),t.interactorStyle=n,null!=t.interactorStyle&&t.interactorStyle.getInteractor()!==e&&t.interactorStyle.setInteractor(e))},e.initialize=function(){t.initialized=!0,e.enable(),e.render()},e.enable=function(){return e.setEnabled(!0)},e.disable=function(){return e.setEnabled(!1)},e.startEventLoop=function(){return Tm("empty event loop")},e.getCurrentRenderer=function(){return t.currentRenderer?t.currentRenderer:(a(0,0),t.currentRenderer)},e.bindEvents=function(n){t.container=n,n.addEventListener("contextmenu",Om),n.addEventListener("wheel",e.handleWheel),n.addEventListener("DOMMouseScroll",e.handleWheel),n.addEventListener("mouseenter",e.handleMouseEnter),n.addEventListener("mouseleave",e.handleMouseLeave),n.addEventListener("mousemove",e.handleMouseMove),n.addEventListener("mousedown",e.handleMouseDown),document.addEventListener("keypress",e.handleKeyPress),document.addEventListener("keydown",e.handleKeyDown),document.addEventListener("keyup",e.handleKeyUp),document.addEventListener("pointerlockchange",e.handlePointerLockChange),n.addEventListener("touchstart",e.handleTouchStart,!1)},e.unbindEvents=function(){c(!1,!0),t.container.removeEventListener("contextmenu",Om),t.container.removeEventListener("wheel",e.handleWheel),t.container.removeEventListener("DOMMouseScroll",e.handleWheel),t.container.removeEventListener("mouseenter",e.handleMouseEnter),t.container.removeEventListener("mouseleave",e.handleMouseLeave),t.container.removeEventListener("mousemove",e.handleMouseMove),t.container.removeEventListener("mousedown",e.handleMouseDown),document.removeEventListener("keypress",e.handleKeyPress),document.removeEventListener("keydown",e.handleKeyDown),document.removeEventListener("keyup",e.handleKeyUp),document.removeEventListener("pointerlockchange",e.handlePointerLockChange),t.container.removeEventListener("touchstart",e.handleTouchStart),t.container=null},e.handleKeyPress=function(t){var n=l(t);e.keyPressEvent(n)},e.handleKeyDown=function(t){var n=l(t);e.keyDownEvent(n)},e.handleKeyUp=function(t){var n=l(t);e.keyUpEvent(n)},e.handleMouseDown=function(t){if(!(t.button>2)){c(!0),t.stopPropagation(),t.preventDefault();var n=vm(vm({},s(t)),{},{position:o(t)});switch(t.button){case 0:e.leftButtonPressEvent(n);break;case 1:e.middleButtonPressEvent(n);break;case 2:e.rightButtonPressEvent(n);break;default:Cm("Unknown mouse button pressed: ".concat(t.button))}}},e.requestPointerLock=function(){e.getView().getCanvas().requestPointerLock()},e.exitPointerLock=function(){return document.exitPointerLock()},e.isPointerLocked=function(){return!!document.pointerLockElement},e.handlePointerLockChange=function(){e.isPointerLocked()?e.startPointerLockEvent():e.endPointerLockEvent()},e.requestAnimation=function(r){void 0!==r?n.has(r)?Tm("requester is already registered for animating"):(n.add(r),1===n.size&&(t.lastFrameTime=.1,t.lastFrameStart=Date.now(),t.animationRequest=requestAnimationFrame(e.handleAnimation),e.startAnimationEvent())):Cm("undefined requester, can not start animating")},e.isAnimating=function(){return t.vrAnimation||null!==t.animationRequest},e.cancelAnimation=function(r){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.has(r))n.delete(r),t.animationRequest&&0===n.size&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null,e.endAnimationEvent(),e.render());else if(!a){var o=r&&r.getClassName?r.getClassName():r;Tm("".concat(o," did not request an animation"))}},e.switchToVRAnimation=function(){t.animationRequest&&(cancelAnimationFrame(t.animationRequest),t.animationRequest=null),t.vrAnimation=!0},e.returnFromVRAnimation=function(){t.vrAnimation=!1,0!==n.size&&(t.FrameTime=-1,t.animationRequest=requestAnimationFrame(e.handleAnimation))},e.updateGamepads=function(n){for(var r=navigator.getGamepads(),a=0;a1){var r=i(n.touches);if(2===n.touches.length){var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(a)}e.recognizeGesture("TouchStart",r)}else{var s={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(s)}},e.handleTouchMove=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures&&n.touches.length>1){var r=i(n.touches);e.recognizeGesture("TouchMove",r)}else{var a={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.mouseMoveEvent(a)}},e.handleTouchEnd=function(n){if(n.stopPropagation(),n.preventDefault(),t.recognizeGestures)if(0===n.touches.length)if(1===n.changedTouches.length){var r={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(r),c(!1)}else{var a=i(n.changedTouches);e.recognizeGesture("TouchEnd",a),c(!1)}else if(1===n.touches.length){var s=i(n.changedTouches);e.recognizeGesture("TouchEnd",s);var l={position:o(n.touches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonPressEvent(l)}else{var u=i(n.touches);e.recognizeGesture("TouchMove",u)}else{var d={position:o(n.changedTouches[0]),shiftKey:!1,altKey:!1,controlKey:!1};e.leftButtonReleaseEvent(d),c(!1)}},e.setView=function(n){t.view!==n&&(t.view=n,t.view.getRenderable().setInteractor(e),e.modified())},e.getFirstRenderer=function(){return t.view.getRenderable().getRenderersByReference()[0]},e.findPokedRenderer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!t.view)return null;var r=t.view.getRenderable().getRenderers();r.sort(function(e,t){return e.getLayer()-t.getLayer()});for(var a=null,o=null,i=null,s=r.length;s--;){var l=r[s];if(t.view.isInViewport(e,n,l)&&l.getInteractive()){i=l;break}null===a&&l.getInteractive()&&(a=l),null===o&&t.view.isInViewport(e,n,l)&&(o=l)}return null===i&&(i=a),null===i&&(i=o),null==i&&(i=r[0]),i},e.render=function(){null!==t.animationRequest||t.inRender||u()},xm.forEach(function(n){var r=n.charAt(0).toLowerCase()+n.slice(1);e["".concat(r,"Event")]=function(r){if(t.enabled)if(e.getCurrentRenderer()){var a=vm({type:n,pokedRenderer:t.currentRenderer,firstRenderer:e.getFirstRenderer()},r);e["invoke".concat(n)](a)}else Pm("\n Can not forward events without a current renderer on the interactor.\n ")}}),e.recognizeGesture=function(n,r){if(!(Object.keys(r).length>2)){if(t.startingEventPositions||(t.startingEventPositions={}),"TouchStart"===n)return Object.keys(r).forEach(function(e){t.startingEventPositions[e]=r[e]}),void(t.currentGesture="Start");if("TouchEnd"===n)return"Pinch"===t.currentGesture&&(e.render(),e.endPinchEvent()),"Rotate"===t.currentGesture&&(e.render(),e.endRotateEvent()),"Pan"===t.currentGesture&&(e.render(),e.endPanEvent()),t.currentGesture="Start",void(t.startingEventPositions={});var a=0,o=[],i=[];Object.keys(r).forEach(function(e){o[a]=r[e],i[a]=t.startingEventPositions[e],a++});var s=Math.sqrt((i[0].x-i[1].x)*(i[0].x-i[1].x)+(i[0].y-i[1].y)*(i[0].y-i[1].y)),l=Math.sqrt((o[0].x-o[1].x)*(o[0].x-o[1].x)+(o[0].y-o[1].y)*(o[0].y-o[1].y)),c=O(Math.atan2(i[1].y-i[0].y,i[1].x-i[0].x)),u=O(Math.atan2(o[1].y-o[0].y,o[1].x-o[0].x)),d=u-c;u=u+180>=360?u-180:u+180,c=c+180>=360?c-180:c+180,Math.abs(u-c)p&&g>m&&g>v){t.currentGesture="Pinch";var h={scale:1,touches:r};e.startPinchEvent(h)}else if(m>p&&m>v){t.currentGesture="Rotate";var y={rotation:0,touches:r};e.startRotateEvent(y)}else if(v>p){t.currentGesture="Pan";var b={translation:[0,0],touches:r};e.startPanEvent(b)}}else{if("Rotate"===t.currentGesture){var T={rotation:d,touches:r};e.rotateEvent(T)}if("Pinch"===t.currentGesture){var C={scale:l/s,touches:r};e.pinchEvent(C)}if("Pan"===t.currentGesture){var S={translation:f,touches:r};e.panEvent(S)}}}},e.handleVisibilityChange=function(){t.lastFrameStart=Date.now()};var d=e.delete;e.delete=function(){for(;n.size;)e.cancelAnimation(n.values().next().value);void 0!==document.hidden&&document.removeEventListener("visibilitychange",e.handleVisibilityChange),d()},void 0!==document.hidden&&document.addEventListener("visibilitychange",e.handleVisibilityChange,!1)}(e,t)}var Im=vm({newInstance:f.a.newInstance(Am,"vtkRenderWindowInteractor"),extend:Am,handledEvents:xm},gm);function Rm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Em(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bm,n),f.a.obj(e,t),f.a.event(e,t,"InteractionEvent"),f.a.event(e,t,"StartInteractionEvent"),f.a.event(e,t,"EndInteractionEvent"),f.a.get(e,t,["interactor","enabled"]),f.a.setGet(e,t,["priority","processEvents"]),function(e,t){t.classHierarchy.push("vtkInteractorObserver");var n=Em({},e);function r(){for(;t.subscribedEvents.length;)t.subscribedEvents.pop().unsubscribe()}function a(){Im.handledEvents.forEach(function(n){e["handle".concat(n)]&&t.subscribedEvents.push(t.interactor["on".concat(n)](function(r){return t.processEvents?e["handle".concat(n)](r):Lm},t.priority))})}e.setInteractor=function(n){n!==t.interactor&&(r(),t.interactor=n,n&&t.enabled&&a(),e.modified())},e.setEnabled=function(n){n!==t.enabled&&(r(),n&&(t.interactor?a():Vm("\n The interactor must be set before subscribing to events\n ")),t.enabled=n,e.modified())},e.computeDisplayToWorld=function(e,n,r,a){return e?t.interactor.getView().displayToWorld(n,r,a,e):null},e.computeWorldToDisplay=function(e,n,r,a){return e?t.interactor.getView().worldToDisplay(n,r,a,e):null},e.setPriority=function(e){n.setPriority(e)&&t.interactor&&(r(),a())}}(e,t)}var Fm=Em({newInstance:f.a.newInstance(km,"vtkInteractorObserver"),extend:km},Nm),Gm={States:{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}};function _m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Um(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jm=Gm.States,Wm={Rotate:jm.IS_ROTATE,Pan:jm.IS_PAN,Spin:jm.IS_SPIN,Dolly:jm.IS_DOLLY,CameraPose:jm.IS_CAMERA_POSE,WindowLevel:jm.IS_WINDOW_LEVEL,Slice:jm.IS_SLICE};var zm={state:jm.IS_NONE,handleObservers:1,autoAdjustCameraClippingRange:1};function Hm(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zm,n),Fm.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkInteractorStyle"),Object.keys(Wm).forEach(function(n){f.a.event(e,t,"Start".concat(n,"Event")),e["start".concat(n)]=function(){t.state===jm.IS_NONE&&(t.state=Wm[n],t.interactor.requestAnimation(e),e.invokeStartInteractionEvent({type:"StartInteractionEvent"}),e["invokeStart".concat(n,"Event")]({type:"Start".concat(n,"Event")}))},f.a.event(e,t,"End".concat(n,"Event")),e["end".concat(n)]=function(){t.state===Wm[n]&&(t.state=jm.IS_NONE,t.interactor.cancelAnimation(e),e.invokeEndInteractionEvent({type:"EndInteractionEvent"}),e["invokeEnd".concat(n,"Event")]({type:"End".concat(n,"Event")}),t.interactor.render())}}),e.handleKeyPress=function(e){var n=t.interactor;switch(e.key){case"r":case"R":e.pokedRenderer.resetCamera(),n.render();break;case"w":case"W":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToWireframe&&t.setRepresentationToWireframe()}),n.render();break;case"s":case"S":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToSurface&&t.setRepresentationToSurface()}),n.render();break;case"v":case"V":e.pokedRenderer.getActors().forEach(function(e){var t=e.getProperty();t.setRepresentationToPoints&&t.setRepresentationToPoints()}),n.render()}}}(e,t)}var Km=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qm,n),Km.extend(e,t,n),f.a.setGet(e,t,["motionFactor"]),function(e,t){t.classHierarchy.push("vtkInteractorStyleTrackballCamera"),e.handleMouseMove=function(n){var r=n.position,a=n.pokedRenderer;switch(t.state){case Xm.IS_ROTATE:e.handleMouseRotate(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_PAN:e.handleMousePan(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_DOLLY:e.handleMouseDolly(a,r),e.invokeInteractionEvent({type:"InteractionEvent"});break;case Xm.IS_SPIN:e.handleMouseSpin(a,r),e.invokeInteractionEvent({type:"InteractionEvent"})}t.previousPosition=r},e.handleButton3D=function(n){n&&n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad?e.startCameraPose():n&&!n.pressed&&n.device===fm.RightController&&n.input===pm.TrackPad&&t.state===Xm.IS_CAMERA_POSE&&e.endCameraPose()},e.handleMove3D=function(n){switch(t.state){case Xm.IS_CAMERA_POSE:e.updateCameraPose(n)}},e.updateCameraPose=function(e){var t=e.pokedRenderer.getActiveCamera(),n=t.getPhysicalTranslation(),r=.05*e.gamepad.axes[1]/t.getPhysicalScale(),a=t.physicalOrientationToWorldDirection(e.orientation);t.setPhysicalTranslation(n[0]+a[0]*r,n[1]+a[1]*r,n[2]+a[2]*r)},e.handleLeftButtonPress=function(n){var r=n.position;t.previousPosition=r,n.shiftKey?n.controlKey||n.altKey?e.startDolly():e.startPan():n.controlKey||n.altKey?e.startSpin():e.startRotate()},e.handleLeftButtonRelease=function(){switch(t.state){case Xm.IS_DOLLY:e.endDolly();break;case Xm.IS_PAN:e.endPan();break;case Xm.IS_SPIN:e.endSpin();break;case Xm.IS_ROTATE:e.endRotate()}},e.handleStartMouseWheel=function(t){e.startDolly(),e.handleMouseWheel(t)},e.handleEndMouseWheel=function(){e.endDolly()},e.handleStartPinch=function(n){t.previousScale=n.scale,e.startDolly()},e.handleEndPinch=function(){e.endDolly()},e.handleStartRotate=function(n){t.previousRotation=n.rotation,e.startRotate()},e.handleEndRotate=function(){e.endRotate()},e.handleStartPan=function(n){t.previousTranslation=n.translation,e.startPan()},e.handleEndPan=function(){e.endPan()},e.handlePinch=function(n){e.dollyByFactor(n.pokedRenderer,n.scale/t.previousScale),t.previousScale=n.scale},e.handlePan=function(n){var r=n.pokedRenderer.getActiveCamera(),a=r.getFocalPoint(),o=(a=e.computeWorldToDisplay(n.pokedRenderer,a[0],a[1],a[2]))[2],i=n.translation,s=t.previousTranslation,l=e.computeDisplayToWorld(n.pokedRenderer,a[0]+i[0]-s[0],a[1]+i[1]-s[1],o),c=e.computeDisplayToWorld(n.pokedRenderer,a[0],a[1],o),u=[];u[0]=c[0]-l[0],u[1]=c[1]-l[1],u[2]=c[2]-l[2],a=r.getFocalPoint();var d=r.getPosition();r.setFocalPoint(u[0]+a[0],u[1]+a[1],u[2]+a[2]),r.setPosition(u[0]+d[0],u[1]+d[1],u[2]+d[2]),t.interactor.getLightFollowCamera()&&n.pokedRenderer.updateLightsGeometryToFollowCamera(),r.orthogonalizeViewUp(),t.previousTranslation=n.translation},e.handleRotate=function(e){var n=e.pokedRenderer.getActiveCamera();n.roll(e.rotation-t.previousRotation),n.orthogonalizeViewUp(),t.previousRotation=e.rotation},e.handleMouseRotate=function(e,n){var r=t.interactor,a=n.x-t.previousPosition.x,o=n.y-t.previousPosition.y,i=r.getView().getViewportSize(e),s=-.1,l=-.1;i[0]&&i[1]&&(s=-20/i[1],l=-20/i[0]);var c=a*l*t.motionFactor,u=o*s*t.motionFactor,d=e.getActiveCamera();Number.isNaN(c)||Number.isNaN(u)||(d.azimuth(c),d.elevation(u),d.orthogonalizeViewUp()),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange(),r.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()},e.handleMouseSpin=function(e,n){var r=t.interactor,a=e.getActiveCamera(),o=r.getView().getViewportCenter(e),i=O(Math.atan2(t.previousPosition.y-o[1],t.previousPosition.x-o[0])),s=O(Math.atan2(n.y-o[1],n.x-o[0]))-i;Number.isNaN(s)||(a.roll(s),a.orthogonalizeViewUp())},e.handleMousePan=function(n,r){var a=n.getActiveCamera(),o=a.getFocalPoint(),i=(o=e.computeWorldToDisplay(n,o[0],o[1],o[2]))[2],s=e.computeDisplayToWorld(n,r.x,r.y,i),l=e.computeDisplayToWorld(n,t.previousPosition.x,t.previousPosition.y,i),c=[];c[0]=l[0]-s[0],c[1]=l[1]-s[1],c[2]=l[2]-s[2],o=a.getFocalPoint();var u=a.getPosition();a.setFocalPoint(c[0]+o[0],c[1]+o[1],c[2]+o[2]),a.setPosition(c[0]+u[0],c[1]+u[1],c[2]+u[2]),t.interactor.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()},e.handleMouseDolly=function(n,r){var a=r.y-t.previousPosition.y,o=t.interactor.getView().getViewportCenter(n),i=t.motionFactor*a/o[1];e.dollyByFactor(n,Math.pow(1.1,i))},e.handleMouseWheel=function(t){var n=1-t.spinY/10;e.dollyByFactor(t.pokedRenderer,n)},e.dollyByFactor=function(e,n){if(!Number.isNaN(n)){var r=e.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.autoAdjustCameraClippingRange&&e.resetCameraClippingRange()),t.interactor.getLightFollowCamera()&&e.updateLightsGeometryToFollowCamera()}}}(e,t)}var Zm={newInstance:f.a.newInstance(Ym,"vtkInteractorStyleTrackballCamera"),extend:Ym},Qm=f.a.vtkErrorMacro,$m=[1,-1,1,-1,1,-1];var Jm={empty:!0,numberOfComponents:3,dataType:u.FLOAT,bounds:[1,-1,1,-1,1,-1]};function ev(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Jm,n),Qe.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkPoints"),e.getNumberOfPoints=e.getNumberOfTuples,e.setNumberOfPoints=function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;e.getNumberOfPoints()!==n&&(t.size=n*r,t.values=f.a.newTypedArray(t.dataType,t.size),e.setNumberOfComponents(r),e.modified())},e.setPoint=function(e){for(var n=e*t.numberOfComponents,r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Qe.extend(e,t,function(e){return rv({empty:!0,numberOfComponents:1,dataType:u.UNSIGNED_INT},e)}(n)),function(e,t){t.classHierarchy.push("vtkCellArray"),e.getNumberOfCells=function(e){return void 0===t.numberOfCells||e?(t.cellSizes=ov(t.values),t.numberOfCells=t.cellSizes.length,t.numberOfCells):t.numberOfCells},e.getCellSizes=function(e){return void 0===t.cellSizes||e?(t.cellSizes=ov(t.values),t.cellSizes):t.cellSizes};var n=e.setData;e.setData=function(e){n(e,1),t.numberOfCells=void 0,t.cellSizes=void 0},e.getCell=function(e){var n=e,r=t.values[n++];return t.values.subarray(n,n+r)}}(e,t)}var lv=rv({newInstance:f.a.newInstance(sv,"vtkCellArray"),extend:sv},iv);var cv={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function uv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cv,n),f.a.obj(e,t),t.points||(t.points=tv.newInstance()),f.a.get(e,t,["points","pointsIds"]),function(e,t){t.classHierarchy.push("vtkCell"),e.initialize=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(n){t.pointsIds=n;var r=t.points.getData();r.length!==3*t.pointsIds.length&&(r=f.a.newTypedArray(e.getDataType(),3*t.pointsIds.length));var a=e.getData();t.pointsIds.forEach(function(e,t){var n=3*e,o=3*t;r[o]=a[n],r[++o]=a[++n],r[++o]=a[++n]}),t.points.setData(r)}else{t.points=e,t.pointsIds=new Array(e.getNumberOfPoints());for(var o=e.getNumberOfPoints()-1;o>=0;--o)t.pointsIds[o]=o}},e.getBounds=function(){var e=t.points.getNumberOfPoints(),n=[];if(e){t.points.getPoint(0,n),t.bounds[0]=n[0],t.bounds[1]=n[0],t.bounds[2]=n[1],t.bounds[3]=n[1],t.bounds[4]=n[2],t.bounds[5]=n[2];for(var r=1;rt.bounds[1]?n[0]:t.bounds[1],t.bounds[2]=n[1]t.bounds[3]?n[1]:t.bounds[3],t.bounds[4]=n[2]t.bounds[5]?n[2]:t.bounds[5]}else we(t.bounds);return t.bounds},e.getLength2=function(){e.getBounds();for(var n=0,r=0,a=0;a<3;a++)n+=(r=t.bounds[2*a+1]-t.bounds[2*a])*r;return n},e.getParametricDistance=function(e){for(var t,n=0,r=0;r<3;r++)(t=e[r]<0?-e[r]:e[r]>1?e[r]-1:0)>n&&(n=t);return n},e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.deepCopy=function(e){e.initialize(t.points,t.pointsIds)},e.getCellDimension=function(){},e.intersectWithLine=function(e,t,n,r,a,o,i){},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var dv={newInstance:f.a.newInstance(uv,"vtkCell"),extend:uv};function fv(e){return function(e){if(Array.isArray(e))return pv(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return pv(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pv(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pv(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gv,n),f.a.obj(e,t),function(e,t){t.classHierarchy.push("vtkCellLinks"),e.buildLinks=function(n){var r=n.getPoints().getNumberOfPoints(),a=n.getNumberOfCells(),o=new Uint32Array(r);if(n.isA("vtkPolyData")){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:1e3;t.array=Array(e).fill().map(function(){return{ncells:0,cells:null}}),t.extend=n,t.maxId=-1},e.initialize=function(){t.array=null},e.getLink=function(e){return t.array[e]},e.getNcells=function(e){return t.array[e].ncells},e.getCells=function(e){return t.array[e].cells},e.insertNextPoint=function(e){t.array.push({ncells:e,cells:Array(e)}),++t.maxId},e.insertNextCellReference=function(e,n){t.array[e].cells[t.array[e].ncells++]=n},e.deletePoint=function(e){t.array[e].ncells=0,t.array[e].cells=null},e.removeCellReference=function(e,n){t.array[n].cells=t.array[n].cells.filter(function(t){return t!==e}),t.array[n].ncells=t.array[n].cells.length},e.addCellReference=function(e,n){t.array[n].cells[t.array[n].ncells++]=e},e.resizeCellList=function(e,n){t.array[e].cells.length=n},e.squeeze=function(){!function(e,t){var n=t;for(t>=e.array.length&&(n+=e.array.length);n>e.array.length;)e.array.push({ncells:0,cells:null});e.array.length=n}(t,t.maxId+1)},e.reset=function(){t.maxId=-1},e.deepCopy=function(e){t.array=fv(e.array),t.extend=e.extend,t.maxId=e.maxId},e.incrementLinkCount=function(e){++t.array[e].ncells},e.allocateLinks=function(e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Sv,n),f.a.obj(e,t),f.a.get(e,t,["size","maxId","extend"]),f.a.getArray(e,t,["typeArray","locationArray"]),function(e,t){t.classHierarchy.push("vtkCellTypes"),e.allocate=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:512,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;t.size=e>0?e:1,t.extend=n>0?n:1,t.maxId=-1,t.typeArray=new Uint8Array(e),t.locationArray=new Uint32Array(e)},e.insertCell=function(e,n,r){t.typeArray[e]=n,t.locationArray[e]=r,e>t.maxId&&(t.maxId=e)},e.insertNextCell=function(n,r){return e.insertCell(++t.maxId,n,r),t.maxId},e.setCellTypes=function(e,n,r){t.size=e,t.typeArray=n,t.locationArray=r,t.maxId=e-1},e.getCellLocation=function(e){return t.locationArray[e]},e.deleteCell=function(e){t.typeArray[e]=hv.VTK_EMPTY_CELL},e.getNumberOfTypes=function(){return t.maxId+1},e.isType=function(t){for(var n=e.getNumberOfTypes(),r=0;r3&&void 0!==arguments[3]?arguments[3]:null,o={t:Number.MIN_VALUE,distance:0},i=[];i[0]=n[0]-t[0],i[1]=n[1]-t[1],i[2]=n[2]-t[2];var s=i[0]*(e[0]-t[0])+i[1]*(e[1]-t[1])+i[2]*(e[2]-t[2]),l=W(i,i),c=1e-5*s;return 0!==l&&(o.t=s/l),c<0&&(c=-c),-c1?r=n:(r=i,i[0]=t[0]+o.t*i[0],i[1]=t[1]+o.t*i[1],i[2]=t[2]+o.t*i[2]),a&&(a[0]=r[0],a[1]=r[1],a[2]=r[2]),o.distance=q(r,e),o}function Ev(e,t,n,r,a,o){var i=[],s=[],l=[];a[0]=0,o[0]=0,i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],s[0]=r[0]-n[0],s[1]=r[1]-n[1],s[2]=r[2]-n[2],l[0]=n[0]-e[0],l[1]=n[1]-e[1],l[2]=n[2]-e[2];var c=[];c[0]=[W(i,i),-W(i,s)],c[1]=[c[0][1],W(s,s)];var u=[];if(u[0]=W(i,l),u[1]=-W(s,l),0===pe(c,u,2)){for(var d,f=Number.MAX_VALUE,p=[e,t,n,r],g=[n,n,e,e],m=[r,r,t,t],v=[o[0],o[0],a[0],a[0]],h=[a[0],a[0],o[0],o[0]],y=0;y<4;y++)(d=Rv(p[y],g[y],m[y])).distance=0&&a[0]<=1&&o[0]>=0&&o[0]<=1?Iv.YES_INTERSECTION:Iv.NO_INTERSECTION}var Dv={distanceToLine:Rv,intersection:Ev};var Vv={};function Lv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkLine"),e.getCellDimension=function(){return 1},e.intersectWithLine=function(e,n,r,a,o){var i={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};o[1]=0,o[2]=0;var s=[],l=[],c=[];t.points.getPoint(0,l),t.points.getPoint(1,c);var u=[],d=[],f=Ev(e,n,l,c,u,d);if(i.t=u[0],i.betweenPoints=function(e){return e>=0&&e<=1}(i.t),o[0]=d[0],f===Iv.YES_INTERSECTION){for(var p=0;p<3;p++)a[p]=l[p]+o[0]*(c[p]-l[p]),s[p]=e[p]+i.t*(n[p]-e[p]);if(q(a,s)<=r*r)return i.intersect=1,i}else{var g;if(i.t<0)return(g=Rv(e,l,c,a)).distance<=r*r?(i.t=0,i.intersect=1,i.betweenPoints=!0,i):i;if(i.t>1)return(g=Rv(n,l,c,a)).distance<=r*r?(i.t=1,i.intersect=1,i.betweenPoints=!0,i):i;if(o[0]<0)return o[0]=0,g=Rv(l,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i;if(o[0]>1)return o[0]=1,g=Rv(c,e,n,a),i.t=g.t,g.distance<=r*r?(i.intersect=1,i):i}return i},e.evaluatePosition=function(e,t,n,r,a,o){}}(e,t)}var Nv=Mv(Mv({newInstance:f.a.newInstance(Lv,"vtkLine"),extend:Lv},Dv),xv);var Bv={};function kv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Bv,n),Cn.extend(e,t,n),f.a.setGet(e,t,["points"]),function(e,t){t.classHierarchy.push("vtkPointSet"),t.points?t.points=Object(en.a)(t.points):t.points=tv.newInstance(),e.getNumberOfPoints=function(){return t.points.getNumberOfPoints()},e.getBounds=function(){return t.points.getBounds()},e.computeBounds=function(){e.getBounds()};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),t.points=tv.newInstance(),t.points.shallowCopy(e.getPoints())}}(e,t)}var Fv={newInstance:f.a.newInstance(kv,"vtkPointSet"),extend:kv};function Gv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uv(e,t,n,r){var a=n[0]-t[0],o=n[1]-t[1],i=n[2]-t[2],s=e[0]-t[0],l=e[1]-t[1],c=e[2]-t[2];r[0]=o*c-i*l,r[1]=i*s-a*c,r[2]=a*l-o*s}function jv(e,t,n,r){Uv(e,t,n,r);var a=Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]);0!==a&&(r[0]/=a,r[1]/=a,r[2]/=a)}var Wv={computeNormalDirection:Uv,computeNormal:jv};var zv={};function Hv(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,zv,n),dv.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkTriangle"),e.getCellDimension=function(){return 2},e.intersectWithLine=function(n,r,a,o,i){var s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};i[2]=0;var l=a*a,c=[],u=[],d=[];t.points.getPoint(0,c),t.points.getPoint(1,u),t.points.getPoint(2,d);var f=[];if(jv(c,u,d,f),0!==f[0]||0!==f[1]||0!==f[2]){var p=ft.intersectWithLine(n,r,c,f);if(s.betweenPoints=p.betweenPoints,s.t=p.t,o[0]=p.x[0],o[1]=p.x[1],o[2]=p.x[2],!p.intersection)return i[0]=0,i[1]=0,s.intersect=0,s;var g=e.evaluatePosition(o,[],i,[]);if(g.evaluation>=0)return g.dist2<=l?(s.intersect=1,s):(s.intersect=g.evaluation,s)}var m=q(c,u),v=q(u,d),h=q(d,c);t.line||(t.line=Nv.newInstance()),m>v&&m>h?(t.line.getPoints().setPoint(0,c),t.line.getPoints().setPoint(1,u)):v>h&&v>m?(t.line.getPoints().setPoint(0,u),t.line.getPoints().setPoint(1,d)):(t.line.getPoints().setPoint(0,d),t.line.getPoints().setPoint(1,c));var y=t.line.intersectWithLine(n,r,a,o,i);if(s.betweenPoints=y.betweenPoints,s.t=y.t,y.intersect){for(var b=[],T=[],C=[],S=0;S<3;S++)b[S]=c[S]-d[S],T[S]=u[S]-d[S],C[S]=o[S]-d[S];return i[0]=W(C,b)/h,i[1]=W(C,T)/v,s.intersect=1,s}return i[0]=0,i[1]=0,s.intersect=0,s},e.evaluatePosition=function(e,n,r,a){var o,i,s,l,c,u,d,f={subId:0,dist2:0,evaluation:-1},p=[],g=[],m=[],v=[],h=[],y=[],b=[],T=0,C=[],S=[],P=[],w=[],x=[];f.subId=0,r[2]=0,t.points.getPoint(1,p),t.points.getPoint(2,g),t.points.getPoint(0,m),Uv(p,g,m,v),ft.generalizedProjectPoint(e,p,v,x);var O=0;for(o=0;o<3;o++)(s=v[o]<0?-v[o]:v[o])>O&&(O=s,T=o);for(i=0,o=0;o<3;o++)o!==T&&(C[i++]=o);for(o=0;o<2;o++)h[o]=x[C[o]]-m[C[o]],y[o]=p[C[o]]-m[C[o]],b[o]=g[C[o]]-m[C[o]];if(0===(l=Q(y,b)))return r[0]=0,r[1]=0,f.evaluation=-1,f;if(r[0]=Q(h,b)/l,r[1]=Q(y,h)/l,a[0]=1-(r[0]+r[1]),a[1]=r[0],a[2]=r[1],a[0]>=0&&a[0]<=1&&a[1]>=0&&a[1]<=1&&a[2]>=0&&a[2]<=1)n&&(f.dist2=q(x,e),n[0]=x[0],n[1]=x[1],n[2]=x[2]),f.evaluation=1;else{var M;if(n)if(a[1]<0&&a[2]<0)for(c=q(e,m),u=Nv.distanceToLine(e,p,m,M,P),d=Nv.distanceToLine(e,m,g,M,w),c1?r[a]-1:0)>n&&(n=t);return n}}(e,t)}var Kv,Xv=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$v,n),Fv.extend(e,t,n),f.a.get(e,t,["cells","links"]),f.a.setGet(e,t,["verts","lines","polys","strips"]),function(e,t){t.classHierarchy.push("vtkPolyData"),qv.forEach(function(n){e["getNumberOf".concat(function(e){return e.replace(/(?:^\w|[A-Z]|\b\w)/g,function(e){return e.toUpperCase()}).replace(/\s+/g,"")}(n))]=function(){return t[n].getNumberOfCells()},t[n]?t[n]=Object(en.a)(t[n]):t[n]=lv.newInstance()}),e.getNumberOfCells=function(){return qv.reduce(function(e,n){return e+t[n].getNumberOfCells()},0)};var n=e.shallowCopy;e.shallowCopy=function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n(e,r),qv.forEach(function(n){t[n]=lv.newInstance(),t[n].shallowCopy(e.getReferenceByName(n))})},e.buildCells=function(){var n=e.getNumberOfVerts(),r=e.getNumberOfLines(),a=e.getNumberOfPolys(),o=e.getNumberOfStrips(),i=n+r+a+o,s=new Uint8Array(i),l=s,c=new Uint32Array(i),u=c;if(n){var d=0;t.verts.getCellSizes().forEach(function(e,t){u[t]=d,l[t]=e>1?hv.VTK_POLY_VERTEX:hv.VTK_VERTEX,d+=e+1}),u=u.subarray(n),l=l.subarray(n)}if(r){var f=0;t.lines.getCellSizes().forEach(function(e,t){u[t]=f,l[t]=e>2?hv.VTK_POLY_LINE:hv.VTK_LINE,1===e&&Zv("Building VTK_LINE ",t," with only one point, but VTK_LINE needs at least two points. Check the input."),f+=e+1}),u=u.subarray(r),l=l.subarray(r)}if(a){var p=0;t.polys.getCellSizes().forEach(function(e,t){switch(u[t]=p,e){case 3:l[t]=hv.VTK_TRIANGLE;break;case 4:l[t]=hv.VTK_QUAD;break;default:l[t]=hv.VTK_POLYGON}e<3&&Zv("Building VTK_TRIANGLE ",t," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),p+=e+1}),u+=u.subarray(a),l+=l.subarray(a)}if(o){var g=0;l.fill(hv.VTK_TRIANGLE_STRIP,0,o),t.strips.getCellSizes().forEach(function(e,t){u[t]=g,g+=e+1})}t.cells=wv.newInstance(),t.cells.setCellTypes(i,s,c)},e.buildLinks=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;void 0===t.cells&&e.buildCells(),t.links=vv.newInstance(),n>0?t.links.allocate(n):t.links.allocate(e.getPoints().getNumberOfPoints()),t.links.buildLinks(e)},e.getCellPoints=function(e){var n=t.cells.getCellType(e),r=null;switch(n){case hv.VTK_VERTEX:case hv.VTK_POLY_VERTEX:r=t.verts;break;case hv.VTK_LINE:case hv.VTK_POLY_LINE:r=t.lines;break;case hv.VTK_TRIANGLE:case hv.VTK_QUAD:case hv.VTK_POLYGON:r=t.polys;break;case hv.VTK_TRIANGLE_STRIP:r=t.strips;break;default:return r=null,{type:0,cellPointIds:null}}var a=t.cells.getCellLocation(e);return{cellType:n,cellPointIds:r.getCell(a)}},e.getPointCells=function(e){return t.links.getCells(e)},e.getCellEdgeNeighbors=function(e,n,r){var a=t.links.getLink(n),o=t.links.getLink(r);return a.cells.filter(function(t){return t!==e&&-1!==o.cells.indexOf(t)})},e.getCell=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=e.getCellPoints(t),a=n||Qv[r.cellType].newInstance();return a.initialize(e.getPoints(),r.cellPointIds),a}}(e,t)}var eh={newInstance:f.a.newInstance(Jv,"vtkPolyData"),extend:Jv};function th(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nh(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rh=f.a.vtkDebugMacro;function ah(e,t){t.classHierarchy.push("vtkActor");var n=function(e){for(var t=1;t=1;return n=(n=n&&(!t.texture||!t.texture.isTranslucent()))&&(!t.mapper||t.mapper.getIsOpaque())},e.hasTranslucentPolygonalGeometry=function(){return null!==t.mapper&&(null===t.property&&e.setProperty(e.makeProperty()),!e.getIsOpaque())},e.makeProperty=ju.newInstance,e.getProperty=function(){return null===t.property&&(t.property=e.makeProperty()),t.property},e.getBounds=function(){if(null===t.mapper)return t.bounds;var n=t.mapper.getBounds();if(!n||6!==n.length)return n;if(n[0]>n[1])return t.mapperBounds=n.concat(),t.bounds=[1,-1,1,-1,1,-1],t.boundsMTime.modified(),n;if(!t.mapperBounds||n[0]!==t.mapperBounds[0]||n[1]!==t.mapperBounds[1]||n[2]!==t.mapperBounds[2]||n[3]!==t.mapperBounds[3]||n[4]!==t.mapperBounds[4]||n[5]!==t.mapperBounds[5]||e.getMTime()>t.boundsMTime.getMTime()){rh("Recomputing bounds..."),t.mapperBounds=n.concat();var r=[];Jt.getCorners(n,r),e.computeMatrix();var a=new Float64Array(16);o.transpose(a,t.matrix),r.forEach(function(e){return i.transformMat4(e,e,a)}),t.bounds[0]=t.bounds[2]=t.bounds[4]=Number.MAX_VALUE,t.bounds[1]=t.bounds[3]=t.bounds[5]=-Number.MAX_VALUE,t.bounds=t.bounds.map(function(e,t){return t%2==0?r.reduce(function(e,n){return e>n[t/2]?n[t/2]:e},e):r.reduce(function(e,n){return ee?r:e}if(null!==t.backfaceProperty){var a=t.backfaceProperty.getMTime();e=a>e?a:e}return e},e.getRedrawMTime=function(){var e=t.mtime;if(null!==t.mapper){var n=t.mapper.getMTime();e=n>e?n:e,null!==t.mapper.getInput()&&(t.mapper.getInputAlgorithm().update(),e=(n=t.mapper.getInput().getMTime())>e?n:e)}return e},e.getSupportsSelection=function(){return!!t.mapper&&t.mapper.getSupportsSelection()}}var oh={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function ih(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oh,n),Gi.extend(e,t,n),t.boundsMTime={},f.a.obj(t.boundsMTime),f.a.set(e,t,["property"]),f.a.setGet(e,t,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),ah(e,t)}var sh={newInstance:f.a.newInstance(ih,"vtkActor"),extend:ih};function lh(e){return function(e){if(Array.isArray(e))return ch(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ch(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ch(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ch(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,uh,n),f.a.obj(e,t),f.a.get(e,t,["renderWindow","renderer","openGLRenderWindow","interactor","container"]),f.a.event(e,t,"resize"),function(e,t){var n=e.invokeResize;delete e.invokeResize,t.renderWindow=lg.newInstance(),t.renderer=dm.newInstance(),t.renderWindow.addRenderer(t.renderer),t.openGLRenderWindow=zg.newInstance(),t.renderWindow.addView(t.openGLRenderWindow),t.interactor=Im.newInstance(),t.interactor.setInteractorStyle(Zm.newInstance()),t.interactor.setView(t.openGLRenderWindow),t.interactor.initialize(),e.setBackground=t.renderer.setBackground,e.setBackground.apply(e,lh(t.background)),e.resize=function(){if(t.container){var e=t.container.getBoundingClientRect(),r=window.devicePixelRatio||1;t.openGLRenderWindow.setSize(Math.floor(e.width*r),Math.floor(e.height*r)),n(),t.renderWindow.render()}},e.setContainer=function(e){t.container&&t.interactor.unbindEvents(t.container),t.container=e,t.openGLRenderWindow.setContainer(t.container),t.container&&t.interactor.bindEvents(t.container)},e.delete=f.a.chain(e.setContainer,t.openGLRenderWindow.delete,e.delete),t.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}(e,t)}var fh={newInstance:f.a.newInstance(dh),extend:dh},ph={DEFAULT:0,GEOMETRY:1,SLICE:2,VOLUME:3,YZ_PLANE:4,XZ_PLANE:5,XY_PLANE:6},gh={PICKING_BUFFER:0,FRONT_BUFFER:1},mh={ViewTypes:ph,RenderingTypes:gh,CaptureOn:{MOUSE_MOVE:0,MOUSE_RELEASE:1}},vh=.5;var hh={contextVisibility:!0,handleVisibility:!0,hasFocus:!1};function yh(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,hh,n),Bi.extend(e,t,n),Fm.extend(e,t,n),f.a.setGet(e,t,["contextVisibility","handleVisibility","widgetManager"]),f.a.get(e,t,["representations","widgetState"]),f.a.event(e,t,"ActivateHandle"),function(e,t){t.classHierarchy.push("vtkAbstractWidget"),t.actorToRepresentationMap=new WeakMap,e.getBounds=t.widgetState.getBounds,e.getNestedProps=function(){return t.representations},e.activateHandle=function(n){var r=n.selectedState,a=n.representation;t.widgetState.activateOnly(r),t.activeState=r,r&&r.updateManipulator&&r.updateManipulator(),e.invokeActivateHandle({selectedState:r,representation:a}),e.updateCursor&&e.updateCursor()},e.deactivateAllHandles=function(){t.widgetState.deactivate()},e.hasActor=function(e){return t.actorToRepresentationMap.has(e)},e.grabFocus=function(){t.hasFocus=!0},e.loseFocus=function(){t.hasFocus=!1},e.hasFocus=function(){return t.hasFocus},e.placeWidget=function(e){return t.widgetState.placeWidget(e)},e.getPlaceFactor=function(){return t.widgetState.getPlaceFactor()},e.setPlaceFactor=function(e){return t.widgetState.setPlaceFactor(e)},e.getRepresentationFromActor=function(e){return t.actorToRepresentationMap.get(e)},e.updateRepresentationForRender=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=0;n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Th,n),sf.extend(e,t,n),f.a.setGet(e,t,["callback","useZValues"]),function(e,t){t.classHierarchy.push("vtkPixelSpaceCallbackMapper"),t.callback||(t.callback=function(){}),e.invokeCallback=function(e,n,r,a,s){if(t.callback){var l=n.getCompositeProjectionMatrix(r,-1,1);o.transpose(l,l);for(var c=e.getPoints(),u=new Float64Array(3),d=a.usize,f=a.vsize,p=d/2,g=f/2,m=[],v=0;ve.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ih,n),Bi.extend(e,t,n),f.a.algo(e,t,1,1),f.a.get(e,t,["labels","coincidentTopologyParameters"]),f.a.set(e,t,["displayScaleParams"]),f.a.setGet(e,t,["scaleInPixels"]),function(e,t){t.classHierarchy.push("vtkWidgetRepresentation");var n={mtimes:{},states:[]};function r(e,t){e&&e.setResolveCoincidentTopologyToPolygonOffset&&(e.setResolveCoincidentTopologyToPolygonOffset(),zd.forEach(function(n){if(t[n]){var r="setRelativeCoincidentTopology".concat(n,"OffsetParameters");if(e[r]){var a=t[n],o=a.factor,i=a.offset;e[r](o,i)}}}))}e.getActors=function(){return t.actors},e.getNestedProps=e.getActors,e.setLabels=function(){for(var n=arguments.length,r=new Array(n),a=0;a0&&void 0!==arguments[0]?arguments[0]:t.inputData[0];return n.mtimes.representation===e.getMTime()&&n.mtimes.input===r.getMTime()?n.states:(n.mtimes.representation=e.getMTime(),n.mtimes.input=r.getMTime(),n.states=[],t.labels.forEach(function(e){n.states=n.states.concat(r.getStatesWithLabel(e)||[])}),n.states)},e.getSelectedState=function(t,n){var r=e.getRepresentationStates();return n0&&void 0!==arguments[0]?arguments[0]:gh.FRONT_BUFFER,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!0;switch(t.behavior){case Ph.HANDLE:o=e===gh.PICKING_BUFFER||a;break;case Ph.CONTEXT:o=e===gh.FRONT_BUFFER&&r;break;default:o=!0}for(var i=n&&o,s=0;s1?t-1:0),r=1;re.length)&&(t=e.length);for(var n=0,r=new Array(t);n=i;f--)d(f)}return n}function _h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Uh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Uh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Uh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Qh,n),f.a.obj(e,t),f.a.setGet(e,t,["captureOn",{type:"enum",name:"viewType",enum:jh}]),f.a.get(e,t,["selections","widgets","viewId","pickingEnabled","useSvgLayer"]),Zh(e,t)}var Jh={newInstance:f.a.newInstance($h,"vtkWidgetManager"),extend:$h,Constants:mh};function ey(e){return function(e){if(Array.isArray(e))return ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]&&arguments[2];f.a.obj(e,t),f.a.get(e,t,["widgetState"]),f.a.event(e,t,"WidgetChange"),function(e,t){t.classHierarchy.push("vtkAbstractWidgetFactory");var n={};e.getWidgetForView=function(r){var a=r.viewId,o=r.renderer,i=r.viewType,s=r.initialValues;if(!n[a]){if(!o)return null;var l=Yh(o),c=l.interactor,u=l.apiSpecificRenderWindow,d=l.camera,p={},g={onWidgetChange:e.onWidgetChange};Object.assign(p,t,{viewType:i,renderer:o,camera:d,apiSpecificRenderWindow:u,factory:e}),f.a.safeArrays(p),bh.extend(g,p,s);var m=s;p.representations=e.getRepresentationsForViewType(i).map(function(e){var t=e.builder,n=e.labels,r=e.initialValues;return t.newInstance(ry(ry({labels:n},r),m))}),p.representations.forEach(function(e){e.setInputData(p.widgetState),e.getActors().forEach(function(t){p.actorToRepresentationMap.set(t,e)})}),t.behavior(g,p),["coincidentTopologyParameters"].concat(ey(t.methodsToLink||[])).forEach(function(e){var t,n="set".concat(f.a.capitalize(e)),r="get".concat(f.a.capitalize(e)),a=(ay(t={},e,[]),ay(t,n,[]),ay(t,r,[]),t);p.representations.forEach(function(t){t[e]&&a[e].push(t[e]),t[n]&&a[n].push(t[n]),t[r]&&a[r].push(t[r])}),Object.keys(a).forEach(function(e){var t=a[e];1===t.length?g[e]=t[0]:t.length>1&&(g[e]=f.a.chain.apply(f.a,ey(t)))})}),g.delete=f.a.chain(function(){delete n[a]},g.delete),g.setInteractor(c);var v=Object.freeze(g);return n[a]=v,v}return n[a]},e.getViewIds=function(){return Object.keys(n)},e.setVisibility=function(e){for(var t=Object.keys(n),r=0;r2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,cy,n),f.a.obj(e,t),f.a.setGetArray(e,t,["normal","origin"],3),function(e,t){t.classHierarchy.push("vtkPlaneManipulator"),e.handleEvent=function(e,n){return ly(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var dy={intersectDisplayWithPlane:ly,extend:uy,newInstance:f.a.newInstance(uy,"vtkPlaneManipulator")};function fy(e,t,n,r,a,o){var i=o.displayToWorld(e,t,0,a),s=[0,0,0];G(o.displayToWorld(e,t,1,a),i,s);var l=[0,0,0];z(r,s,l),z(l,s,l);var c=W([i[0]-n[0],i[1]-n[1],i[2]-n[2]],l),u=W(l,r),d=r.slice();return U(d,c/u),F(n,d,d),d}var py={origin:[0,0,0],normal:[0,0,1]};function gy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,py,n),f.a.obj(e,t),f.a.setGetArray(e,t,["origin","normal"],3),function(e,t){t.classHierarchy.push("vtkLineManipulator"),e.handleEvent=function(e,n){return fy(e.position.x,e.position.y,t.origin,t.normal,e.pokedRenderer,n)}}(e,t)}var my={projectDisplayToLine:fy,extend:gy,newInstance:f.a.newInstance(gy,"vtkLineManipulator")},vy={OrientationModes:{DIRECTION:0,ROTATION:1,MATRIX:2},ScaleModes:{SCALE_BY_CONSTANT:0,SCALE_BY_MAGNITUDE:1,SCALE_BY_COMPONENTS:2}};function hy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function by(e){return function(e){if(Array.isArray(e))return Ty(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ty(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ty(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ty(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,wy,n),sf.extend(e,t,n),f.a.algo(e,t,2,0),t.buildTime={},f.a.obj(t.buildTime,{mtime:0}),t.boundsTime={},f.a.obj(t.boundsTime,{mtime:0}),f.a.setGet(e,t,["orient","orientationMode","orientationArray","scaleArray","scaleFactor","scaleMode","scaling"]),f.a.get(e,t,["colorArray","matrixArray","normalArray","buildTime"]),function(e,t){t.classHierarchy.push("vtkGlyph3DMapper"),e.getOrientationModeAsString=function(){return f.a.enumToString(Cy,t.orientationMode)},e.setOrientationModeToDirection=function(){return e.setOrientationMode(Cy.DIRECTION)},e.setOrientationModeToRotation=function(){return e.setOrientationMode(Cy.ROTATION)},e.setOrientationModeToMatrix=function(){return e.setOrientationMode(Cy.MATRIX)},e.getOrientationArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.orientationArray?n.getPointData().getArray(t.orientationArray):n.getPointData().getVectors():null},e.getScaleModeAsString=function(){return f.a.enumToString(Sy,t.scaleMode)},e.setScaleModeToScaleByMagnitude=function(){return e.setScaleMode(Sy.SCALE_BY_MAGNITUDE)},e.setScaleModeToScaleByComponents=function(){return e.setScaleMode(Sy.SCALE_BY_COMPONENTS)},e.setScaleModeToScaleByConstant=function(){return e.setScaleMode(Sy.SCALE_BY_CONSTANT)},e.getScaleArrayData=function(){var n=e.getInputData(0);return n&&n.getPointData()?t.scaleArray?n.getPointData().getArray(t.scaleArray):n.getPointData().getScalars():null},e.getBounds=function(){var n=e.getInputData(0),r=e.getInputData(1);return n&&r?(e.buildArrays(),t.bounds):Ne()},e.buildArrays=function(){var n=e.getInputData(0),r=e.getInputData(1);if(t.buildTime.getMTime()t.bounds[1]&&(t.bounds[1]=p[0]),p[1]>t.bounds[3]&&(t.bounds[3]=p[1]),p[2]>t.bounds[5]&&(t.bounds[5]=p[2]);var E=new Float32Array(T,36*S,9);a.fromMat4(E,P),a.invert(E,E),a.transpose(E,E)}var D=e.getAbstractScalars(n,t.scalarMode,t.arrayAccessMode,t.arrayId,t.colorByArrayName).scalars;t.useLookupTableScalarRange||e.getLookupTable().setRange(t.scalarRange[0],t.scalarRange[1]),t.colorArray=null;var V=e.getLookupTable();V&&D&&(V.build(),t.colorArray=V.mapScalars(D,t.colorMode,0)),t.buildTime.modified()}},e.getPrimitiveCount=function(){var t=e.getInputData(1),n=e.getInputData().getPoints().getNumberOfValues()/3;return{points:n*t.getPoints().getNumberOfValues()/3,verts:n*(t.getVerts().getNumberOfValues()-t.getVerts().getNumberOfCells()),lines:n*(t.getLines().getNumberOfValues()-2*t.getLines().getNumberOfCells()),triangles:n*(t.getPolys().getNumberOfValues()-3*t.getLines().getNumberOfCells())}}}(e,t)}var Oy=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},r=Ay(Ay({},Ry),n);Rh.extend(e,t,r),f.a.setGet(e,t,["activeScaleFactor","activeColor","useActiveColor"]),function(e,t){t.classHierarchy.push("vtkHandleRepresentation")}(0,t)}};var Dy={radius:.5,latLongTessellation:!1,thetaResolution:8,startTheta:0,endTheta:360,phiResolution:8,startPhi:0,endPhi:180,center:[0,0,0],pointType:"Float32Array"};function Vy(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Dy,n),f.a.obj(e,t),f.a.setGet(e,t,["radius","latLongTessellation","thetaResolution","startTheta","endTheta","phiResolution","startPhi","endPhi"]),f.a.setGetArray(e,t,["center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkSphereSource"),e.requestData=function(e,n){if(!t.deleted){var r=n[0],a=r?r.getPoints().getDataType():"Float32Array";r=eh.newInstance();var o=0,i=t.thetaResolution,s=t.startThetat.startTheta?t.endTheta:t.startTheta;l*=Math.PI/180;var c=t.startPhit.startPhi?t.endPhi:t.startPhi;u*=Math.PI/180,Math.abs(s-l)<2*Math.PI&&++i;var d=(l-s)/t.thetaResolution,p=t.startPhi<=0?1:0,g=t.phiResolution+(t.endPhi>=180?-1:0),m=t.phiResolution*i+2,v=2*t.phiResolution*t.thetaResolution,h=0,y=f.a.newTypedArray(a,3*m),b=new Float32Array(3*m),T=0,C=new Uint32Array(5*v);t.startPhi<=0&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]+t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=1,h++,o++),t.endPhi>=180&&(y[3*h+0]=t.center[0],y[3*h+1]=t.center[1],y[3*h+2]=t.center[2]-t.radius,b[3*h+0]=0,b[3*h+1]=0,b[3*h+2]=-1,h++,o++);for(var S=t.phiResolution-o,P=(u-c)/(t.phiResolution-1),w=0;w=180)for(var D=S-1+o,V=0;V2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ny,n),Ey.extend(e,t,n),f.a.get(e,t,["glyph","mapper","actor"]),function(e,t){function n(n){if(t.displayCallback){for(var r=[],a=e.getRepresentationStates(),o=0;o2&&void 0!==arguments[2]?arguments[2]:{},r=Gy(Gy({},Uy),n);Rh.extend(e,t,r),function(e,t){t.classHierarchy.push("vtkContextRepresentation")}(0,t)}};function Wy(e){return function(e){if(Array.isArray(e))return zy(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return zy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return zy(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function zy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xy,n),jy.extend(e,t,n),f.a.setGetArray(e,t,["edgeColor"],3),f.a.get(e,t,["mapper","actor"]),function(e,t){var n;t.classHierarchy.push("vtkCroppingOutlineRepresentation"),t.internalPolyData=eh.newInstance({mtime:0}),t.points=new Float32Array(24),t.internalPolyData.getPoints().setData(t.points,3),t.internalPolyData.getLines().setData(Uint16Array.from(Ky)),t.mapper=sf.newInstance({scalarVisibility:!1}),t.actor=sh.newInstance(),(n=t.actor.getProperty()).setEdgeColor.apply(n,Wy(t.edgeColor)),t.mapper.setInputConnection(e.getOutputPort()),t.actor.setMapper(t.mapper),e.addActor(t.actor),e.requestData=function(n,r){var a=e.getRepresentationStates(n[0]);if(8===a.length){for(var o=0,i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ib,n),f.a.obj(e,t),f.a.setGet(e,t,["active"]),function(e,t){t.classHierarchy.push("vtkWidgetState");var n=[];t.labels={},t.nestedStates=[],e.bindState=function(r){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[ab];if(t.nestedStates.push(r),n.push(r.onModified(e.modified)),Array.isArray(a)&&a.length)for(var o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,ub,n),f.a.setGetArray(e,t,["bounds"],6),f.a.get(e,t,["placeFactor"]),f.a.event(e,t,"BoundsChange"),t.bounds=t.bounds.slice(),function(e,t){var n=[],r=lb(Jt.INIT_BOUNDS);e.containsPoint=function(e,t,n){return Array.isArray(e)?Jt.containsPoint(r,e[0],e[1],e[2]):Jt.containsPoint(r,e,t,n)},e.placeWidget=function(a){t.bounds=[];for(var o=[(a[0]+a[1])/2,(a[2]+a[3])/2,(a[4]+a[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];n[i]=a[i],t.bounds[i]=(a[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()},e.setPlaceFactor=function(a){if(t.placeFactor!==a){t.placeFactor=a,t.bounds=[];for(var o=[(n[0]+n[1])/2,(n[2]+n[3])/2,(n[4]+n[5])/2],i=0;i<6;i++){var s=o[Math.floor(i/2)];t.bounds[i]=(n[i]-s)*t.placeFactor+s}Jt.setBounds(r,t.bounds),e.invokeBoundsChange(t.bounds),e.modified()}}}(e,t)}},fb={color:.5};var pb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,fb,n),f.a.setGet(e,t,["color"])}};function gb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return mb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,vb,n),f.a.setGetArray(e,t,["corner"],3),function(e,t){e.translate=function(t,n,r){var a=gb(e.getCornerByReference(),3),o=a[0],i=a[1],s=a[2];e.setCorner(o+t,i+n,s+r)}}(e)}};function yb(e){return function(e){if(Array.isArray(e))return bb(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bb(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]&&arguments[0];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.matrix=o.identity(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=t?r.toRadian:Cb}return function(e,t,n){t&&Tb(e.prototype,t),n&&Tb(e,n)}(e,[{key:"rotateFromDirections",value:function(e,t){var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(16);i.set(n,e[0],e[1],e[2]),i.set(r,t[0],t[1],t[2]),i.normalize(n,n),i.normalize(r,r);var s=i.dot(n,r);return s>=1?this:(i.cross(this.tmp,n,r),i.length(this.tmp)<1e-6&&(i.cross(this.tmp,[1,0,0],e),i.length(this.tmp)<1e-6&&i.cross(this.tmp,[0,1,0],e)),o.fromRotation(a,Math.acos(s),this.tmp),o.multiply(this.matrix,this.matrix,a),this)}},{key:"rotate",value:function(e,t){return i.set.apply(i,[this.tmp].concat(yb(t))),i.normalize(this.tmp,this.tmp),o.rotate(this.matrix,this.matrix,this.angleConv(e),this.tmp),this}},{key:"rotateX",value:function(e){return o.rotateX(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateY",value:function(e){return o.rotateY(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"rotateZ",value:function(e){return o.rotateZ(this.matrix,this.matrix,this.angleConv(e)),this}},{key:"translate",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.translate(this.matrix,this.matrix,this.tmp),this}},{key:"scale",value:function(e,t,n){return i.set(this.tmp,e,t,n),o.scale(this.matrix,this.matrix,this.tmp),this}},{key:"multiply",value:function(e){return o.multiply(this.matrix,this.matrix,e),this}},{key:"identity",value:function(){return o.identity(this.matrix),this}},{key:"apply",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;if(ae(Sb,this.matrix))return this;for(var r=-1===n?e.length:t+3*n,a=t;a2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,xb,n),f.a.setGetArray(e,t,["direction"],3),function(e,t){var n="degree"===t.angleUnit?wb.buildFromDegree():wb.buildFromRadian();e.rotateFromDirections=function(r,a){n.identity().rotateFromDirections(r,a).apply(t.direction),e.modified()},e.rotate=function(e,r){n.identity().rotate(e,r).apply(t.direction)},e.rotateX=function(e){n.identity().rotateX(e).apply(t.direction)},e.rotateY=function(e){n.identity().rotateY(e).apply(t.direction)},e.rotateZ=function(e){n.identity().rotateZ(e).apply(t.direction)}}(e,t)}};var Mb={manipulator:null};var Ab={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Mb,n),f.a.setGet(e,t,["manipulator"]),function(e,t){e.updateManipulator=function(){if(t.manipulator){var e=t.origin,n=t.normal,r=t.direction,a=t.manipulator,o=a.setOrigin,i=a.setCenter,s=a.setNormal,l=a.setDirection;e&&o?o(e):e&&i&&i(e),r&&l?l(r):r&&!n&&s?s(r):n&&l&&l(n)}}}(e,t)}},Ib={name:""};var Rb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ib,n),f.a.setGet(e,t,["name"])}};function Eb(e,t){return 3===e.length&&3===t.length&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Db(e,t){var n={o:[],p1:[],p2:[]};e.normalize=function(){K(t.up),K(t.right),K(t.direction),e.modified()},e.updateFromOriginRightUp=function(r,a,o){(function(e,t,n,r){return Eb(e,r.o)&&Eb(t,r.p1)&&Eb(n,r.p2)})(r,a,o,n)||(n.o=r.slice(),n.p1=a.slice(),n.p2=o.slice(),t.up=[o[0]-r[0],o[1]-r[1],o[2]-r[2]],t.right=[a[0]-r[0],a[1]-r[1],a[2]-r[2]],z(t.up,t.right,t.direction),z(t.direction,t.up,t.right),e.normalize(),e.modified())}}var Vb={up:[0,1,0],right:[1,0,0],direction:[0,0,1]};var Lb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Vb,n),f.a.setGetArray(e,t,["up","right","direction"],3),Db(e,t)}};function Nb(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Bb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Bb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Bb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kb,n),f.a.setGetArray(e,t,["origin"],3),function(e,t){e.translate=function(t,n,r){var a=Nb(e.getOriginByReference(),3),o=a[0],i=a[1],s=a[2];e.setOrigin(o+t,i+n,s+r)}}(e)}},Gb={scale1:.5};var _b={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Gb,n),f.a.setGet(e,t,["scale1"])}},Ub={scale3:[1,1,1]};var jb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Ub,n),f.a.setGetArray(e,t,["scale3"],3)}},Wb={text:"DefaultText"};var zb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Wb,n),f.a.setGet(e,t,["text"])}},Hb={visible:!0};var Kb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Hb,n),f.a.setGet(e,t,["visible"]),e.isVisible=e.getVisible}},Xb={shape:""};var qb={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,Xb,n),f.a.setGet(e,t,["shape"])}};function Yb(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};arguments.length>4&&void 0!==arguments[4]&&arguments[4]||sb.extend(n,r,t);for(var a=0;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,pT,n),sy.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkImageCroppingWidget");var n=null;function r(e,n){t.widgetState.getStatesWithLabel(e).forEach(function(e){e.setVisible(n)})}e.setFaceHandlesEnabled=function(e){return r("faces",e)},e.setEdgeHandlesEnabled=function(e){return r("edges",e)},e.setCornerHandlesEnabled=function(e){return r("corners",e)},e.copyImageDataDescription=function(n){var r,a;(r=t.widgetState).setIndexToWorldT.apply(r,uT(n.getIndexToWorld())),(a=t.widgetState).setWorldToIndexT.apply(a,uT(n.getWorldToIndex()));var o=n.getDimensions();t.widgetState.getCroppingPlanes().setPlanes([0,o[0],0,o[1],0,o[2]]),e.modified()},e.updateHandles=function(){for(var e=t.widgetState.getCroppingPlanes().getPlanes(),n=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],r=[e[0],n[0],e[1]],a=[e[2],n[1],e[3]],o=[e[4],n[2],e[5]],i=t.widgetState.getIndexToWorldT(),s=function(e){return $y[e]},l=0;l<3;l++)for(var c=0;c<3;c++)for(var u=0;u<3;u++)if(1!==l||1!==c||1!==u){var d=[l,c,u].map(s).join(""),f=Jy([r[l],a[c],o[u]],i),p=cT(t.widgetState.getStatesWithLabel(d),1)[0];p.setOrigin.apply(p,uT(f))}},e.delete=f.a.chain(e.delete,function(){n&&n.unsubscribe()}),t.behavior=rb,t.widgetState=lT(),e.getRepresentationsForViewType=function(e){switch(e){case ph.DEFAULT:case ph.GEOMETRY:case ph.SLICE:case ph.VOLUME:default:return[{builder:ky,labels:["handles"]},{builder:Yy,labels:["corners"]}]}},n=t.widgetState.getCroppingPlanes().onModified(e.updateHandles);var a=dy.newInstance(),o=my.newInstance();t.widgetState.getStatesWithLabel("corners").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("edges").forEach(function(e){return e.setManipulator(a)}),t.widgetState.getStatesWithLabel("faces").forEach(function(e){return e.setManipulator(o)})}(e,t)}var mT={newInstance:f.a.newInstance(gT,"vtkImageCroppingWidget"),extend:gT};function vT(e){return function(e){if(Array.isArray(e))return hT(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return hT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,bT,n),f.a.obj(e,t),f.a.algo(e,t,1,1),f.a.setGetArray(e,t,["croppingPlanes"],6),function(e,t){t.classHierarchy.push("vtkImageCropFilter"),e.reset=function(){var t=e.getInputData();t&&e.setCroppingPlanes.apply(e,vT(t.getExtent()))},e.requestData=function(e,n){var r=e[0];if(r){var a=r.getPointData().getScalars();if(a){var o=r.getExtent(),i=6===t.croppingPlanes.length?o.map(function(e,n){return n%2==0?Math.max(e,Math.round(t.croppingPlanes[n])):Math.min(e,Math.round(t.croppingPlanes[n]))}):o.slice();if(i[0]===o[0]&&i[1]===o[1]&&i[2]===o[2]&&i[3]===o[3]&&i[4]===o[4]&&i[5]===o[5]){var s=Di.newInstance();return s.shallowCopy(r),void(n[0]=s)}for(var l=0;l<3;++l)if(i[2*l]>i[2*l+1]){var c=[i[2*l+1],i[2*l]];i[2*l]=c[0],i[2*l+1]=c[1]}for(var u=0;u<6;u+=2)i[u]=Math.max(i[u],o[u]),i[u+1]=Math.min(i[u+1],o[u+1]);for(var d=a.getNumberOfComponents(),f=(i[1]-i[0]+1)*(i[3]-i[2]+1)*(i[5]-i[4]+1)*d,p=a.getData(),g=r.getDimensions(),m=d*g[0],v=d*g[0]*g[1],h=(i[0]-o[0])*d,y=(i[1]-i[0]+1)*d,b=new p.constructor(f),T=0,C=i[4];C<=i[5];++C)for(var S=i[2];S<=i[3];++S){var P=h+(S-o[2])*m+(C-o[4])*v,w=P+y,x=p.subarray(P,w);b.set(x,T),T+=x.length}var O=Di.newInstance({extent:i,origin:r.getOrigin(),direction:r.getDirection(),spacing:r.getSpacing()}),M=Qe.newInstance({name:a.getName(),numberOfComponents:d,values:b});O.getPointData().setScalars(M),n[0]=O}else yT("No scalars from input")}else yT("Invalid or missing input")},e.isResetAvailable=function(){if(0===t.croppingPlanes.length)return!1;var n=e.getInputData();return!!n&&void 0!==n.getExtent().find(function(e,n){return Math.abs(t.croppingPlanes[n]-e)>Number.EPSILON})}}(e,t)}f.a.newInstance(TT,"vtkImageCropFilter");var CT=n(13),ST=Object.create(null);CT.filter(function(e){return e.RGBPoints}).filter(function(e){return"CIELAB"!==e.ColorSpace}).forEach(function(e){ST[e.Name]=e});var PT=Object.keys(ST);PT.sort();var wT={addPreset:function(e){e.RGBPoints&&"CIELAB"!==e.ColorSpace&&(ST[e.Name]||(PT.push(e.Name),PT.sort()),ST[e.Name]=e)},removePresetByName:function(e){var t=PT.indexOf(e);t>-1&&PT.splice(t,1),delete ST[e]},getPresetByName:function(e){return ST[e]},rgbPresetNames:PT},xT=n(14),OT=n.n(xT),MT=n(15),AT=n.n(MT);function IT(){return AT()('!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(e,t,r){"use strict";var n=function(){function e(e,t){for(var r=0;r1?t-1:0),o=1;o1?r-1:0),a=1;a3&&void 0!==arguments[3]?arguments[3]:[];r([l,e,t,n],o)},m=function(e,t,n){if(!t)throw new Error("eventName is required");if("string"!=typeof t)throw new Error("eventName should be string");r([c,e,t,n])};return self.addEventListener("message",function(e){var t=e.data;Array.isArray(t)?function(e,t,r){var n=function(t){t&&t instanceof b?d(e,p,t.payload,t.transferable):d(e,p,t)},o=function(t){d(e,s,{message:t.message,stack:t.stack})};try{var i=h(e,t,r);v(i)?i.then(n).catch(o):n(i)}catch(e){o(e)}}.apply(void 0,a(t)):t&&t.eventName&&i.emitLocally.apply(i,[t.eventName].concat(a(t.args)))}),i},e.exports.TransferableResponse=b},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n);o()(function(e,t){var r=e.array,n=e.min,i=e.max,a=e.component||0,u=e.numberOfComponents||1,f=e.numberOfBins,l=i-n,c=new Float32Array(f);c.fill(0);for(var s=r.length,p=a;p1?t-1:0),n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:256,n=[];n.lengtho+s||do+l?f===l?o:o+f/(f-l)*(d-o-l):-f===l?o:o-f/(f+l)*(d-o-l))-o)/f,g=Math.exp(-4*p*p),m=1-p*p,v=i*(c<1?c*m+(1-c)*g:(2-c)*m+1*(c-1));v>n[u]&&(n[u]=v)}}return n}function jT(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{lineWidth:1,strokeStyle:"#000"},a=t[3],o=t[2]/(n.length-1),i=!!r.fillStyle,s=a+t[1];e.lineWidth=r.lineWidth,e.strokeStyle=r.strokeStyle,e.beginPath(),e.moveTo(t[0],t[1]+t[3]);for(var l=0;l3&&void 0!==arguments[3]?arguments[3]:[0,1];return[r[0]+(e-n[0])/n[2]*(r[1]-r[0]),(t-n[1])/n[3]]}function zT(e,t){var n=t.map(function(t){return Math.abs(t.position-e)}),r=Math.min.apply(Math,LT(n));return n.indexOf(r)}function HT(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(n){var r=n.offsetX,a=n.offsetY;t&&n.preventDefault(),e(r,a)}}function KT(){GT.filter(function(e){return e.ready}).forEach(function(e){e.callbacks.forEach(function(t){t.touches===e.touches&&t.clicks===e.count&&t.action.apply(t,LT(e.singleTouche))}),e.ts=0,e.count=0,e.touches=0,e.ready=!1})}function XT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return function(a){var o=a.target.getBoundingClientRect(),i=Array.prototype.map.call(a.touches,function(e){return[e.pageX-o.left,e.pageY-o.top]}).reduce(function(e,t){return[e[0]+t[0],e[1]+t[1]]},[0,0]).map(function(e){return e/a.touches.length});"touchstart"===a.type?(clearTimeout(GT[e].timeout),GT[e].ts=a.timeStamp,GT[e].singleTouche=i,GT[e].touches=a.touches.length):"touchmove"===a.type?(GT[e].ts=0,GT[e].count=0,GT[e].ready=!1):"touchend"===a.type&&(a.timeStamp-GT[e].ts1&&void 0!==arguments[1]?arguments[1]:{},a=r.numberOfBinToConsiders,o=void 0===a?1:a,i=r.numberOfBinsToSkip,s=void 0===i?1:i,l=r.numberOfComponents,c=void 0===l?1:l,u=r.component,d=void 0===u?0:u;t.histogram=null,t.histogramArray=n,t.dataRange=D(n,d,c);var f=RT(t.dataRange,2),p=f[0],g=f[1],m=Math.floor(n.length/4)||1;m+=m%c;for(var v=0,h=[],y=[];vr;)a.shift();for(var l=a.reduce(function(e,t){return e+t},0)/r,c=0,u=t.histogram.length;c1){for(var s=t.style.iconSize+t.style.padding,l=s,c=0;r>l;)c+=1,l+=s;switch(c){case 0:var u=e.addGaussian(0,1,.1,0,0),d=t.gaussians[u],p=DT({},d),g=_T.adjustPosition;t.activeGaussian=u,t.selectedGaussian=u,f.a.setImmediate(function(){e.onDown(n,r),t.dragAction={originalXY:[0,0],action:g,gaussian:d,originalGaussian:p}});break;case 1:-1!==t.selectedGaussian&&e.removeGaussian(t.selectedGaussian);break;default:t.selectedGaussian=-1,t.dragAction=null}}else if(o<0||o>1||i<0||i>1)t.selectedGaussian=-1,t.dragAction=null;else{var m=zT(o,t.gaussians);m!==t.selectedGaussian&&(t.selectedGaussian=m,e.modified())}return!0},e.onHover=function(n,r){var a=20/t.canvas.height,o=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),i=o[0],s=o[1],l=RT(WT(n,r,t.graphArea),1)[0],c=i<0?t.selectedGaussian:zT(i,t.gaussians);t.canvas.style.cursor="default";var u=t.gaussians[c];if(t.enableRangeZoom&&l>=0&&rt.rangeZoom[1]-d?t.canvas.style.cursor=FT.adjustZoom:t.canvas.style.cursor=FT.adjustPosition,t.dragAction={rangeZoom:t.rangeZoom,action:_T.adjustZoom}}else if(u&&l>=0){var f=1-s,p=null;p=f>u.height+a?"adjustPosition":f>u.height-a?Math.abs(i-u.position).5*u.height+a?"adjustPosition":f>.5*u.height-a?Math.abs(i-u.position)a?"adjustPosition":"adjustWidth",t.canvas.style.cursor=FT[p];var g=_T[p],m=DT({},u);t.dragAction={originalXY:[i,s],action:g,gaussian:u,originalGaussian:m}}return c!==t.activeGaussian&&(t.activeGaussian=c,e.modified()),!0},e.onDown=function(n,r){t.mouseIsDown||e.invokeAnimation(!0),t.mouseIsDown=!0;var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);t.gaussianSide=0;var i=t.gaussians[o];return i&&(t.gaussianSide=i.position-a),o!==t.selectedGaussian&&a>0&&(t.selectedGaussian=o,e.modified()),!0},e.onDrag=function(n,r){if(t.dragAction){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];(0,t.dragAction.action)(o,i,DT({gaussianSide:t.gaussianSide,model:t,publicAPI:e},t.dragAction))&&(t.opacities=UT(t.gaussians,t.piecewiseSize),e.invokeOpacityChange(e,!0)),e.modified()}return!0},e.onUp=function(n,r){return t.mouseIsDown&&e.invokeAnimation(!1),t.mouseIsDown=!1,!0},e.onLeave=function(n,r){return e.onUp(n,r),t.canvas.style.cursor="default",t.activeGaussian=-1,e.modified(),!0},e.onAddGaussian=function(n,r){var a=RT(WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null),2),o=a[0],i=a[1];return o>=0&&e.addGaussian(o,1-i,.1,0,0),!0},e.onRemoveGaussian=function(n,r){var a=WT(n,r,t.graphArea,t.enableRangeZoom?t.rangeZoom:null)[0],o=zT(a,t.gaussians);return a>=0&&-1!==o&&e.removeGaussian(o),!0},e.bindMouseListeners=function(){if(!t.listeners){var n=function(){return!!t.mouseIsDown},r=function(){for(var e=GT.length,t=arguments.length,n=new Array(t),r=0;r1){var l=Math.round(t.style.iconSize/2-t.style.strokeWidth),c=Math.round(l+o+t.style.strokeWidth);e.beginPath(),e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor,e.arc(c-o/2,c,l,0,2*Math.PI,!1),e.fillStyle=t.style.buttonFillColor,e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c),e.stroke(),e.moveTo(c-o/2,c-l+t.style.strokeWidth+2),e.lineTo(c-o/2,c+l-t.style.strokeWidth-2),e.stroke(),-1===t.selectedGaussian?(e.fillStyle=t.style.buttonDisableFillColor,e.lineWidth=t.style.buttonDisableStrokeWidth,e.strokeStyle=t.style.buttonDisableStrokeColor):(e.fillStyle=t.style.buttonFillColor,e.lineWidth=t.style.buttonStrokeWidth,e.strokeStyle=t.style.buttonStrokeColor),e.beginPath(),e.arc(c-o/2,c+o/2+t.style.iconSize,l,0,2*Math.PI,!1),e.fill(),e.stroke(),e.moveTo(c-l+t.style.strokeWidth+2-o/2,c+o/2+t.style.iconSize),e.lineTo(c+l-t.style.strokeWidth-2-o/2,c+o/2+t.style.iconSize),e.stroke()}if(t.histogram&&jT(e,i,YT(t.histogram,t.rangeZoom),{lineWidth:1,strokeStyle:t.style.histogramColor,fillStyle:t.style.histogramColor}),jT(e,i,YT(t.opacities,t.enableRangeZoom&&t.rangeZoom),{lineWidth:t.style.strokeWidth,strokeStyle:t.style.strokeColor}),t.colorTransferFunction&&t.colorTransferFunction.getSize()){var u=t.dataRange||t.colorTransferFunction.getMappingRange();t.colorCanvas&&t.colorCanvasMTime===t.colorTransferFunction.getMTime()||(t.colorCanvasMTime=t.colorTransferFunction.getMTime(),t.colorCanvas=function(e,t,n,r){var a=r||document.createElement("canvas");a.setAttribute("width",t),a.setAttribute("height",256);for(var o=a.getContext("2d"),i=e.getUint8Table(n[0],n[1],t,4),s=o.getImageData(0,0,t,256),l=0;l<256;l++)s.data.set(i,4*l*t);for(var c=256*t*4,u=4*t,d=3;d0&&(a=Math.min(a,i)),t.opacities[i]>0&&(o=Math.max(o,i));return[n[0]+a*r,n[0]+o*r]};var n=e.setEnableRangeZoom;e.setEnableRangeZoom=function(e){var r=n(e);return r&&(t.colorCanvasMTime=0,t.rangeZoom=[0,1]),r};var r=e.setRangeZoom;e.setRangeZoom=function(){var e=r.apply(void 0,arguments);return e&&(t.colorCanvasMTime=0),e},e.onModified(function(){return e.render()}),e.setSize.apply(e,LT(t.size))}var $T={histogram:[],numberOfBins:256,histogramArray:null,dataRange:[0,1],gaussians:[],opacities:[],size:[600,300],piecewiseSize:256,colorCanvasMTime:0,gaussianMinimumHeight:.05,style:{backgroundColor:"rgba(255, 255, 255, 1)",histogramColor:"rgba(200, 200, 200, 0.5)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(0, 0, 150)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",handleColor:"rgb(0, 150, 0)",strokeWidth:2,activeStrokeWidth:3,buttonStrokeWidth:1.5,handleWidth:3,iconSize:20,padding:10,zoomControlHeight:10,zoomControlColor:"#999"},activeGaussian:-1,selectedGaussian:-1,enableRangeZoom:!0,rangeZoom:[0,1]};function JT(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,$T,n),f.a.obj(e,t),f.a.setGet(e,t,["piecewiseSize","numberOfBins","colorTransferFunction","backgroundImage","enableRangeZoom","gaussianMinimumHeight"]),f.a.setGetArray(e,t,["rangeZoom"],2),f.a.get(e,t,["size","canvas","gaussians"]),f.a.event(e,t,"opacityChange"),f.a.event(e,t,"animation"),f.a.event(e,t,"zoomChange"),QT(e,t)}var eC=DT({newInstance:f.a.newInstance(JT,"vtkPiecewiseGaussianWidget"),extend:JT},ZT);var tC={center:[0,0,0],rotationFactor:1,displayCenter:[0,0]};var nC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,tC,n),f.a.setGet(e,t,["rotationFactor"]),f.a.setGetArray(e,t,["displayCenter"],2),f.a.setGetArray(e,t,["center"],3),function(e,t){t.classHierarchy.push("vtkCompositeCameraManipulator"),e.computeDisplayCenter=function(e,n){var r=e.computeWorldToDisplay(n,t.center[0],t.center[1],t.center[2]);t.displayCenter[0]=r[0],t.displayCenter[1]=r[1]}}(e,t)}};var rC={button:1,shift:!1,control:!1,alt:!1,dragEnabled:!0,scrollEnabled:!1};var aC={extend:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,rC,n),f.a.setGet(e,t,["button","shift","control","alt"]),f.a.set(e,t,["dragEnabled","scrollEnabled"]),function(e,t){t.classHierarchy.push("vtkCompositeMouseManipulator"),e.startInteraction=function(){},e.endInteraction=function(){},e.onButtonDown=function(e,t,n){},e.onButtonUp=function(e){},e.onMouseMove=function(e,t,n){},e.onStartScroll=function(e,t,n){},e.onScroll=function(e,t,n){},e.onEndScroll=function(e){},e.isDragEnabled=function(){return t.dragEnabled},e.isScrollEnabled=function(){return t.scrollEnabled}}(e,t)}};var oC={};function iC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,oC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballRotateManipulator");var n=new Float64Array(3),r=new Float64Array(3),a=new Float64Array(3),s=new Float64Array(16),l=new Float64Array(3),c=new Float64Array(3),u=new Float64Array(3);e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,d,f){if(f){var p=d.getActiveCamera(),g=p.getPosition(),m=p.getFocalPoint();o.identity(s);var v=t.center,h=t.rotationFactor;o.translate(s,s,v);var y=t.previousPosition.x-f.x,b=t.previousPosition.y-f.y,T=e.getView().getSize(),C=p.getViewUp();o.rotate(s,s,x(360*y/T[0]*h),C),z(p.getDirectionOfProjection(),C,l),o.rotate(s,s,x(-360*b/T[1]*h),l),c[0]=-v[0],c[1]=-v[1],c[2]=-v[2],o.translate(s,s,c),i.transformMat4(n,g,s),i.transformMat4(r,m,s),u[0]=C[0]+g[0],u[1]=C[1]+g[1],u[2]=C[2]+g[2],i.transformMat4(a,u,s),p.setPosition(n[0],n[1],n[2]),p.setFocalPoint(r[0],r[1],r[2]),p.setViewUp(a[0]-n[0],a[1]-n[1],a[2]-n[2]),p.orthogonalizeViewUp(),d.resetCameraClippingRange(),e.getLightFollowCamera()&&d.updateLightsGeometryToFollowCamera(),t.previousPosition=f}}}(e,t)}var sC={newInstance:f.a.newInstance(iC,"vtkMouseCameraTrackballRotateManipulator"),extend:iC};var lC={};function cC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,lC,n),f.a.obj(e,t),nC.extend(e,t,n),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballPanManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r},e.onMouseMove=function(e,n,r){if(r){var a=r,o=t.previousPosition;t.previousPosition=r;var i=n.getActiveCamera(),s=i.getPosition(),l=i.getFocalPoint();if(i.getParallelProjection()){i.orthogonalizeViewUp();var c=i.getViewUp(),u=[0,0,0];z(i.getViewPlaneNormal(),c,u);var d=e.getView().getSize()[1],f=(a.x-o.x)/d,p=(o.y-a.y)/d,g=i.getParallelScale();p*=2*g;var m=u[0]*(f*=2*g)+c[0]*p;s[0]+=m,l[0]+=m,m=u[1]*f+c[1]*p,s[1]+=m,l[1]+=m,m=u[2]*f+c[2]*p,s[2]+=m,l[2]+=m,i.setPosition(s[0],s[1],s[2]),i.setFocalPoint(l[0],l[1],l[2])}else{var v=t.center,h=e.getInteractorStyle(),y=h.computeWorldToDisplay(n,v[0],v[1],v[2])[2],b=h.computeDisplayToWorld(n,a.x,a.y,y),T=h.computeDisplayToWorld(n,o.x,o.y,y),C=[s[0]+(T[0]-b[0]),s[1]+(T[1]-b[1]),s[2]+(T[2]-b[2])],S=[l[0]+(T[0]-b[0]),l[1]+(T[1]-b[1]),l[2]+(T[2]-b[2])];i.setPosition(C[0],C[1],C[2]),i.setFocalPoint(S[0],S[1],S[2])}n.resetCameraClippingRange(),e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera()}}}(e,t)}var uC={newInstance:f.a.newInstance(cC,"vtkMouseCameraTrackballPanManipulator"),extend:cC};var dC={zoomScale:0,flipDirection:!1};function fC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,dC,n),f.a.obj(e,t),aC.extend(e,t,n),nC.extend(e,t,n),f.a.setGet(e,t,["flipDirection"]),function(e,t){t.classHierarchy.push("vtkMouseCameraTrackballZoomManipulator"),e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView().getSize(),o=n.getActiveCamera(),i=t.flipDirection?-1:1;if(o.getParallelProjection())t.zoomScale=1.5/a[1]*i;else{var s=o.getClippingRange();t.zoomScale=s[1]/a[1]*1.5*i}},e.onMouseMove=function(e,n,r){if(r){var a=t.previousPosition.y-r.y,o=n.getActiveCamera();if(o.getParallelProjection()){var i=a*t.zoomScale;o.setParallelScale((1-i)*o.getParallelScale())}else{var s=o.getPosition(),l=o.getFocalPoint(),c=o.getDirectionOfProjection(),u=a*t.zoomScale,d=u*c[0];s[0]+=d,l[0]+=d,d=u*c[1],s[1]+=d,l[1]+=d,d=u*c[2],s[2]+=d,l[2]+=d,o.getFreezeFocalPoint()||o.setFocalPoint(l[0],l[1],l[2]),o.setPosition(s[0],s[1],s[2]),n.resetCameraClippingRange()}e.getLightFollowCamera()&&n.updateLightsGeometryToFollowCamera(),t.previousPosition=r}},e.onScroll=function(e,t,n){if(n){var r=t.getActiveCamera(),a=1-n/10;r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/a):(r.dolly(a),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}}(e,t)}var pC={newInstance:f.a.newInstance(fC,"vtkMouseCameraTrackballZoomManipulator"),extend:fC};var gC={horizontalListener:null,verticalListener:null,scrollListener:null};function mC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,gC,n),f.a.obj(e,t),aC.extend(e,t,n),function(e,t){t.classHierarchy.push("vtkMouseRangeManipulator");var n=new Map;function r(e,t){return t*((e.max-e.min)/(e.step+1))}function a(e,t){var r=e.getValue(),a=t*e.scale+n.get(e),o=r+a,i=o-e.min,s=Math.round(i/e.step);o=e.min+e.step*s,o=Math.max(o,e.min),(o=Math.min(o,e.max))!==r?(e.setValue(o),n.set(e,0)):o===e.min&&a<0||o===e.max&&a>0?n.set(e,0):n.set(e,a)}e.setHorizontalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.horizontalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.horizontalListener,0),e.modified()},e.setVerticalListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.verticalListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.verticalListener,0),e.modified()},e.setScrollListener=function(r,a,o,i,s){var l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1,c=Number.isFinite(i)?function(){return i}:i;t.scrollListener={min:r,max:a,step:o,getValue:c,setValue:s,scale:l},n.set(t.scrollListener,0),e.modified()},e.removeHorizontalListener=function(){t.verticalListener&&(n.delete(t.verticalListener),delete t.verticalListener,e.modified())},e.removeVerticalListener=function(){t.horizontalListener&&(n.delete(t.horizontalListener),delete t.horizontalListener,e.modified())},e.removeScrollListener=function(){t.scrollListener&&(n.delete(t.scrollListener),delete t.scrollListener,e.modified())},e.removeAllListeners=function(){e.removeHorizontalListener(),e.removeVerticalListener(),e.removeScrollListener()},e.onButtonDown=function(e,n,r){t.previousPosition=r;var a=e.getView(),o=a.getContainerSize()[0]/a.getSize()[0],i=a.getViewportSize(n);t.containerSize=i.map(function(e){return e*o})},e.onMouseMove=function(e,n,o){if((t.verticalListener||t.horizontalListener)&&o){if(t.horizontalListener){var i=(o.x-t.previousPosition.x)/t.containerSize[0],s=r(t.horizontalListener,i);a(t.horizontalListener,s)}if(t.verticalListener){var l=(o.y-t.previousPosition.y)/t.containerSize[1],c=r(t.verticalListener,l);a(t.verticalListener,c)}t.previousPosition=o}},e.onScroll=function(e,n,r){t.scrollListener&&r&&a(t.scrollListener,r*t.scrollListener.step)},e.onStartScroll=e.onScroll}(e,t)}var vC={newInstance:f.a.newInstance(mC,"vtkMouseRangeManipulator"),extend:mC};function hC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bC=f.a.vtkDebugMacro,TC=Km.States,CC={type:"StartInteractionEvent"},SC={type:"InteractionEvent"},PC={type:"EndInteractionEvent"};function wC(e,t,n,r,a,o){var i=e.getActiveCamera(),s=i.getFocalPoint(),l=(s=t.getInteractorStyle().computeWorldToDisplay(e,s[0],s[1],s[2]))[2],c=t.getInteractorStyle().computeDisplayToWorld(e,n,r,l),u=t.getInteractorStyle().computeDisplayToWorld(e,a,o,l),d=[u[0]-c[0],u[1]-c[1],u[2]-c[2]];s=i.getFocalPoint();var f=i.getPosition();i.setFocalPoint(d[0]+s[0],d[1]+s[1],d[2]+s[2]),i.setPosition(d[0]+f[0],d[1]+f[1],d[2]+f[2])}var xC={dollyToPosition:function(e,t,n,r){var a=n.getActiveCamera();if(a.getParallelProjection()){var o=r.getView().getSize(),i=o[0]/2,s=o[1]/2,l=t.x,c=t.y;wC(n,r,i,s,l,c),a.setParallelScale(a.getParallelScale()/e),wC(n,r,l,c,i,s)}else{var u=a.getFocalPoint(),d=a.getViewPlaneNormal();u=r.getInteractorStyle().computeWorldToDisplay(n,u[0],u[1],u[2]);var f=r.getInteractorStyle().computeDisplayToWorld(n,t.x,t.y,u[2]);a.setFocalPoint(f[0],f[1],f[2]),a.dolly(e),n.resetCameraClippingRange();var p=a.getPosition();u=a.getFocalPoint();var g=[0,0,0],m=d[0]*(u[0]-p[0])+d[1]*(u[1]-p[1])+d[2]*(u[2]-p[2]);m/=Math.pow(d[0],2)+Math.pow(d[1],2)+Math.pow(d[2],2),g[0]=p[0]+d[0]*m,g[1]=p[1]+d[1]*m,g[2]=p[2]+d[2]*m,a.setFocalPoint(g[0],g[1],g[2]),n.resetCameraClippingRange()}},translateCamera:wC,dollyByFactor:function(e,t,n){if(!Number.isNaN(n)){var r=t.getActiveCamera();r.getParallelProjection()?r.setParallelScale(r.getParallelScale()/n):(r.dolly(n),t.resetCameraClippingRange()),e.getLightFollowCamera()&&t.updateLightsGeometryToFollowCamera()}}};var OC={cachedMousePosition:null,currentManipulator:null,currentWheelManipulator:null,centerOfRotation:[0,0,0],rotationFactor:1};function MC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,OC,n),Km.extend(e,t,n),f.a.setGet(e,t,["rotationFactor"]),f.a.get(e,t,["mouseManipulators","keyboardManipulators","vrManipulators","gestureManipulators"]),f.a.setGetArray(e,t,["centerOfRotation"],3),function(e,t){t.classHierarchy.push("vtkInteractorStyleManipulator"),t.mouseManipulators=[],t.keyboardManipulators=[],t.vrManipulators=[],t.gestureManipulators=[],t.currentManipulator=null,t.currentWheelManipulator=null,t.centerOfRotation=[0,0,0],t.rotationFactor=1,e.removeAllManipulators=function(){e.removeAllMouseManipulators(),e.removeAllKeyboardManipulators(),e.removeAllVRManipulators(),e.removeAllGestureManipulators()},e.removeAllMouseManipulators=function(){t.mouseManipulators=[]},e.removeAllKeyboardManipulators=function(){t.keyboardManipulators=[]},e.removeAllVRManipulators=function(){t.vrManipulators=[]},e.removeAllGestureManipulators=function(){t.gestureManipulators=[]};var n=function(t,n){var r=n.indexOf(t);return-1!==r&&(n.splice(r,1),e.modified(),!0)};e.removeMouseManipulator=function(e){return n(e,t.mouseManipulators)},e.removeKeyboardManipulator=function(e){return n(e,t.keyboardManipulators)},e.removeVRManipulator=function(e){return n(e,t.vrManipulators)},e.removeGestureManipulator=function(e){return n(e,t.gestureManipulators)};var r=function(t,n){return-1===n.indexOf(t)&&(n.push(t),e.modified(),!0)};e.addMouseManipulator=function(e){return r(e,t.mouseManipulators)},e.addKeyboardManipulator=function(e){return r(e,t.keyboardManipulators)},e.addVRManipulator=function(e){return r(e,t.vrManipulators)},e.addGestureManipulator=function(e){return r(e,t.gestureManipulators)},e.getNumberOfMouseManipulators=function(){return t.mouseManipulators.length},e.getNumberOfKeyboardManipulators=function(){return t.keyboardManipulators.length},e.getNumberOfVRManipulators=function(){return t.vrManipulators.length},e.getNumberOfGestureManipulators=function(){return t.gestureManipulators.length},e.resetCurrentManipulator=function(){t.currentManipulator=null,t.currentWheelManipulator=null},e.handleLeftButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(1,n)},e.handleMiddleButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(2,n)},e.handleRightButtonPress=function(n){t.previousPosition=n.position,e.onButtonDown(3,n)},e.handleButton3D=function(n){n&&(t.currentManipulator=e.findVRManipulator(n.device,n.input,n.pressed),t.currentManipulator?(t.currentManipulator.onButton3D(e,n.pokedRenderer,t.state,n.device,n.input,n.pressed),n.pressed?e.startCameraPose():e.endCameraPose()):bC("No manipulator found"))},e.handleMove3D=function(n){t.currentManipulator&&t.state===TC.IS_CAMERA_POSE&&t.currentManipulator.onMove3D(e,n.pokedRenderer,t.state,n)},e.onButtonDown=function(n,r){t.currentManipulator||(t.currentManipulator=e.findMouseManipulator(n,r.shiftKey,r.controlKey,r.altKey),t.currentManipulator?(t.currentManipulator.setCenter&&t.currentManipulator.setCenter(t.centerOfRotation),t.currentManipulator.setRotationFactor&&t.currentManipulator.setRotationFactor(t.rotationFactor),t.currentManipulator.startInteraction(),t.currentManipulator.onButtonDown(t.interactor,r.pokedRenderer,r.position),t.interactor.requestAnimation(e.onButtonDown),e.invokeStartInteractionEvent(CC)):bC("No manipulator found"))},e.findMouseManipulator=function(e,n,r,a){for(var o=null,i=t.mouseManipulators.length;i--;){var s=t.mouseManipulators[i];s&&s.getButton()===e&&s.getShift()===n&&s.getControl()===r&&s.getAlt()===a&&s.isDragEnabled()&&(o=s)}return o},e.findVRManipulator=function(e,n){for(var r=null,a=t.vrManipulators.length;a--;){var o=t.vrManipulators[a];o&&o.getDevice()===e&&o.getInput()===n&&(r=o)}return r},e.handleLeftButtonRelease=function(){e.onButtonUp(1)},e.handleMiddleButtonRelease=function(){e.onButtonUp(2)},e.handleRightButtonRelease=function(){e.onButtonUp(3)},e.onButtonUp=function(n){t.currentManipulator&&t.currentManipulator.getButton&&t.currentManipulator.getButton()===n&&(t.currentManipulator.onButtonUp(t.interactor),t.currentManipulator.endInteraction(),t.currentManipulator=null,t.interactor.cancelAnimation(e.onButtonDown),e.invokeEndInteractionEvent(PC))},e.handleStartMouseWheel=function(n){if(!t.currentWheelManipulator){for(var r=null,a=t.mouseManipulators.length;a--;){var o=t.mouseManipulators[a];o&&o.isScrollEnabled()&&o.getShift()===n.shiftKey&&o.getControl()===n.controlKey&&o.getAlt()===n.altKey&&(r=o)}r?(t.currentWheelManipulator=r,t.currentWheelManipulator.onStartScroll(t.interactor,n.pokedRenderer,n.spinY),t.currentWheelManipulator.startInteraction(),t.interactor.requestAnimation(e.handleStartMouseWheel),e.invokeStartInteractionEvent(CC)):bC("No manipulator found")}},e.handleEndMouseWheel=function(){t.currentWheelManipulator&&t.currentWheelManipulator.onEndScroll&&(t.currentWheelManipulator.onEndScroll(t.interactor),t.currentWheelManipulator.endInteraction(),t.currentWheelManipulator=null,t.interactor.cancelAnimation(e.handleStartMouseWheel),e.invokeEndInteractionEvent(PC))},e.handleMouseWheel=function(n){t.currentWheelManipulator&&t.currentWheelManipulator.onScroll&&(t.currentWheelManipulator.onScroll(t.interactor,n.pokedRenderer,n.spinY,t.cachedMousePosition),e.invokeInteractionEvent(SC))},e.handleMouseMove=function(n){t.cachedMousePosition=n.position,t.currentManipulator&&t.currentManipulator.onMouseMove&&(t.currentManipulator.onMouseMove(t.interactor,n.pokedRenderer,n.position),e.invokeInteractionEvent(SC))},e.handleKeyPress=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyPress}).forEach(function(r){r.onKeyPress(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyDown=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyDown}).forEach(function(r){r.onKeyDown(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleKeyUp=function(n){t.keyboardManipulators.filter(function(e){return e.onKeyUp}).forEach(function(r){r.onKeyUp(t.interactor,n.pokedRenderer,n.key),e.invokeInteractionEvent(SC)})},e.handleStartPinch=function(n){e.startDolly();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPinchEnabled()&&(a.onStartPinch(t.interactor,n.scale),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPinch),e.invokeStartInteractionEvent(CC)},e.handleEndPinch=function(){e.endDolly();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPinchEnabled()&&(r.onEndPinch(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPinch),e.invokeEndInteractionEvent(PC)},e.handleStartRotate=function(n){e.startRotate();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isRotateEnabled()&&(a.onStartRotate(t.interactor,n.rotation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartRotate),e.invokeStartInteractionEvent(CC)},e.handleEndRotate=function(){e.endRotate();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isRotateEnabled()&&(r.onEndRotate(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartRotate),e.invokeEndInteractionEvent(PC)},e.handleStartPan=function(n){e.startPan();for(var r=t.gestureManipulators.length;r--;){var a=t.gestureManipulators[r];a&&a.isPanEnabled()&&(a.onStartPan(t.interactor,n.translation),a.startInteraction())}t.interactor.requestAnimation(e.handleStartPan),e.invokeStartInteractionEvent(CC)},e.handleEndPan=function(){e.endPan();for(var n=t.gestureManipulators.length;n--;){var r=t.gestureManipulators[n];r&&r.isPanEnabled()&&(r.onEndPan(t.interactor),r.endInteraction())}t.interactor.cancelAnimation(e.handleStartPan),e.invokeEndInteractionEvent(PC)},e.handlePinch=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPinchEnabled()&&(o.onPinch(t.interactor,n.pokedRenderer,n.scale),a++)}a&&e.invokeInteractionEvent(SC)},e.handlePan=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isPanEnabled()&&(o.onPan(t.interactor,n.pokedRenderer,n.translation),a++)}a&&e.invokeInteractionEvent(SC)},e.handleRotate=function(n){for(var r=t.gestureManipulators.length,a=0;r--;){var o=t.gestureManipulators[r];o&&o.isRotateEnabled()&&(o.onRotate(t.interactor,n.pokedRenderer,n.rotation),a++)}a&&e.invokeInteractionEvent(SC)}}(e,t)}var AC=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,IC,n),f.a.obj(e,t),f.a.get(e,t,["renderer"]),f.a.getArray(e,t,["selectionPoint","pickPosition"]),f.a.setGet(e,t,["pickFromList","pickList"]),function(e,t){t.classHierarchy.push("vtkAbstractPicker"),e.initialize=function(){t.renderer=null,t.selectionPoint[0]=0,t.selectionPoint[1]=0,t.selectionPoint[2]=0,t.pickPosition[0]=0,t.pickPosition[1]=0,t.pickPosition[2]=0},e.initializePickList=function(){t.pickList=[]},e.addPickList=function(e){t.pickList.push(e)},e.deletePickList=function(e){var n=t.pickList.indexOf(e);-1!==n&&t.pickList.splice(n,1)}}(e,t)}var EC={newInstance:f.a.newInstance(RC,"vtkAbstractPicker"),extend:RC};function DC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function VC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var LC=f.a.vtkErrorMacro,NC=f.a.vtkWarningMacro;function BC(e,t){t.classHierarchy.push("vtkPicker");var n=function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,kC,n),EC.extend(e,t,n),f.a.setGet(e,t,["tolerance"]),f.a.setGetArray(e,t,["mapperPosition"],3),f.a.get(e,t,["mapper","dataSet","actors","pickedPositions"]),f.a.event(e,t,"pickChange"),BC(e,t)}var GC={newInstance:f.a.newInstance(FC,"vtkPicker"),extend:FC},_C=f.a.vtkErrorMacro;var UC={pointId:-1,pointIJK:[],useCells:!1};function jC(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,UC,n),GC.extend(e,t,n),f.a.getArray(e,t,["pointIJK"]),f.a.get(e,t,["pointId"]),f.a.setGet(e,t,["useCells"]),function(e,t){t.classHierarchy.push("vtkPointPicker"),e.intersectWithLine=function(n,r,a,o){var i=Number.MAX_VALUE;if(o.isA("vtkImageMapper")){var s=o.intersectWithLineForPointPicking(n,r);s&&(i=s.t,t.pointIJK=s.ijk)}else o.isA("vtkMapper")&&(i=e.intersectActorWithLine(n,r,a,o));return i},e.intersectActorWithLine=function(e,n,r,a){var o=a.getInputData(),i=0,s=o.getPoints().getNumberOfPoints();if(s<=i)return 2;for(var l=[],c=0;c<3;c++)l[c]=n[c]-e[c];var u,d=W(l,l);if(0===d)return _C("Cannot process points"),2;var f=-1,p=Number.MAX_VALUE,g=Number.MAX_VALUE,m=[],v=[],h=[],y=o.getPoints();if(t.useCells)for(var b=o.getPolys().getData(),T=b[0],C=o.getPolys().getNumberOfCells(),S=0;S=0&&u<=1&&u<=p+t.tolerance){for(var M=0,A=0;A<3;A++){m[A]=e[A]+u*l[A];var I=Math.abs(h[A]-m[A]);I>M&&(M=I)}M<=r&&M=0&&u<=1&&u<=p+t.tolerance){for(var R=0,E=0;E<3;E++){m[E]=e[E]+u*l[E];var D=Math.abs(h[E]-m[E]);D>R&&(R=D)}R<=r&&Re.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,qC,n),t.normal=[0,0,1],t.center=[0,0,0],f.a.obj(e,t),f.a.setGet(e,t,["xResolution","yResolution"]),f.a.setGetArray(e,t,["origin"],3),f.a.getArray(e,t,["point1","point2","normal","center"],3),f.a.algo(e,t,0,1),function(e,t){t.classHierarchy.push("vtkPlaneSource"),e.requestData=function(n,r){if(!t.deleted){var a=r[0],o=a?a.getPoints().getDataType():"Float32Array",i=eh.newInstance(),s=new Float32Array(3),l=new Float32Array(3);if(G(t.point1,t.origin,s),G(t.point2,t.origin,l),e.updatePlane(s,l)){var c=t.xResolution,u=t.yResolution,d=(c+1)*(u+1),p=c*u,g=f.a.newTypedArray(o,3*d);i.getPoints().setData(g,3);var m=new Uint32Array(5*p);i.getPolys().setData(m,1);var v=new Float32Array(3*d),h=Qe.newInstance({numberOfComponents:3,values:v,name:"Normals"});i.getPointData().setNormals(h);var y=new Float32Array(2*d),b=Qe.newInstance({numberOfComponents:2,values:y,name:"TextureCoordinates"});i.getPointData().setTCoords(b);for(var T=new Float32Array(2),C=0,S=0;S2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,nS,n),f.a.obj(e,t),f.a.set(e,t,["property"]),f.a.get(e,t,["value"]),f.a.setGet(e,t,["coordinateSystem","referenceCoordinate","renderer"]),f.a.getArray(e,t,["value"],3),function(e,t){t.classHierarchy.push("vtkCoordinate"),e.setValue=function(){if(t.deleted)return tS("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),a=0;a1?1e3*e:1e3;this.actor.getMapper().setMaximumSamplesPerRay(t),this.renderWindow.render()}get resolution(){return Math.round(1/this._raysDistance)}get presetsList(){return wT.rgbPresetNames}set widgetElement(e){this.PGwidgetElement=e;let t=e.offsetHeight?e.offsetHeight-5:100,n=e.offsetWidth?e.offsetWidth-5:300;this.PGwidget.setSize(n,t),this.PGwidget.setContainer(this.PGwidgetElement),this.PGwidget.render()}set rescaleLUT(e){let t;this._rescaleLUT=e,t=this._rescaleLUT&&this.PGwidget?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),this.ctfun.setMappingRange(...t),this.ctfun.updateRange()}set rangeLUT([e,t]){this._rangeLUT=[e,t],this.actor.getProperty().getRGBTransferFunction(0).setMappingRange(e,t)}set cropWidget(e){this._cropWidget||this.setupCropWidget(),this._cropWidget.setVisibility(e),this._widgetManager.renderWidgets(),this.renderWindow.render()}set lut(e){const t=vs.newInstance();let n;t.applyColorMap(wT.getPresetByName(e)),n=this._rescaleLUT&&this._PGwidgetLoaded?this.PGwidget.getOpacityRange():this.actor.getMapper().getInputData().getPointData().getScalars().getRange(),t.setMappingRange(...n),t.updateRange(),this.actor.getProperty().setRGBTransferFunction(0,t);const r=Ts.newInstance();this.actor.getProperty().setScalarOpacity(0,r),this.ctfun=t,this.ofun=r,this.updateWidget()}set blurOnInteraction(e){this._blurOnInteraction=e;let t=this.renderWindow.getInteractor(),n=this.actor.getMapper();e?(t.onLeftButtonPress(()=>{n.setSampleDistance(5*this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()})):(t.onLeftButtonPress(()=>{n.setSampleDistance(this._raysDistance)}),t.onLeftButtonRelease(()=>{n.setSampleDistance(this._raysDistance);let e=this.renderer.getActiveCamera();this._pickingPlane&&this._pickingPlane.setNormal(e.getDirectionOfProjection()),this.renderWindow.render()}))}initVR(){const e=fh.newInstance();e.setContainer(this.element),e.setBackground([0,0,0]),e.onResize(()=>{let t=[e.getContainer().getBoundingClientRect().width,e.getContainer().getBoundingClientRect().height];e.getRenderWindow().getViews()[0].setSize(t),this.VERBOSE&&console.log("resize",t)}),window.addEventListener("resize",t=>{e.resize()}),e.resize(),this.renderer=e.getRenderer(),this.renderWindow=e.getRenderWindow(),this._genericRenderWindow=e,this.setupPGwidget()}setImage(e){this.renderer.removeAllVolumes();let t=Ys(e);this.actor=t,this.lut="Grayscale",this.resolution=2,this.renderer.addVolume(t),this.setCamera(t.getCenter()),this.PGwidget&&(this.updateWidget(),this.setWidgetCallbacks()),this.setActorProperties(),this.setupInteractor(),this.blurOnInteraction=!0,this._genericRenderWindow.resize(),this.renderer.resetCamera(),this.renderWindow.render()}setCamera(e){this.renderer.resetCamera(),this.renderer.getActiveCamera().zoom(1.5),this.renderer.getActiveCamera().elevation(70),this.renderer.getActiveCamera().setViewUp(0,0,1),this.renderer.getActiveCamera().setFocalPoint(e[0],e[1],e[2]),this.renderer.getActiveCamera().setPosition(e[0],e[1]-2e3,e[2]),this.renderer.getActiveCamera().setThickness(1e4),this.renderer.getActiveCamera().setParallelProjection(!0)}getLutList(){return wT.rgbPresetNames}setActorProperties(){this.actor.getProperty().setScalarOpacityUnitDistance(0,30),this.actor.getProperty().setInterpolationTypeToLinear(),this.actor.getProperty().setUseGradientOpacity(0,!0),this.actor.getProperty().setGradientOpacityMinimumValue(0,2),this.actor.getProperty().setGradientOpacityMinimumOpacity(0,0),this.actor.getProperty().setGradientOpacityMaximumValue(0,20),this.actor.getProperty().setGradientOpacityMaximumOpacity(0,2),this.actor.getProperty().setShade(!0),this.actor.getProperty().setAmbient(.3),this.actor.getProperty().setDiffuse(.7),this.actor.getProperty().setSpecular(.3),this.actor.getProperty().setSpecularPower(.8)}setupCropWidget(){const e=Jh.newInstance();e.setRenderer(this.renderer);const t=mT.newInstance(),n=(e.addWidget(t),t.getWidgetState().getCroppingPlanes());n.onModified(()=>{const e=function(e,t){const n=l.create();o.getRotation(n,e.getIndexToWorld());const r=e=>{const t=[0,0,0];return i.transformQuat(t,e,n),t},[a,s,c,u,d,f]=t,p=e.indexToWorld([a,c,d]),g=e.indexToWorld([s,u,f]);return[ft.newInstance({normal:r([1,0,0]),origin:p}),ft.newInstance({normal:r([-1,0,0]),origin:g}),ft.newInstance({normal:r([0,1,0]),origin:p}),ft.newInstance({normal:r([0,-1,0]),origin:g}),ft.newInstance({normal:r([0,0,1]),origin:p}),ft.newInstance({normal:r([0,0,-1]),origin:g})]}(a,n.getPlanes());r.removeAllClippingPlanes(),e.forEach(e=>{r.addClippingPlane(e)}),r.modified()});let r=this.actor.getMapper(),a=r.getInputData();t.copyImageDataDescription(a),t.set({faceHandlesEnabled:!0,edgeHandlesEnabled:!0,cornerHandlesEnabled:!0}),e.enablePicking(),this._widgetManager=e,this._cropWidget=t,this.renderWindow.render()}setupPGwidget(){let e=this.PGwidgetElement?this.PGwidgetElement.offsetWidth-5:300,t=this.PGwidgetElement?this.PGwidgetElement.offsetHeight-5:100;const n=eC.newInstance({numberOfBins:256,size:[e,t]});n.updateStyle({backgroundColor:"rgba(255, 255, 255, 0.6)",histogramColor:"rgba(50, 50, 50, 0.8)",strokeColor:"rgb(0, 0, 0)",activeColor:"rgb(255, 255, 255)",handleColor:"rgb(50, 150, 50)",buttonDisableFillColor:"rgba(255, 255, 255, 0.5)",buttonDisableStrokeColor:"rgba(0, 0, 0, 0.5)",buttonStrokeColor:"rgba(0, 0, 0, 1)",buttonFillColor:"rgba(255, 255, 255, 1)",strokeWidth:1,activeStrokeWidth:1.5,buttonStrokeWidth:1,handleWidth:1,iconSize:0,padding:1}),n.setContainer(this.PGwidgetElement),window.addEventListener("resize",e=>{n.setSize(this.PGwidgetElement.offsetWidth-5,this.PGwidgetElement.offsetHeight-5),n.render()}),this.PGwidget=n}updateWidget(){const e=this.actor.getMapper().getInputData().getPointData().getScalars();this.PGwidget.setDataArray(e.getData());let t=this.PGwidget.getGaussians();if(t.length>0){let e=t[0];e.position=this.wl,e.width=this.ww,this.PGwidget.setGaussians([e])}else{const e=1,t=0,n=1.8;this.PGwidget.addGaussian(this.wl,e,this.ww,t,n)}this.PGwidget.applyOpacity(this.ofun),this.PGwidget.setColorTransferFunction(this.ctfun),this.ctfun.onModified(()=>{this.PGwidget.render(),this.renderWindow.render()}),this._PGwidgetLoaded=!0}setWidgetCallbacks(){this.PGwidget.bindMouseListeners(),this.PGwidget.onAnimation(e=>{e?this.renderWindow.getInteractor().requestAnimation(this.PGwidget):this.renderWindow.getInteractor().cancelAnimation(this.PGwidget)}),this.PGwidget.onOpacityChange(e=>{if(this.PGwidget=e,this.gaussians=e.getGaussians().slice(),this.PGwidget.applyOpacity(this.ofun),this.renderWindow.getInteractor().isAnimating()||this.renderWindow.render(),this._rescaleLUT&&this.PGwidget){const e=this.PGwidget.getOpacityRange();this.ctfun.setMappingRange(...e),this.ctfun.updateRange()}})}setupInteractor(){const e=sC.newInstance({button:1}),t=uC.newInstance({button:3,control:!0}),n=pC.newInstance({button:3,scrollEnabled:!0}),r=vC.newInstance({button:1,shift:!0});let a=this;r.setVerticalListener(-1,1,.001,function(){return a.wl},function(e){let t=a.wl+(e-a.wl)/25;a.wl=t;let n=a.PGwidget.getGaussians().slice();n[0].position=a.wl,a.PGwidget.setGaussians(n)}),r.setHorizontalListener(.1,2.1,.001,function(){return a.ww},function(e){let t=a.ww+(e-a.ww)/5;a.ww=t;let n=a.PGwidget.getGaussians().slice();n[0].width=a.ww,a.PGwidget.setGaussians(n)});const o=AC.newInstance();o.addMouseManipulator(r),o.addMouseManipulator(e),o.addMouseManipulator(t),o.addMouseManipulator(n),o.setCenterOfRotation(this.actor.getCenter()),this.renderWindow.getInteractor().setInteractorStyle(o),this.renderWindow.getInteractor().onMouseWheel(()=>this.resetMeasurementState()),this.renderWindow.getInteractor().onRightButtonPress(()=>this.resetMeasurementState())}resetMeasurementState(e){this._measurementState?(this._measurementState.p1=new Array(2),this._measurementState.p2=new Array(2),this._measurementState.p3=new Array(2),this._measurementState.p1_world=new Array(2),this._measurementState.p2_world=new Array(2),this._measurementState.p3_world=new Array(2),this._measurementState.label=null):e&&(e.p1=new Array(2),e.p2=new Array(2),e.p3=new Array(2),e.p1_world=new Array(2),e.p2_world=new Array(2),e.p3_world=new Array(2),e.label=null)}setTool(e,t,n){switch(this._leftButtonCb&&this._leftButtonCb.unsubscribe(),e){case"Length":case"Angle":this._initPicker(n,e);break;case"Rotation":this.resetMeasurementState(n),this.setupInteractor();break;default:console.warn("No tool found for",e)}}_initPicker(e,t){this.blurOnInteraction=!1;let n=this.renderWindow.getInteractor().getInteractorStyle().getMouseManipulators().filter(e=>"vtkMouseCameraTrackballRotateManipulator"==e.getClassName()).pop();this.renderWindow.getInteractor().getInteractorStyle().removeMouseManipulator(n);const r=WC.newInstance();if(r.setPickFromList(1),r.initializePickList(),!this._pickingPlane){const e=ZC.newInstance({xResolution:1e3,yResolution:1e3});let t=this.renderer.getActiveCamera();e.setPoint1(0,0,1e3),e.setPoint2(1e3,0,0),e.setCenter(this.actor.getCenter()),e.setNormal(t.getDirectionOfProjection());const n=sf.newInstance();n.setInputConnection(e.getOutputPort());const r=sh.newInstance();r.setMapper(n),r.getProperty().setOpacity(.01),this.renderer.addActor(r),this._pickingPlane=e,this._planeActor=r}r.addPickList(this._planeActor),this._leftButtonCb=this.renderWindow.getInteractor().onLeftButtonPress(n=>{if(this.renderer!==n.pokedRenderer)return;const a=n.position,o=[a.x,a.y,0];if(r.pick(o,this.renderer),0===r.getActors().length){const e=r.getPickPosition();this.VERBOSE&&console.log(`No point picked, default: ${e}`)}else{const n=r.getPickedPositions()[0];this.VERBOSE&&console.log(`Picked: ${n}`);const a=aS.newInstance();a.setCoordinateSystemToWorld(),a.setValue(...n);const o=a.getComputedDisplayValue(this.renderer);!function(e,t,n,r){oS[r](e,t,n)}(e,o,n,t),this.VERBOSE&&console.log(e),this._measurementState=e}this.renderWindow.render()})}resetView(){let e=this.actor.getCenter();console.log(e),this.setCamera(e),this.renderWindow.render()}resize(){this._genericRenderWindow.resize()}destroy(){this.element=null,this._genericRenderWindow.delete(),this._genericRenderWindow=null,this.actor&&(this.actor.getMapper().delete(),this.actor.delete(),this.actor=null),this._planeActor&&(this._planeActor.getMapper().delete(),this._planeActor.delete(),this._planeActor=null),this.PGwidgetElement&&(this.PGwidgetElement=null,this.PGwidget.getCanvas().remove(),this.PGwidget.delete(),this.PGwidget=null,this.gaussians=null),this._cropWidget&&(this._cropWidget.delete(),this._cropWidget=null)}}function uS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRSlice"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulator=uC.newInstance({button:1,shift:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n={sliceNormal:[0,0,0],sliceRange:[0,0],slicePosition:[0,0,0]};function r(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}let a=null,o=null;const i=e.setInteractor;e.setInteractor=(n=>{if(i(n),a&&(a.unsubscribe(),a=null),o&&(o.unsubscribe(),o=null),n){const i=n.getCurrentRenderer().getActiveCamera();a=i.onModified(()=>{r(),e.modified()}),o=n.onAnimation(()=>{const{slabThickness:e}=t,n=i.getDistance(),r=n-e/2,a=n+e/2;i.setClippingRange(r,a)})}}),e.handleMouseMove=f.a.chain(e.handleMouseMove,()=>{const e=t.interactor.getCurrentRenderer(),{slabThickness:n}=t,r=e.getActiveCamera(),a=r.getDistance(),o=a-n/2,i=a+n/2;r.setClippingRange(o,i)});const s=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(s(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.getSlice=(()=>{const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=e.getSliceNormal(),a=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]),o=n.getFocalPoint();return a.apply(o),o[0]}),e.setSlice=(n=>{const r=t.interactor.getCurrentRenderer().getActiveCamera();if(t.volumeMapper){const a=e.getSliceRange(),o=t.volumeMapper.getBounds(),i=function(e,t,n){return en?n:e}(n,...a),s=[(o[0]+o[1])/2,(o[2]+o[3])/2,(o[4]+o[5])/2],l=r.getDistance(),c=r.getDirectionOfProjection();Fe.normalize(c);const u=(a[1]+a[0])/2,d=[s[0]-c[0]*u,s[1]-c[1]*u,s[2]-c[2]*u],f=[d[0]+c[0]*i,d[1]+c[1]*i,d[2]+c[2]*i],p=[f[0]-c[0]*l,f[1]-c[1]*l,f[2]-c[2]*l];r.setPosition(...p),r.setFocalPoint(...f);const g=e.getOnScroll();g&&g(f)}}),e.getSliceRange=(()=>{if(t.volumeMapper){const r=e.getSliceNormal();if(r[0]===n.sliceNormal[0]&&r[1]===n.sliceNormal[1]&&r[2]===n.sliceNormal[2])return n.sliceRange;const a=function(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}(t.volumeMapper.getBounds()),o=wb.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);a.forEach(e=>o.apply(e));let i=1/0,s=-1/0;for(let e=0;e<8;e++){const t=a[e][0];t>s&&(s=t),t{if(t.volumeMapper&&t.interactor){return t.interactor.getCurrentRenderer().getActiveCamera().getDirectionOfProjection()}return[0,0,0]}),e.setSliceNormal=((n,r=[0,1,0])=>{const a=t.interactor.getCurrentRenderer().getActiveCamera();t.sliceNormal=[...n],t.viewUp=[...r];const o=[...n],i=[...r];if(t.volumeMapper){Fe.normalize(o);let n=t.volumeMapper;!t.volumeMapper.getInputData&&t.volumeMapper.getMapper&&(n=t.volumeMapper.getMapper());let r=function(e){if(9!==e.length)throw Error("Array not length 9");return[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]]]}(n.getInputData().getDirection());Fe.transpose3x3(r,r),Fe.multiply3x3_vect3(r,o,o);let s=a.getFocalPoint(),l=a.getDistance(),c=a.getViewAngle();if(Number.isNaN(l)||void 0===l){const e=t.volumeMapper.getBounds(),n=Math.sqrt(Fe.distance2BetweenPoints([e[0],e[2],e[4]],[e[1],e[3],e[5]]));s=[(e[0]+e[1])/2,(e[2]+e[3])/2,(e[4]+e[5])/2],c=90,l=n/(2*Math.tan(c/360*Math.PI))}const u=[s[0]-o[0]*l,s[1]-o[1]*l,s[2]-o[2]*l];Fe.multiply3x3_vect3(r,i,i);const{slabThickness:d}=t;a.setPosition(...u),a.setDistance(l),a.setDirectionOfProjection(...o),a.setViewUp(...i),a.setViewAngle(c),a.setClippingRange(l-d/2,l+d/2),e.setCenterOfRotation(s)}}),e.setSlabThickness=(e=>{t.slabThickness=e;const n=t.interactor.getCurrentRenderer().getActiveCamera(),r=n.getDistance();n.setClippingRange(r-e/2,r+e/2)}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulator),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),r()}const dS={slabThickness:.1};function fS(e,t,n={}){Object.assign(t,dS,n),AC.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onScroll"]),f.a.get(e,t,["slabThickness","viewUp"]),uS(e,t)}const pS=f.a.newInstance(fS,"vtkInteractorStyleMPRSlice");var gS=Object.assign({newInstance:pS,extend:fS});const{States:mS}=Gm;function vS(e,t){t.classHierarchy.push("vtkInteractorStyleMPRWindowLevel"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const n=e.handleMouseMove;e.handleMouseMove=(r=>{const a=[r.position.x,r.position.y];t.state===mS.IS_WINDOW_LEVEL&&(e.windowLevelFromMouse(a),e.invokeInteractionEvent({type:"InteractionEvent"})),n&&n(r)});const r=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(r(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.windowLevelFromMouse=(([n,r])=>{const a=t.volumeMapper.getMapper().getInputData().getPointData().getScalars().getRange(),o=(a[1]-a[0])/1024*t.levelScale,i=(n-t.wlStartPos[0])*o,s=(r-t.wlStartPos[1])*o*.5;let{windowWidth:l,windowCenter:c}=e.getWindowLevel();l=Math.max(1,Math.round(l+i)),c=Math.round(c+s),e.setWindowLevel(l,c),t.wlStartPos=[n,r];const u=e.getOnLevelsChanged();u&&u({windowCenter:c,windowWidth:l})}),e.getWindowLevel=(()=>{return function(e,t){const n=Math.abs(e-t);return{windowWidth:n,windowCenter:e+n/2}}(...t.volumeMapper.getProperty().getRGBTransferFunction(0).getMappingRange().slice())}),e.setWindowLevel=((e,n)=>{const r=function(e,t){return{lower:t-e/2,upper:t+e/2}}(e,n);t.volumeMapper.getProperty().getRGBTransferFunction(0).setMappingRange(r.lower,r.upper)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(n=>{t.wlStartPos=[n.position.x,n.position.y],n.shiftKey||n.controlKey?a&&a(n):e.startWindowLevel()}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case mS.IS_WINDOW_LEVEL:e.endWindowLevel();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const hS={wlStartPos:[0,0],levelScale:1};function yS(e,t,n={}){Object.assign(t,hS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onLevelsChanged","levelScale"]),vS(e,t)}const bS=f.a.newInstance(yS,"vtkInteractorStyleMPRWindowLevel");var TS=Object.assign({newInstance:bS,extend:yS});const{States:CS}=Gm;function SS(e,t){function n(t){const n=[t.position.x,t.position.y],r=t.pokedRenderer,a=e.getOnClickCallback(),o=aS.newInstance();o.setCoordinateSystemToDisplay(),o.setValue(n[0],n[1],0);const i=o.getComputedWorldValue(r);i.length&&a({worldPos:i,displayPos:n}),e.invokeInteractionEvent({type:"InteractionEvent"})}t.classHierarchy.push("vtkInteractorStyleMPRCrosshairs"),t.trackballManipulator=sC.newInstance({button:1}),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1});const r=e.handleMouseMove;e.handleMouseMove=(e=>{t.state===CS.IS_SLICE&&n(e),r&&r(e)});const a=e.handleLeftButtonPress;e.handleLeftButtonPress=(r=>{r.shiftKey||r.controlKey?a&&a(r):t.volumeMapper&&(n(r),e.startSlice())});const o=e.setVolumeMapper;e.setVolumeMapper=(e=>{if(o(e)){const n=t.interactor.getCurrentRenderer().getActiveCamera();e?n.setFreezeFocalPoint(!0):n.setFreezeFocalPoint(!1)}}),e.superHandleLeftButtonRelease=e.handleLeftButtonRelease,e.handleLeftButtonRelease=(()=>{switch(t.state){case CS.IS_SLICE:e.endSlice();break;default:e.superHandleLeftButtonRelease()}}),e.removeAllMouseManipulators(),e.addMouseManipulator(t.trackballManipulator),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}const PS={};function wS(e,t,n={}){Object.assign(t,PS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onClickCallback"]),SS(e,t)}const xS=f.a.newInstance(wS,"vtkInteractorStyleMPRCrosshairs");var OS=Object.assign({newInstance:xS,extend:wS});const{States:MS}=Gm;function AS(e,t){function n(){e.removeAllMouseManipulators(),e.addMouseManipulator(t.panManipulatorShift),e.addMouseManipulator(t.panManipulatorCtrl),e.addMouseManipulator(t.zoomManipulator),e.addMouseManipulator(t.scrollManipulator),e.addMouseManipulator(t.leftManipulator),function(){const n=e.getSliceRange();t.scrollManipulator.removeScrollListener(),t.scrollManipulator.setScrollListener(n[0],n[1],1,e.getSlice,e.setSlice)}()}t.classHierarchy.push("vtkInteractorStyleMPRPanZoom"),t.panManipulatorShift=uC.newInstance({button:3,shift:!0}),t.panManipulatorCtrl=uC.newInstance({button:3,control:!0}),t.zoomManipulator=pC.newInstance({button:3}),t.scrollManipulator=vC.newInstance({scrollEnabled:!0,dragEnabled:!1}),e.setLeftButton=(e=>{"zoom"==e?t.leftManipulator=pC.newInstance({button:1}):"pan"==e?t.leftManipulator=uC.newInstance({button:1}):console.error("No tool found for",e),n()}),t.leftButtonTool||(t.leftButtonTool="pan"),e.setLeftButton(t.leftButtonTool),n();const r=e.setInteractor;e.setInteractor=(n=>{if(r(n),null===n)return;let a="pan"==t.leftButtonTool?e.getOnPanChanged():e.getOnZoomChanged();n.onAnimation(a)})}const IS={wlStartPos:[0,0],levelScale:1};function RS(e,t,n={}){Object.assign(t,IS,n),gS.extend(e,t,n),f.a.setGet(e,t,["volumeMapper","onPanChanged","onZoomChanged","levelScale"]),AS(e,t)}const ES=f.a.newInstance(RS,"vtkInteractorStyleMPRPanZoom");var DS=Object.assign({newInstance:ES,extend:RS});const VS=[[0,0,1],[-1,0,0],[0,1,0]],LS=[[0,-1,0],[0,0,1],[0,0,1]];class NS{constructor(e,t,n){this.VERBOSE=!1,this._key=e,this._element=n,this._volume=null,this._renderer=null,this._parallel=!0,this.slicePlaneNormal=VS[t],this.sliceViewUp=LS[t],this.slicePlaneXRotation=0,this.slicePlaneYRotation=0,this.viewRotation=0,this._sliceThickness=.1,this._blendMode="MIP",this.window={width:0,center:0},this._cachedSlicePlane=[...this.slicePlaneNormal],this._cachedSliceViewUp=[...this.sliceViewUp],this._genericRenderWindow=fh.newInstance({background:[0,0,0]}),this._genericRenderWindow.setContainer(n),this._renderWindow=this._genericRenderWindow.getRenderWindow(),this._renderer=this._genericRenderWindow.getRenderer(),this._parallel&&this._renderer.getActiveCamera().setParallelProjection(!0),this._genericRenderWindow.getOpenGLRenderWindow().buildPass(!0),this.onResize()}set blendMode(e){this._blendMode=e,this.updateBlendMode(this._sliceThickness,this._blendMode)}set sliceThickness(e){this._sliceThickness=e;const t=this._renderWindow.getInteractor().getInteractorStyle();t.setSlabThickness&&t.setSlabThickness(this._sliceThickness),this.updateBlendMode(this._sliceThickness,this._blendMode)}set wwwl([e,t]){this.window.center=t,this.window.width=e,this._genericRenderWindow.getRenderWindow().render()}get camera(){return this._genericRenderWindow.getRenderer().getActiveCamera()}initView(e,t,n,r){this._volume=e;const a=gS.newInstance();a.setOnScroll(n),this._renderWindow.getInteractor().setInteractorStyle(a),this.VERBOSE&&console.log(this._volumes);const o=this._volume.getMapper();a.setVolumeMapper(o);const i=a.getSliceRange();a.setSlice((i[0]+i[1])/2),this.updateVolumesForRendering(),this.VERBOSE&&console.log("view data",this._key,t.views[this.key]),this.updateSlicePlane(t.views[this._key]),this.fill2DView(this._genericRenderWindow,this._key),r()}updateVolumesForRendering(){this._renderer.removeAllVolumes(),this._volume&&(this._volume.isA("vtkVolume")?this._renderer.addVolume(this._volume):console.warn("Data to is not vtkVolume data")),this._renderWindow.render()}updateSlicePlane(e){let t=this._cachedSlicePlane,n=this._cachedSliceViewUp;this.VERBOSE&&console.log(e);let r=[];i.cross(r,e.sliceViewUp,e.slicePlaneNormal),i.normalize(r,r);let a=e.sliceViewUp;const s=o.create();o.rotate(s,s,Xs(e.slicePlaneYRotation),a),o.rotate(s,s,Xs(e.slicePlaneXRotation),r),this.VERBOSE&&console.log(t,e.slicePlaneNormal,s),i.transformMat4(t,e.slicePlaneNormal,s);const c=l.create();l.setAxisAngle(c,t,Xs(-e.viewRotation)),l.normalize(c,c);const u=l.create();l.setAxisAngle(u,r,Xs(e.slicePlaneXRotation)),l.normalize(u,u);const d=l.create();l.add(d,u,c),i.transformQuat(n,e.sliceViewUp,c);const f=this._genericRenderWindow.getRenderWindow(),p=f.getInteractor().getInteractorStyle();p&&p.setSliceNormal&&p.setSliceNormal(t,n),f.render()}fill2DView(){const e=this._renderer.computeVisiblePropBounds(),t=[(e[1]-e[0])/2,(e[3]-e[2])/2,(e[5]-e[4])/2],n=this._genericRenderWindow.getContainer().clientWidth/this._genericRenderWindow.getContainer().clientHeight;let r,a;"left"===this._key?(r=t[1],a=t[2]):"front"===this._key?(r=t[0],a=t[2]):"top"===this._key&&(r=t[0],a=t[1]),n>=r/a?this._renderer.getActiveCamera().setParallelScale(a+1):this._renderer.getActiveCamera().setParallelScale(r/n+1),this.onResize()}onResize(){this._genericRenderWindow.resize()}updateBlendMode(e,t){if(e>=1)switch(t){case"MIP":this._volume.getMapper().setBlendModeToMaximumIntensity();break;case"MINIP":this._volume.getMapper().setBlendModeToMinimumIntensity();break;case"AVG":this._volume.getMapper().setBlendModeToAverageIntensity();break;case"none":default:this._volume.getMapper().setBlendModeToComposite()}else this._volume.getMapper().setBlendModeToComposite();this._renderWindow.render()}setInteractor(e){const t=this._genericRenderWindow.getRenderWindow(),n=t.getInteractor().getInteractorStyle();t.getInteractor().setInteractorStyle(e),e.setInteractor(t.getInteractor()),t.getInteractor().setInteractorStyle(e),e.setSliceNormal&&n.getSliceNormal()&&e.setSliceNormal(n.getSliceNormal(),n.getViewUp()),e.setSlabThickness&&n.getSlabThickness()&&e.setSlabThickness(n.getSlabThickness()),e.setVolumeMapper(this._volume)}destroy(){this.VERBOSE&&console.log("DESTROY",this._key),this.VERBOSE=null,this._key=null,this._element=null,this._volume.getMapper()&&this._volume.getMapper().delete(),this._volume.delete(),this._volume=null,this._renderer.delete(),this._renderer=null,this._parallel=null,this.slicePlaneNormal=null,this.sliceViewUp=null,this.slicePlaneXRotation=null,this.slicePlaneYRotation=null,this.viewRotation=null,this._sliceThickness=null,this._blendMode=null,this.window=null,this._cachedSlicePlane=null,this._cachedSliceViewUp=null,this._genericRenderWindow.delete()}}class BS{constructor(e){this.VERBOSE=!1,this.syncWindowLevels=!0,this._activeTool=null,this.elements=e,this.volume=null,this.sliceIntersection=[0,0,0],this.mprViews={},this.initMPR()}set wwwl([e,t]){const n=t-e/2,r=t+e/2;this.volume.getProperty().getRGBTransferFunction(0).setMappingRange(n,r),Object.keys(this.elements).forEach((n,r)=>{this.mprViews[n].wwwl=[e,t]})}initMPR(){Object.keys(this.elements).forEach((e,t)=>{try{this.mprViews[e]=new NS(e,t,this.elements[e].element)}catch(t){console.error("Error creating MPRView",e),console.error(t)}}),this.VERBOSE&&console.log("initialized")}getInitialState(){let e=Object.keys(this.mprViews).reduce((e,t)=>{let{slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,_sliceThickness:s,_blendMode:l,window:c}=e[t];return e[t]={slicePlaneNormal:n,sliceViewUp:r,slicePlaneXRotation:a,slicePlaneYRotation:o,viewRotation:i,sliceThickness:s,blendMode:l,window:c},e},Object.assign({},this.mprViews));return{interactorCenters:Object.keys(this.elements).reduce((e,t)=>({...e,[t]:[0,0]}),{}),sliceIntersection:[...this.sliceIntersection],views:e}}setImage(e,t){let n=Ys(t);this.volume=n,this.sliceIntersection=function(e){const t=e.getBounds();return[(t[0]+t[1])/2,(t[2]+t[3])/2,(t[4]+t[5])/2]}(n.getMapper()),e.sliceIntersection=[...this.sliceIntersection],Object.keys(this.elements).forEach(t=>{this.mprViews[t].initView(n,e,()=>{this.onScrolled.call(this,e)},()=>{this.onScrolled.call(this,e)})}),this._activeTool&&this.setTool(this._activeTool,e)}setTool(e,t){switch(e){case"level":this.setLevelTool(t);break;case"crosshair":this.setCrosshairTool(t);break;case"zoom":this.setZoomTool(t);break;case"pan":this.setPanTool(t)}}setPanTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"pan"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnPanChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="pan"}setZoomTool(e){Object.entries(e.views).forEach(([t])=>{const n=DS.newInstance({leftButtonTool:"zoom"});n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnZoomChanged(()=>{this.updateInteractorCenters(e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="zoom"}setLevelTool(e){Object.entries(e.views).forEach(([t])=>{const n=TS.newInstance();n.setOnScroll(()=>{this.onScrolled(e)}),n.setOnLevelsChanged(n=>{this.updateLevels({...n,srcKey:t},e)}),this.mprViews[t].setInteractor(n)}),this._activeTool="level"}setCrosshairTool(e){let t=this;Object.entries(e.views).forEach(([n])=>{const r=OS.newInstance();r.setOnScroll(()=>{t.onScrolled(e)}),r.setOnClickCallback(({worldPos:r})=>{t.onCrosshairPointSelected({worldPos:r,srcKey:n},e)}),this.mprViews[n].setInteractor(r)}),this._activeTool="crosshair"}onCrosshairPointSelected({srcKey:e,worldPos:t},n){Object.keys(this.elements).forEach(r=>{if(r!==e){const e=this.mprViews[r]._genericRenderWindow.getRenderWindow(),n=e.getInteractor().getInteractorStyle(),a=n.getSliceNormal(),o=wb.buildFromDegree().identity().rotateFromDirections(a,[1,0,0]),i=t.slice();o.apply(i);const s=i[0];n.setSlice(s),e.render()}this.updateInteractorCenters(n)}),this.sliceIntersection=[...t],n.sliceIntersection=[...t]}updateLevels({windowCenter:e,windowWidth:t,srcKey:n},r){r.views[n].window.center=e,r.views[n].window.width=t,this.syncWindowLevels&&Object.keys(this.elements).filter(e=>e!==n).forEach(n=>{this.mprViews[n].wwwl=[t,e]})}onScrolled(e){let t=[];Object.keys(this.elements).forEach(e=>{const n=this.mprViews[e].camera;t.push({position:n.getFocalPoint(),normal:n.getDirectionOfProjection()})});const n=qs(...t);return Number.isNaN(n)||n.some(e=>Number.isNaN(e))||(this.sliceIntersection=[...n],e.sliceIntersection=[...n],this.VERBOSE&&console.log("updating slice intersection",n)),this.updateInteractorCenters(e),n}onRotate(e,t,n,r){switch(e){case"top":"x"===t?r.views.front.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneYRotation=n);break;case"left":"x"===t?r.views.top.slicePlaneXRotation=n:"y"===t&&(r.views.front.slicePlaneXRotation=n);break;case"front":"x"===t?r.views.top.slicePlaneYRotation=n:"y"===t&&(r.views.left.slicePlaneXRotation=n)}Object.keys(this.elements).filter(t=>t!==e).forEach(e=>{this.mprViews[e].updateSlicePlane(r.views[e])}),this.VERBOSE&&console.log("afterOnRotate",r)}onThickness(e,t,n,r){const a=n>1;let o;switch(e){case"top":"x"===t?o="front":"y"===t&&(o="left");break;case"left":"x"===t?o="top":"y"===t&&(o="front");break;case"front":"x"===t?o="top":"y"===t&&(o="left")}a&&"none"===this.mprViews[o].blendMode&&(this.mprViews[o].blendMode="MIP",r.mprViews[o].blendMode="MIP"),this.mprViews[o].sliceThickness=n,r.views[o].sliceThickness=n}updateInteractorCenters(e){Object.keys(this.elements).forEach(t=>{const n=this.mprViews[t]._genericRenderWindow.getRenderer(),r=aS.newInstance();r.setCoordinateSystemToWorld(),r.setValue(...this.sliceIntersection);const a=r.getComputedDisplayValue(n);this.VERBOSE&&console.log("interactor center",t,a),e.interactorCenters[t]=a})}resize(e,t){t?this.mprViews[t].onResize():Object.values(this.mprViews).forEach(e=>{e.onResize()}),this.updateInteractorCenters(e)}destroy(){Object.keys(this.elements).forEach(e=>{this.mprViews[e].destroy()})}}n.d(t,"MPRManager",function(){return BS}),n.d(t,"VRView",function(){return cS}),n.d(t,"loadDemoSerieWithLarvitar",function(){return Ks}),n.d(t,"buildVtkVolume",function(){return zs}),console.groupCollapsed("%c** dtk **","background: #0aa658; color: #000000; line-height: 1.6"),console.log(`Version ${c.a}`),console.log("Detected graphic card:"),console.log(function(){const e=document.createElement("canvas").getContext("webgl");if(!e)return{error:"no webgl"};const t=e.getExtension("WEBGL_debug_renderer_info");return t?{vendor:e.getParameter(t.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:{error:"no WEBGL_debug_renderer_info"}}()),console.groupEnd("dtk")}])}); \ No newline at end of file