@luma.gl/engine 8.5.12 → 8.5.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.js +54 -54
- package/dist/dist.min.js +1 -1
- package/package.json +6 -6
package/dist/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return 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 i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));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=28)}([function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function r(t){return e.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(t)}e.exports=r},function(e,t,r){var n=r(26);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},function(e,t,r){var n=r(7),i=r(8);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}},function(e,t,r){var n=r(31),i=r(32),a=r(25),o=r(33);e.exports=function(e){return n(e)||i(e)||a(e)||o()}},function(e,t){function r(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=r=function(e){return typeof e}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(t)}e.exports=r},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,r){var n=r(36),i=r(37),a=r(25),o=r(38);e.exports=function(e,t){return n(e)||i(e,t)||a(e,t)||o()}},,function(e,t,r){"use strict";(function(e,n){r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return s}));var i=r(7),a={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:void 0!==e&&e,document:"undefined"!=typeof document&&document,process:"object"===(void 0===n?"undefined":r.n(i)()(n))&&n},o=a.window||a.self||a.global,s=a.process||{};console}).call(this,r(34),r(12))},function(e,t){var r,n,i=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var e=s(h);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f<t;)u&&u[f].run();f=-1,t=c.length}u=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function v(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new v(e,t)),1!==c.length||l||s(d)},v.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t,r){var n=r(40);function i(t,r,a){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=i=Reflect.get:e.exports=i=function(e,t,r){var i=n(e,t);if(i){var a=Object.getOwnPropertyDescriptor(i,t);return a.get?a.get.call(r):a.value}},i(t,r,a||t)}e.exports=i},function(e,t,r){e.exports=r(30)},function(e,t,r){"use strict";(function(e){function n(){var t;if("undefined"!=typeof window&&window.performance)t=window.performance.now();else if(void 0!==e&&e.hrtime){var r=e.hrtime();t=1e3*r[0]+r[1]/1e6}else t=Date.now();return t}r.d(t,"a",(function(){return n}))}).call(this,r(12))},,function(e,t){function r(e,t,r,n,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(i,a){var o=e.apply(t,n);function s(e){r(o,i,a,s,u,"next",e)}function u(e){r(o,i,a,s,u,"throw",e)}s(void 0)}))}}},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return o}));var n=r(7),i=r.n(n),a=r(19);function o(){return!("object"===(void 0===e?"undefined":i()(e))&&"[object process]"===String(e)&&!e.browser)||Object(a.a)()}}).call(this,r(12))},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return a}));var n=r(7),i=r.n(n);function a(t){if("undefined"!=typeof window&&"object"===i()(window.process)&&"renderer"===window.process.type)return!0;if(void 0!==e&&"object"===i()(e.versions)&&Boolean(e.versions.electron))return!0;var r="object"===("undefined"==typeof navigator?"undefined":i()(navigator))&&"string"==typeof navigator.userAgent&&navigator.userAgent,n=t||r;return!!(n&&n.indexOf("Electron")>=0)}}).call(this,r(12))},function(e,t,r){var n=r(26),i=r(39);function a(t,r,o){return i()?e.exports=a=Reflect.construct:e.exports=a=function(e,t,r){var i=[null];i.push.apply(i,t);var a=new(Function.bind.apply(e,i));return r&&n(a,r.prototype),a},a.apply(null,arguments)}e.exports=a},,,,function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}},function(e,t,r){var n=r(24);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}},function(e,t){function r(t,n){return e.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(t,n)}e.exports=r},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return a}));var n=r(7),i=r.n(n);function a(t){if("undefined"!=typeof window&&"object"===i()(window.process)&&"renderer"===window.process.type)return!0;if(void 0!==e&&"object"===i()(e.versions)&&Boolean(e.versions.electron))return!0;var r="object"===("undefined"==typeof navigator?"undefined":i()(navigator))&&"string"==typeof navigator.userAgent&&navigator.userAgent,n=t||r;return!!(n&&n.indexOf("Electron")>=0)}}).call(this,r(12))},function(e,t,r){var n=r(41);globalThis.luma=globalThis.luma||{},e.exports=Object.assign(globalThis.luma,n)},,function(e,t,r){var n=function(e){"use strict";var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",o=n.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof f?t:f,a=Object.create(i.prototype),o=new A(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=_(o,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var l={};function f(){}function h(){}function d(){}var v={};v[i]=function(){return this};var g=Object.getPrototypeOf,y=g&&g(g(k([])));y&&y!==t&&r.call(y,i)&&(v=y);var m=d.prototype=f.prototype=Object.create(v);function p(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(i,a){function o(){return new t((function(n,o){!function n(i,a,o,s){var u=c(e[i],e,a);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(f).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,s)}))}s(u.arg)}(i,a,n,o)}))}return n=n?n.then(o,o):o()}}function _(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,_(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,l;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function k(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:T}}function T(){return{value:void 0,done:!0}}return h.prototype=m.constructor=d,d.constructor=h,h.displayName=s(d,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,s(e,o,"GeneratorFunction")),e.prototype=Object.create(m),e},e.awrap=function(e){return{__await:e}},p(b.prototype),b.prototype[a]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,i,a){void 0===a&&(a=Promise);var o=new b(u(t,r,n,i),a);return e.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},p(m),s(m,o,"Generator"),m[i]=function(){return this},m.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=k,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return o.type="throw",o.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),w(r),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;w(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}},function(e,t,r){var n=r(24);e.exports=function(e){if(Array.isArray(e))return n(e)}},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},function(e,t){e.exports=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(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t){},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw a}}return r}}},function(e,t){e.exports=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(e,t){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},function(e,t,r){var n=r(3);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e}},function(e,t,r){"use strict";r.r(t),r.d(t,"AnimationLoop",(function(){return Zr})),r.d(t,"Model",(function(){return ca})),r.d(t,"ProgramManager",(function(){return Ri})),r.d(t,"Transform",(function(){return Pa})),r.d(t,"Geometry",(function(){return Ra})),r.d(t,"ConeGeometry",(function(){return Va})),r.d(t,"CubeGeometry",(function(){return Ka})),r.d(t,"CylinderGeometry",(function(){return to})),r.d(t,"IcoSphereGeometry",(function(){return Eo})),r.d(t,"PlaneGeometry",(function(){return Lo})),r.d(t,"SphereGeometry",(function(){return jo})),r.d(t,"TruncatedConeGeometry",(function(){return Ba})),r.d(t,"Timeline",(function(){return Vo})),r.d(t,"KeyFrames",(function(){return Go})),r.d(t,"ClipSpace",(function(){return Xo}));var n=r(7),i=r.n(n),a=r(14),o=r.n(a),s=r(17),u=r.n(s),c=r(2),l=r.n(c),f=r(1),h=r.n(f),d=r(6),v=r.n(d),g=r(0),y=r.n(g),m=r(18),p=Object(m.a)();function b(e){try{var t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch(e){return null}}var _=function(){function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";l()(this,e),this.storage=b(n),this.id=t,this.config={},Object.assign(this.config,r),this._loadConfiguration()}return h()(e,[{key:"getConfiguration",value:function(){return this.config}},{key:"setConfiguration",value:function(e){return this.config={},this.updateConfiguration(e)}},{key:"updateConfiguration",value:function(e){if(Object.assign(this.config,e),this.storage){var t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}return this}},{key:"_loadConfiguration",value:function(){var e={};if(this.storage){var t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}]),e}();function x(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600,i=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));var a=e.width*r,o=e.height*r,s=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(a/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(i,");"),"background-size:".concat(a,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),s]}var w={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function A(e){return"string"==typeof e?w[e.toUpperCase()]||w.WHITE:e}function k(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return T(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return T(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function E(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"],n=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(n),a=k(i);try{var o=function(){var n=t.value;"function"==typeof e[n]&&(r.find((function(e){return n===e}))||(e[n]=e[n].bind(e)))};for(a.s();!(t=a.n()).done;)o()}catch(e){a.e(e)}finally{a.f()}}function O(e,t){if(!e)throw new Error(t||"Assertion failed")}var S=r(11);function P(){var e;if(p&&S.b.performance)e=S.b.performance.now();else if(S.a.hrtime){var t=S.a.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}var I={debug:p&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},L={enabled:!0,level:0};function R(){}var M={},D={once:!0};function F(e){for(var t in e)for(var r in e[t])return r||"untitled";return"empty"}var j=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""},r=t.id;l()(this,e),this.id=r,this.VERSION="8.5.11",this._startTs=P(),this._deltaTs=P(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new _("__probe-".concat(this.id,"__"),L),this.userData={},this.timeStamp("".concat(this.id," started")),E(this),Object.seal(this)}return h()(e,[{key:"isEnabled",value:function(){return this._storage.config.enabled}},{key:"getLevel",value:function(){return this._storage.config.level}},{key:"getTotal",value:function(){return Number((P()-this._startTs).toPrecision(10))}},{key:"getDelta",value:function(){return Number((P()-this._deltaTs).toPrecision(10))}},{key:"getPriority",value:function(){return this.level}},{key:"enable",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}},{key:"setLevel",value:function(e){return this._storage.updateConfiguration({level:e}),this}},{key:"assert",value:function(e,t){O(e,t)}},{key:"warn",value:function(e){return this._getLogFunction(0,e,I.warn,arguments,D)}},{key:"error",value:function(e){return this._getLogFunction(0,e,I.error,arguments)}},{key:"deprecated",value:function(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}},{key:"removed",value:function(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}},{key:"probe",value:function(e,t){return this._getLogFunction(e,t,I.log,arguments,{time:!0,once:!0})}},{key:"log",value:function(e,t){return this._getLogFunction(e,t,I.debug,arguments)}},{key:"info",value:function(e,t){return this._getLogFunction(e,t,console.info,arguments)}},{key:"once",value:function(e,t){return this._getLogFunction(e,t,I.debug||I.info,arguments,D)}},{key:"table",value:function(e,t,r){return t?this._getLogFunction(e,t,console.table||R,r&&[r],{tag:F(t)}):R}},{key:"image",value:function(e){var t=e.logLevel,n=e.priority,i=e.image,a=e.message,o=void 0===a?"":a,s=e.scale,u=void 0===s?1:s;return this._shouldLog(t||n)?p?function(e){var t=e.image,r=e.message,n=void 0===r?"":r,i=e.scale,a=void 0===i?1:i;if("string"==typeof t){var o=new Image;return o.onload=function(){var e,t=x(o,n,a);(e=console).log.apply(e,v()(t))},o.src=t,R}var s=t.nodeName||"";if("img"===s.toLowerCase()){var u;return(u=console).log.apply(u,v()(x(t,n,a))),R}if("canvas"===s.toLowerCase()){var c=new Image;return c.onload=function(){var e;return(e=console).log.apply(e,v()(x(c,n,a)))},c.src=t.toDataURL(),R}return R}({image:i,message:o,scale:u}):function(e){var t=e.image,n=(e.message,e.scale),i=void 0===n?1:n,a=null;try{a=r(35)}catch(e){}if(a)return function(){return a(t,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((function(e){return console.log(e)}))};return R}({image:i,message:o,scale:u}):R}},{key:"settings",value:function(){console.table?console.table(this._storage.config):console.log(this._storage.config)}},{key:"get",value:function(e){return this._storage.config[e]}},{key:"set",value:function(e,t){this._storage.updateConfiguration(y()({},e,t))}},{key:"time",value:function(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}},{key:"timeEnd",value:function(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}},{key:"timeStamp",value:function(e,t){return this._getLogFunction(e,t,console.timeStamp||R)}},{key:"group",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1},n=r=C({logLevel:e,message:t,opts:r}),i=n.collapsed;return r.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(r)}},{key:"groupCollapsed",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},r,{collapsed:!0}))}},{key:"groupEnd",value:function(e){return this._getLogFunction(e,"",console.groupEnd||R)}},{key:"withGroup",value:function(e,t,r){this.group(e,t)();try{r()}finally{this.groupEnd(e)()}}},{key:"trace",value:function(){console.trace&&console.trace()}},{key:"_shouldLog",value:function(e){return this.isEnabled()&&this.getLevel()>=B(e)}},{key:"_getLogFunction",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4?arguments[4]:void 0;if(this._shouldLog(e)){var a;i=C({logLevel:e,message:t,args:n,opts:i}),O(r=r||i.method),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=P();var o=i.tag||i.message;if(i.once){if(M[o])return R;M[o]=P()}return t=N(this.id,i.message,i),(a=r).bind.apply(a,[console,t].concat(v()(i.args)))}return R}},{key:"level",set:function(e){this.setLevel(e)},get:function(){return this.getLevel()}},{key:"priority",set:function(e){this.level=e},get:function(){return this.level}}]),e}();function B(e){if(!e)return 0;var t;switch(i()(e)){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return O(Number.isFinite(t)&&t>=0),t}function C(e){var t=e.logLevel,r=e.message;e.logLevel=B(t);for(var n=e.args?Array.from(e.args):[];n.length&&n.shift()!==r;);switch(e.args=n,i()(t)){case"string":case"function":void 0!==r&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());var a=i()(e.message);return O("string"===a||"object"===a),Object.assign(e,e.opts)}function N(e,t,r){if("string"==typeof t){var n=r.time?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}((s=r.total)<10?"".concat(s.toFixed(2),"ms"):s<100?"".concat(s.toFixed(1),"ms"):s<1e3?"".concat(s.toFixed(0),"ms"):"".concat((s/1e3).toFixed(2),"s")):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),i=t,a=r.color,o=r.background,p||"string"!=typeof i||(a&&(a=A(a),i="[".concat(a,"m").concat(i,"[39m")),o&&(a=A(o),i="[".concat(o+10,"m").concat(i,"[49m"))),t=i}var i,a,o,s;return t}j.VERSION="8.5.11";var U=new j({id:"luma.gl"});function z(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}function V(e){return"undefined"!=typeof WebGLRenderingContext&&e instanceof WebGLRenderingContext||("undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&Number.isFinite(e._version)))}function G(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}function H(e){return z(V(e),"Invalid WebGLRenderingContext"),e}function W(e){return z(G(e),"Requires WebGL2"),e}var X={};function q(e,t){var r;X[e]=!0,void 0!==t&&(r=t,globalThis.console&&globalThis.console.error&&globalThis.console.error(r))}var Q=function e(t){var r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(var n=0;n<this.attribs.length;n++){var i=new e.VertexAttrib(r);this.attribs[n]=i}this.maxAttrib=0};(Q.VertexAttrib=function(e){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()}).prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var $,Y=function(e){var t=this;this.gl=e,function(e){var t=e.getError;e.getError=function(){var r;do{0!==(r=t.apply(e))&&(X[r]=!0)}while(0!==r);for(r in X)if(X[r])return delete X[r],parseInt(r,10);return 0}}(e);var r=this.original={getParameter:e.getParameter,enableVertexAttribArray:e.enableVertexAttribArray,disableVertexAttribArray:e.disableVertexAttribArray,bindBuffer:e.bindBuffer,getVertexAttrib:e.getVertexAttrib,vertexAttribPointer:e.vertexAttribPointer};e.getParameter=function(e){return e===t.VERTEX_ARRAY_BINDING_OES?t.currentVertexArrayObject===t.defaultVertexArrayObject?null:t.currentVertexArrayObject:r.getParameter.apply(this,arguments)},e.enableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var i=n.attribs[e];return i.enabled=!0,r.enableVertexAttribArray.apply(this,arguments)},e.disableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var i=n.attribs[e];return i.enabled=!1,r.disableVertexAttribArray.apply(this,arguments)},e.bindBuffer=function(e,n){switch(e){case 34962:t.currentArrayBuffer=n;break;case 34963:t.currentVertexArrayObject.elementArrayBuffer=n}return r.bindBuffer.apply(this,arguments)},e.getVertexAttrib=function(e,n){var i=t.currentVertexArrayObject,a=i.attribs[e];switch(n){case 34975:return a.buffer;case 34338:return a.enabled;case 34339:return a.size;case 34340:return a.stride;case 34341:return a.type;case 34922:return a.normalized;default:return r.getVertexAttrib.apply(this,arguments)}},e.vertexAttribPointer=function(e,n,i,a,o,s){var u=t.currentVertexArrayObject;u.maxAttrib=Math.max(u.maxAttrib,e);var c=u.attribs[e];return c.buffer=t.currentArrayBuffer,c.size=n,c.type=i,c.normalized=a,c.stride=o,c.offset=s,c.recache(),r.vertexAttribPointer.apply(this,arguments)},e.instrumentExtension&&e.instrumentExtension(this,"OES_vertex_array_object"),e.canvas&&e.canvas.addEventListener("webglcontextrestored",(function(){var e;e="OESVertexArrayObject emulation library context restored",globalThis.console&&globalThis.console.log&&globalThis.console.log(e),t.reset_()}),!0),this.reset_()};Y.prototype.VERTEX_ARRAY_BINDING_OES=34229,Y.prototype.reset_=function(){if(void 0!==this.vertexArrayObjects)for(var e=0;e<this.vertexArrayObjects.length;++e)this.vertexArrayObjects.isAlive=!1;var t=this.gl;this.maxVertexAttribs=t.getParameter(34921),this.defaultVertexArrayObject=new Q(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)},Y.prototype.createVertexArrayOES=function(){var e=new Q(this);return this.vertexArrayObjects.push(e),e},Y.prototype.deleteVertexArrayOES=function(e){e.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(e),1),this.currentVertexArrayObject===e&&this.bindVertexArrayOES(null)},Y.prototype.isVertexArrayOES=function(e){return!!(e&&e instanceof Q&&e.hasBeenBound&&e.ext===this)},Y.prototype.bindVertexArrayOES=function(e){var t=this.gl;if(!e||e.isAlive){var r=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=e||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;var i=this.currentVertexArrayObject;if(n!==i){n&&i.elementArrayBuffer===n.elementArrayBuffer||r.bindBuffer.call(t,34963,i.elementArrayBuffer);for(var a=this.currentArrayBuffer,o=Math.max(n?n.maxAttrib:0,i.maxAttrib),s=0;s<=o;s++){var u=i.attribs[s],c=n?n.attribs[s]:null;if(n&&u.enabled===c.enabled||(u.enabled?r.enableVertexAttribArray.call(t,s):r.disableVertexAttribArray.call(t,s)),u.enabled){var l=!1;n&&u.buffer===c.buffer||(a!==u.buffer&&(r.bindBuffer.call(t,34962,u.buffer),a=u.buffer),l=!0),(l||u.cached!==c.cached)&&r.vertexAttribPointer.call(t,s,u.size,u.type,u.normalized,u.stride,u.offset)}}this.currentArrayBuffer!==a&&r.bindBuffer.call(t,34962,this.currentArrayBuffer)}}else q(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject")};var K,J=function(e){return G(e)?void 0:0},Z=($={},y()($,3074,(function(e){return G(e)?void 0:36064})),y()($,35723,(function(e){return G(e)?void 0:4352})),y()($,35977,J),y()($,32937,J),y()($,36795,(function(e,t){var r=G(e)?e.getExtension("EXT_disjoint_timer_query_webgl2"):e.getExtension("EXT_disjoint_timer_query");return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0})),y()($,37445,(function(e,t){var r=e.getExtension("WEBGL_debug_renderer_info");return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)})),y()($,37446,(function(e,t){var r=e.getExtension("WEBGL_debug_renderer_info");return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)})),y()($,34047,(function(e,t){var r=e.luma.extensions.EXT_texture_filter_anisotropic;return r?t(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1})),y()($,32883,J),y()($,35071,J),y()($,37447,J),y()($,36063,(function(e,t){if(!G(e)){var r=e.getExtension("WEBGL_draw_buffers");return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}})),y()($,35379,J),y()($,35374,J),y()($,35377,J),y()($,34852,(function(e){if(!G(e)){var t=e.getExtension("WEBGL_draw_buffers");return t?t.MAX_DRAW_BUFFERS_WEBGL:0}})),y()($,36203,(function(e){return e.getExtension("OES_element_index")?2147483647:65535})),y()($,33001,(function(e){return e.getExtension("OES_element_index")?16777216:65535})),y()($,33e3,(function(e){return 16777216})),y()($,37157,J),y()($,35373,J),y()($,35657,J),y()($,36183,J),y()($,37137,J),y()($,34045,J),y()($,35978,J),y()($,35979,J),y()($,35968,J),y()($,35376,J),y()($,35375,J),y()($,35659,J),y()($,37154,J),y()($,35371,J),y()($,35658,J),y()($,35076,J),y()($,35077,J),y()($,35380,J),$);var ee=(K={},y()(K,"OES_vertex_array_object",{meta:{suffix:"OES"},createVertexArray:function(){z(!1,"VertexArray requires WebGL2 or OES_vertex_array_object extension")},deleteVertexArray:function(){},bindVertexArray:function(){},isVertexArray:function(){return!1}}),y()(K,"ANGLE_instanced_arrays",{meta:{suffix:"ANGLE"},vertexAttribDivisor:function(e,t){z(0===t,"WebGL instanced rendering not supported")},drawElementsInstanced:function(){},drawArraysInstanced:function(){}}),y()(K,"WEBGL_draw_buffers",{meta:{suffix:"WEBGL"},drawBuffers:function(){z(!1)}}),y()(K,"EXT_disjoint_timer_query",{meta:{suffix:"EXT"},createQuery:function(){z(!1)},deleteQuery:function(){z(!1)},beginQuery:function(){z(!1)},endQuery:function(){},getQuery:function(e,t){return this.getQueryObject(e,t)},getQueryParameter:function(e,t){return this.getQueryObject(e,t)},getQueryObject:function(){}}),K),te={readBuffer:function(e,t,r){G(e)&&t(r)},getVertexAttrib:function(e,t,r,n){var i,a=function(e,t){return{webgl2:G(e),ext:e.getExtension(t)}}(e,"ANGLE_instanced_arrays"),o=a.webgl2,s=a.ext;switch(n){case 35069:i=!!o&&void 0;break;case 35070:i=o||s?void 0:0}return void 0!==i?i:t(r,n)},getProgramParameter:function(e,t,r,n){if(!G(e))switch(n){case 35967:return 35981;case 35971:case 35382:return 0}return t(r,n)},getInternalformatParameter:function(e,t,r,n,i){if(!G(e))switch(i){case 32937:return new Int32Array([0])}return e.getInternalformatParameter(r,n,i)},getTexParameter:function(e,t,r,n){switch(n){case 34046:var i=e.luma.extensions.EXT_texture_filter_anisotropic;n=i&&i.TEXTURE_MAX_ANISOTROPY_EXT||34046}return t(r,n)},getParameter:function(e,t,r){var n=Z[r],i="function"==typeof n?n(e,t,r):n;return void 0!==i?i:t(r)},hint:function(e,t,r,n){return t(r,n)}};function re(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ne(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ne(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ie(e,t){var r=t.extension,n=t.target,i=t.target2,a=ee[r];z(a);for(var o=a.meta,s=(void 0===o?{}:o).suffix,u=void 0===s?"":s,c=e.getExtension(r),l=function(){var t=h[f],r="".concat(t).concat(u),o=null;"meta"===t||"function"==typeof e[t]||(c&&"function"==typeof c[r]?o=function(){return c[r].apply(c,arguments)}:"function"==typeof a[t]&&(o=a[t].bind(n))),o&&(n[t]=o,i[t]=o)},f=0,h=Object.keys(a);f<h.length;f++)l()}globalThis.polyfillContext=function(e){e.luma=e.luma||{};var t=e.luma;return t.polyfilled||(!function(e){if("function"!=typeof e.createVertexArray){var t=e.getSupportedExtensions;e.getSupportedExtensions=function(){var e=t.call(this)||[];return e.indexOf("OES_vertex_array_object")<0&&e.push("OES_vertex_array_object"),e};var r=e.getExtension;e.getExtension=function(t){var n=r.call(this,t);return n||("OES_vertex_array_object"!==t?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Y(this)),this.__OESVertexArrayObject))}}}(e),function(e){e.luma.extensions={};var t,r=re(e.getSupportedExtensions()||[]);try{for(r.s();!(t=r.n()).done;){var n=t.value;e.luma[n]=e.getExtension(n)}}catch(e){r.e(e)}finally{r.f()}}(e),function(e,t){var r,n=re(Object.getOwnPropertyNames(t));try{for(n.s();!(r=n.n()).done;){var i=r.value;"overrides"!==i&&ie(e,{extension:i,target:e.luma,target2:e})}}catch(e){n.e(e)}finally{n.f()}}(e,ee),function(e,t){var r=t.target,n=t.target2;Object.keys(te).forEach((function(t){if("function"==typeof te[t]){var i=e[t]?e[t].bind(e):function(){},a=te[t].bind(null,e,i);r[t]=a,n[t]=a}}))}(e,{target:t,target2:e}),t.polyfilled=!0),e};var ae,oe,se,ue=r(9),ce=r.n(ue),le=(ae={},y()(ae,3042,!1),y()(ae,32773,new Float32Array([0,0,0,0])),y()(ae,32777,32774),y()(ae,34877,32774),y()(ae,32969,1),y()(ae,32968,0),y()(ae,32971,1),y()(ae,32970,0),y()(ae,3106,new Float32Array([0,0,0,0])),y()(ae,3107,[!0,!0,!0,!0]),y()(ae,2884,!1),y()(ae,2885,1029),y()(ae,2929,!1),y()(ae,2931,1),y()(ae,2932,513),y()(ae,2928,new Float32Array([0,1])),y()(ae,2930,!0),y()(ae,3024,!0),y()(ae,36006,null),y()(ae,2886,2305),y()(ae,33170,4352),y()(ae,2849,1),y()(ae,32823,!1),y()(ae,32824,0),y()(ae,10752,0),y()(ae,32938,1),y()(ae,32939,!1),y()(ae,3089,!1),y()(ae,3088,new Int32Array([0,0,1024,1024])),y()(ae,2960,!1),y()(ae,2961,0),y()(ae,2968,4294967295),y()(ae,36005,4294967295),y()(ae,2962,519),y()(ae,2967,0),y()(ae,2963,4294967295),y()(ae,34816,519),y()(ae,36003,0),y()(ae,36004,4294967295),y()(ae,2964,7680),y()(ae,2965,7680),y()(ae,2966,7680),y()(ae,34817,7680),y()(ae,34818,7680),y()(ae,34819,7680),y()(ae,2978,[0,0,1024,1024]),y()(ae,3333,4),y()(ae,3317,4),y()(ae,37440,!1),y()(ae,37441,!1),y()(ae,37443,37444),y()(ae,35723,4352),y()(ae,36010,null),y()(ae,35977,!1),y()(ae,3330,0),y()(ae,3332,0),y()(ae,3331,0),y()(ae,3314,0),y()(ae,32878,0),y()(ae,3316,0),y()(ae,3315,0),y()(ae,32877,0),ae),fe=function(e,t,r){return t?e.enable(r):e.disable(r)},he=function(e,t,r){return e.hint(r,t)},de=function(e,t,r){return e.pixelStorei(r,t)};function ve(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var ge=(oe={},y()(oe,3042,fe),y()(oe,32773,(function(e,t){return e.blendColor.apply(e,v()(t))})),y()(oe,32777,"blendEquation"),y()(oe,34877,"blendEquation"),y()(oe,32969,"blendFunc"),y()(oe,32968,"blendFunc"),y()(oe,32971,"blendFunc"),y()(oe,32970,"blendFunc"),y()(oe,3106,(function(e,t){return e.clearColor.apply(e,v()(t))})),y()(oe,3107,(function(e,t){return e.colorMask.apply(e,v()(t))})),y()(oe,2884,fe),y()(oe,2885,(function(e,t){return e.cullFace(t)})),y()(oe,2929,fe),y()(oe,2931,(function(e,t){return e.clearDepth(t)})),y()(oe,2932,(function(e,t){return e.depthFunc(t)})),y()(oe,2928,(function(e,t){return e.depthRange.apply(e,v()(t))})),y()(oe,2930,(function(e,t){return e.depthMask(t)})),y()(oe,3024,fe),y()(oe,35723,he),y()(oe,36006,(function(e,t){var r=G(e)?36009:36160;return e.bindFramebuffer(r,t)})),y()(oe,2886,(function(e,t){return e.frontFace(t)})),y()(oe,33170,he),y()(oe,2849,(function(e,t){return e.lineWidth(t)})),y()(oe,32823,fe),y()(oe,32824,"polygonOffset"),y()(oe,10752,"polygonOffset"),y()(oe,35977,fe),y()(oe,32938,"sampleCoverage"),y()(oe,32939,"sampleCoverage"),y()(oe,3089,fe),y()(oe,3088,(function(e,t){return e.scissor.apply(e,v()(t))})),y()(oe,2960,fe),y()(oe,2961,(function(e,t){return e.clearStencil(t)})),y()(oe,2968,(function(e,t){return e.stencilMaskSeparate(1028,t)})),y()(oe,36005,(function(e,t){return e.stencilMaskSeparate(1029,t)})),y()(oe,2962,"stencilFuncFront"),y()(oe,2967,"stencilFuncFront"),y()(oe,2963,"stencilFuncFront"),y()(oe,34816,"stencilFuncBack"),y()(oe,36003,"stencilFuncBack"),y()(oe,36004,"stencilFuncBack"),y()(oe,2964,"stencilOpFront"),y()(oe,2965,"stencilOpFront"),y()(oe,2966,"stencilOpFront"),y()(oe,34817,"stencilOpBack"),y()(oe,34818,"stencilOpBack"),y()(oe,34819,"stencilOpBack"),y()(oe,2978,(function(e,t){return e.viewport.apply(e,v()(t))})),y()(oe,3333,de),y()(oe,3317,de),y()(oe,37440,de),y()(oe,37441,de),y()(oe,37443,de),y()(oe,3330,de),y()(oe,3332,de),y()(oe,3331,de),y()(oe,36010,(function(e,t){return e.bindFramebuffer(36008,t)})),y()(oe,3314,de),y()(oe,32878,de),y()(oe,3316,de),y()(oe,3315,de),y()(oe,32877,de),y()(oe,"framebuffer",(function(e,t){var r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)})),y()(oe,"blend",(function(e,t){return t?e.enable(3042):e.disable(3042)})),y()(oe,"blendColor",(function(e,t){return e.blendColor.apply(e,v()(t))})),y()(oe,"blendEquation",(function(e,t){t=ve(t)?t:[t,t],e.blendEquationSeparate.apply(e,v()(t))})),y()(oe,"blendFunc",(function(e,t){t=ve(t)&&2===t.length?[].concat(v()(t),v()(t)):t,e.blendFuncSeparate.apply(e,v()(t))})),y()(oe,"clearColor",(function(e,t){return e.clearColor.apply(e,v()(t))})),y()(oe,"clearDepth",(function(e,t){return e.clearDepth(t)})),y()(oe,"clearStencil",(function(e,t){return e.clearStencil(t)})),y()(oe,"colorMask",(function(e,t){return e.colorMask.apply(e,v()(t))})),y()(oe,"cull",(function(e,t){return t?e.enable(2884):e.disable(2884)})),y()(oe,"cullFace",(function(e,t){return e.cullFace(t)})),y()(oe,"depthTest",(function(e,t){return t?e.enable(2929):e.disable(2929)})),y()(oe,"depthFunc",(function(e,t){return e.depthFunc(t)})),y()(oe,"depthMask",(function(e,t){return e.depthMask(t)})),y()(oe,"depthRange",(function(e,t){return e.depthRange.apply(e,v()(t))})),y()(oe,"dither",(function(e,t){return t?e.enable(3024):e.disable(3024)})),y()(oe,"derivativeHint",(function(e,t){e.hint(35723,t)})),y()(oe,"frontFace",(function(e,t){return e.frontFace(t)})),y()(oe,"mipmapHint",(function(e,t){return e.hint(33170,t)})),y()(oe,"lineWidth",(function(e,t){return e.lineWidth(t)})),y()(oe,"polygonOffsetFill",(function(e,t){return t?e.enable(32823):e.disable(32823)})),y()(oe,"polygonOffset",(function(e,t){return e.polygonOffset.apply(e,v()(t))})),y()(oe,"sampleCoverage",(function(e,t){return e.sampleCoverage.apply(e,v()(t))})),y()(oe,"scissorTest",(function(e,t){return t?e.enable(3089):e.disable(3089)})),y()(oe,"scissor",(function(e,t){return e.scissor.apply(e,v()(t))})),y()(oe,"stencilTest",(function(e,t){return t?e.enable(2960):e.disable(2960)})),y()(oe,"stencilMask",(function(e,t){var r=t=ve(t)?t:[t,t],n=ce()(r,2),i=n[0],a=n[1];e.stencilMaskSeparate(1028,i),e.stencilMaskSeparate(1029,a)})),y()(oe,"stencilFunc",(function(e,t){var r=t=ve(t)&&3===t.length?[].concat(v()(t),v()(t)):t,n=ce()(r,6),i=n[0],a=n[1],o=n[2],s=n[3],u=n[4],c=n[5];e.stencilFuncSeparate(1028,i,a,o),e.stencilFuncSeparate(1029,s,u,c)})),y()(oe,"stencilOp",(function(e,t){var r=t=ve(t)&&3===t.length?[].concat(v()(t),v()(t)):t,n=ce()(r,6),i=n[0],a=n[1],o=n[2],s=n[3],u=n[4],c=n[5];e.stencilOpSeparate(1028,i,a,o),e.stencilOpSeparate(1029,s,u,c)})),y()(oe,"viewport",(function(e,t){return e.viewport.apply(e,v()(t))})),oe);function ye(e,t,r){return void 0!==t[e]?t[e]:r[e]}var me={blendEquation:function(e,t,r){return e.blendEquationSeparate(ye(32777,t,r),ye(34877,t,r))},blendFunc:function(e,t,r){return e.blendFuncSeparate(ye(32969,t,r),ye(32968,t,r),ye(32971,t,r),ye(32970,t,r))},polygonOffset:function(e,t,r){return e.polygonOffset(ye(32824,t,r),ye(10752,t,r))},sampleCoverage:function(e,t,r){return e.sampleCoverage(ye(32938,t,r),ye(32939,t,r))},stencilFuncFront:function(e,t,r){return e.stencilFuncSeparate(1028,ye(2962,t,r),ye(2967,t,r),ye(2963,t,r))},stencilFuncBack:function(e,t,r){return e.stencilFuncSeparate(1029,ye(34816,t,r),ye(36003,t,r),ye(36004,t,r))},stencilOpFront:function(e,t,r){return e.stencilOpSeparate(1028,ye(2964,t,r),ye(2965,t,r),ye(2966,t,r))},stencilOpBack:function(e,t,r){return e.stencilOpSeparate(1029,ye(34817,t,r),ye(34818,t,r),ye(34819,t,r))}},pe={enable:function(e,t){return e(y()({},t,!0))},disable:function(e,t){return e(y()({},t,!1))},pixelStorei:function(e,t,r){return e(y()({},t,r))},hint:function(e,t,r){return e(y()({},t,r))},bindFramebuffer:function(e,t,r){var n;switch(t){case 36160:return e((n={},y()(n,36006,r),y()(n,36010,r),n));case 36009:return e(y()({},36006,r));case 36008:return e(y()({},36010,r));default:return null}},blendColor:function(e,t,r,n,i){return e(y()({},32773,new Float32Array([t,r,n,i])))},blendEquation:function(e,t){var r;return e((r={},y()(r,32777,t),y()(r,34877,t),r))},blendEquationSeparate:function(e,t,r){var n;return e((n={},y()(n,32777,t),y()(n,34877,r),n))},blendFunc:function(e,t,r){var n;return e((n={},y()(n,32969,t),y()(n,32968,r),y()(n,32971,t),y()(n,32970,r),n))},blendFuncSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,32969,t),y()(a,32968,r),y()(a,32971,n),y()(a,32970,i),a))},clearColor:function(e,t,r,n,i){return e(y()({},3106,new Float32Array([t,r,n,i])))},clearDepth:function(e,t){return e(y()({},2931,t))},clearStencil:function(e,t){return e(y()({},2961,t))},colorMask:function(e,t,r,n,i){return e(y()({},3107,[t,r,n,i]))},cullFace:function(e,t){return e(y()({},2885,t))},depthFunc:function(e,t){return e(y()({},2932,t))},depthRange:function(e,t,r){return e(y()({},2928,new Float32Array([t,r])))},depthMask:function(e,t){return e(y()({},2930,t))},frontFace:function(e,t){return e(y()({},2886,t))},lineWidth:function(e,t){return e(y()({},2849,t))},polygonOffset:function(e,t,r){var n;return e((n={},y()(n,32824,t),y()(n,10752,r),n))},sampleCoverage:function(e,t,r){var n;return e((n={},y()(n,32938,t),y()(n,32939,r),n))},scissor:function(e,t,r,n,i){return e(y()({},3088,new Int32Array([t,r,n,i])))},stencilMask:function(e,t){var r;return e((r={},y()(r,2968,t),y()(r,36005,t),r))},stencilMaskSeparate:function(e,t,r){return e(y()({},1028===t?2968:36005,r))},stencilFunc:function(e,t,r,n){var i;return e((i={},y()(i,2962,t),y()(i,2967,r),y()(i,2963,n),y()(i,34816,t),y()(i,36003,r),y()(i,36004,n),i))},stencilFuncSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,1028===t?2962:34816,r),y()(a,1028===t?2967:36003,n),y()(a,1028===t?2963:36004,i),a))},stencilOp:function(e,t,r,n){var i;return e((i={},y()(i,2964,t),y()(i,2965,r),y()(i,2966,n),y()(i,34817,t),y()(i,34818,r),y()(i,34819,n),i))},stencilOpSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,1028===t?2964:34817,r),y()(a,1028===t?2965:34818,n),y()(a,1028===t?2966:34819,i),a))},viewport:function(e,t,r,n,i){return e(y()({},2978,[t,r,n,i]))}},be=function(e,t){return e.isEnabled(t)},_e=(se={},y()(se,3042,be),y()(se,2884,be),y()(se,2929,be),y()(se,3024,be),y()(se,32823,be),y()(se,32926,be),y()(se,32928,be),y()(se,3089,be),y()(se,2960,be),y()(se,35977,be),se);function xe(e){for(var t in e)return!1;return!0}function we(e,t){if(e===t)return!0;var r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(var i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}return!1}function Ae(e,t){var r=e[t].bind(e);e[t]=function(){var t=arguments.length<=0?void 0:arguments[0];return t in e.state.cache&&e.state.enable?e.state.cache[t]:r.apply(void 0,arguments)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function ke(e,t,r){var n=e[t].bind(e);e[t]=function(){for(var t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];var o=r.apply(void 0,[e.state._updateCache].concat(i)),s=o.valueChanged,u=o.oldValue;return s&&n.apply(void 0,i),u},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}function Te(e){var t=e.useProgram.bind(e);e.useProgram=function(r){e.state.program!==r&&(t(r),e.state.program=r)}}var Ee=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.copyState,i=void 0!==n&&n,a=r.log,o=void 0===a?function(){}:a;l()(this,e),this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=i?Re(t):Object.assign({},le),this.log=o,this._updateCache=this._updateCache.bind(this),Object.seal(this)}return h()(e,[{key:"push",value:function(){this.stateStack.push({})}},{key:"pop",value:function(){z(this.stateStack.length>0);var e=this.stateStack[this.stateStack.length-1];Le(this.gl,e),this.stateStack.pop()}},{key:"_updateCache",value:function(e){var t,r=!1,n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(var i in e){z(void 0!==i);var a=e[i],o=this.cache[i];we(a,o)||(r=!0,t=o,n&&!(i in n)&&(n[i]=o),this.cache[i]=a)}return{valueChanged:r,oldValue:t}}}]),e}();function Oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.enable,n=void 0===r||r,i=t.copyState;if(z(void 0!==i),!e.state){var a=globalThis.polyfillContext;for(var o in a&&a(e),e.state=new Ee(e,{copyState:i}),Te(e),pe){var s=pe[o];ke(e,o,s)}Ae(e,"getParameter"),Ae(e,"isEnabled")}return e.state.enable=n,e}function Se(e){z(e.state),e.state.pop()}function Pe(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Ie(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ie(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Le(e,t){if(z(V(e),"setParameters requires a WebGL context"),!xe(t)){var r={};for(var n in t){var i=Number(n),a=ge[n];a&&("string"==typeof a?r[a]=!0:a(e,t[n],i))}var o=e.state&&e.state.cache;if(o)for(var s in r){(0,me[s])(e,t,o)}}}function Re(e,t){if("number"==typeof(t=t||le)){var r=t,n=_e[r];return n?n(e,r):e.getParameter(r)}var i,a={},o=Pe(Array.isArray(t)?t:Object.keys(t));try{for(o.s();!(i=o.n()).done;){var s=i.value,u=_e[s];a[s]=u?u(e,Number(s)):e.getParameter(Number(s))}}catch(e){o.e(e)}finally{o.f()}return a}function Me(e,t,r){if(xe(t))return r(e);var n,i=t.nocatch,a=void 0===i||i;if(function(e){e.state||Oe(e,{copyState:!1}),e.state.push()}(e),Le(e,t),a)n=r(e),Se(e);else try{n=r(e)}finally{Se(e)}return n}var De=r(44);function Fe(e){var t="undefined"==typeof window?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}var je=Object(De.a)(),Be=je&&"undefined"!=typeof document,Ce={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function Ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};z(je,"createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils");var t,r=e=Object.assign({},Ce,e),n=r.width,i=r.height;function a(t){if(e.throwOnError)throw new Error(t);return console.error(t),null}e.onError=a;var o=e,s=o.canvas,u=Ve({canvas:s,width:n,height:i,onError:a});return(t=ze(u,e))?(Ge(t=Ue(t,e)),t):null}function Ue(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||He(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var r=t=Object.assign({},Ce,t),n=r.manageState,i=r.debug;return n&&Oe(e,{copyState:!1,log:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return U.log.apply(U,[1].concat(t))()}}),je&&i&&(globalThis.makeDebugContext?(e=globalThis.makeDebugContext(e,t),U.level=Math.max(U.level,1)):U.warn('WebGL debug mode not activated. import "@luma.gl/debug" to enable.')()),e._instrumented=!0,e}function ze(e,t){var r=t.onError,n=null,i=function(e){return n=e.statusMessage||n};e.addEventListener("webglcontextcreationerror",i,!1);var a=t.webgl1,o=void 0===a||a,s=t.webgl2,u=void 0===s||s,c=null;return u&&(c=(c=c||e.getContext("webgl2",t))||e.getContext("experimental-webgl2",t)),o&&(c=(c=c||e.getContext("webgl",t))||e.getContext("experimental-webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),c?(t.onContextLost&&e.addEventListener("webglcontextlost",t.onContextLost,!1),t.onContextRestored&&e.addEventListener("webglcontextrestored",t.onContextRestored,!1),c):r("Failed to create ".concat(u&&!o?"WebGL2":"WebGL"," context: ").concat(n||"Unknown error"))}function Ve(e){var t,r=e.canvas,n=e.width,i=void 0===n?800:n,a=e.height,o=void 0===a?600:a,s=e.onError;"string"==typeof r?(Be&&"complete"===document.readyState||s("createGLContext called on canvas '".concat(r,"' before page was loaded")),t=document.getElementById(r)):r?t=r:((t=document.createElement("canvas")).id="lumagl-canvas",t.style.width=Number.isFinite(i)?"".concat(i,"px"):"100%",t.style.height=Number.isFinite(o)?"".concat(o,"px"):"100%",document.body.insertBefore(t,document.body.firstChild));return t}function Ge(e){var t=G(e)?"WebGL2":"WebGL1",r=function(e){var t=e.getParameter(7936),r=e.getParameter(7937),n=e.getExtension("WEBGL_debug_renderer_info");return{vendor:n&&e.getParameter(n.UNMASKED_VENDOR_WEBGL||7936)||t,renderer:n&&e.getParameter(n.UNMASKED_RENDERER_WEBGL||7937)||r,vendorMasked:t,rendererMasked:r,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e),n=r?"(".concat(r.vendor,",").concat(r.renderer,")"):"",i=e.debug?" debug":"";U.info(1,"".concat(t).concat(i," context ").concat(n))()}function He(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext?2:1}function We(e,t,r){var n="width"in r?r.width:e.canvas.clientWidth,i="height"in r?r.height:e.canvas.clientHeight;n&&i||(U.log(1,"Canvas clientWidth/clientHeight is 0")(),t=1,n=e.canvas.width||1,i=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var a=e.luma.canvasSizeInfo;if(a.clientWidth!==n||a.clientHeight!==i||a.devicePixelRatio!==t){var o=t,s=Math.floor(n*o),u=Math.floor(i*o);e.canvas.width=s,e.canvas.height=u,e.drawingBufferWidth===s&&e.drawingBufferHeight===u||(U.warn("Device pixel ratio clamped")(),o=Math.min(e.drawingBufferWidth/n,e.drawingBufferHeight/i),e.canvas.width=Math.floor(n*o),e.canvas.height=Math.floor(i*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:n,clientHeight:i,devicePixelRatio:t})}}var Xe=r(15),qe=function(){function e(t,r){l()(this,e),this.name=t,this.type=r,this.sampleSize=1,this.reset()}return h()(e,[{key:"setSampleSize",value:function(e){return this.sampleSize=e,this}},{key:"incrementCount",value:function(){return this.addCount(1),this}},{key:"decrementCount",value:function(){return this.subtractCount(1),this}},{key:"addCount",value:function(e){return this._count+=e,this._samples++,this._checkSampling(),this}},{key:"subtractCount",value:function(e){return this._count-=e,this._samples++,this._checkSampling(),this}},{key:"addTime",value:function(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}},{key:"timeStart",value:function(){return this._startTime=Object(Xe.a)(),this._timerPending=!0,this}},{key:"timeEnd",value:function(){return this._timerPending?(this.addTime(Object(Xe.a)()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}},{key:"getSampleAverageCount",value:function(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}},{key:"getSampleAverageTime",value:function(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}},{key:"getSampleHz",value:function(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}},{key:"getAverageCount",value:function(){return this.samples>0?this.count/this.samples:0}},{key:"getAverageTime",value:function(){return this.samples>0?this.time/this.samples:0}},{key:"getHz",value:function(){return this.time>0?this.samples/(this.time/1e3):0}},{key:"reset",value:function(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}},{key:"_checkSampling",value:function(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}]),e}(),Qe=function(){function e(t){var r=t.id,n=t.stats;l()(this,e),this.id=r,this.stats={},this._initializeStats(n),Object.seal(this)}return h()(e,[{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"count";return this._getOrCreate({name:e,type:t})}},{key:"reset",value:function(){for(var e in this.stats)this.stats[e].reset();return this}},{key:"forEach",value:function(e){for(var t in this.stats)e(this.stats[t])}},{key:"getTable",value:function(){var e={};return this.forEach((function(t){e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}})),e}},{key:"_initializeStats",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){return e._getOrCreate(t)}))}},{key:"_getOrCreate",value:function(e){if(!e||!e.name)return null;var t=e.name,r=e.type;return this.stats[t]||(this.stats[t]=e instanceof qe?e:new qe(t,r)),this.stats[t]}},{key:"size",get:function(){return Object.keys(this.stats).length}}]),e}(),$e=new(function(){function e(){l()(this,e),this.stats=new Map}return h()(e,[{key:"get",value:function(e){return this.stats.has(e)||this.stats.set(e,new Qe({id:e})),this.stats.get(e)}}]),e}());if(globalThis.luma&&"8.5.11"!==globalThis.luma.VERSION)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat("8.5.11"));globalThis.luma||(Object(De.a)()&&U.log(1,"luma.gl ".concat("8.5.11"," - ").concat("set luma.log.level=1 (or higher) to trace rendering"))(),globalThis.luma=globalThis.luma||{VERSION:"8.5.11",version:"8.5.11",log:U,stats:$e,globals:{modules:{},nodeIO:{}}});globalThis.luma;function Ye(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}var Ke=r(8),Je=r.n(Ke),Ze=r(4),et=r.n(Ze),tt=r(5),rt=r.n(tt),nt=r(3),it=r.n(nt);function at(e,t){if("string"!=typeof t)return t;var r=Number(t);if(!isNaN(r))return r;var n=e[t=t.replace(/^.*\./,"")];return Ye(void 0!==n,"Accessing undefined constant GL.".concat(t)),n}function ot(e,t){for(var r in t=Number(t),e)if(e[r]===t)return"GL.".concat(r);return String(t)}var st={};function ut(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"id";st[e]=st[e]||1;var t=st[e]++;return"".concat(e,"-").concat(t)}function ct(e){return Ye("number"==typeof e,"Input must be a number"),e&&0==(e&e-1)}function lt(e){var t=!0;for(var r in e){t=!1;break}return t}function ft(e,t,r,n){var i="See luma.gl ".concat(r," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),a=Object.getPrototypeOf(e);n.forEach((function(e){a.methodName||(a[e]=function(){throw U.removed("Calling removed method ".concat(t,".").concat(e,": "),i)(),new Error(e)})}))}function ht(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return dt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return dt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var vt="Resource subclass must define virtual methods",gt=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),H(t);var n=r.id,i=r.userData,a=void 0===i?{}:i;this.gl=t,this.gl2=t,this.id=n||ut(this[Symbol.toStringTag]),this.userData=a,this._bound=!1,this._handle=r.handle,void 0===this._handle&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}return h()(e,[{key:Symbol.toStringTag,get:function(){return"Resource"}}]),h()(e,[{key:"toString",value:function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.deleteChildren,r=void 0!==t&&t,n=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,n&&r&&n.filter(Boolean).forEach((function(e){return e.delete()})),this}},{key:"bind",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.handle;return"function"!=typeof t?(this._bindHandle(t),this):(this._bound?e=t():(this._bindHandle(this.handle),this._bound=!0,e=t(),this._bound=!1,this._bindHandle(null)),e)}},{key:"unbind",value:function(){this.bind(null)}},{key:"getParameter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ye(e=at(this.gl,e));var r=this.constructor.PARAMETERS||{},n=r[e];if(n){var i=G(this.gl),a=(!("webgl2"in n)||i)&&(!("extension"in n)||this.gl.getExtension(n.extension));if(!a){var o=n.webgl1,s="webgl2"in n?n.webgl2:n.webgl1,u=i?s:o;return u}}return this._getParameter(e,t)}},{key:"getParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.parameters,n=t.keys,i=this.constructor.PARAMETERS||{},a=G(this.gl),o={},s=r||Object.keys(i),u=ht(s);try{for(u.s();!(e=u.n()).done;){var c=e.value,l=i[c],f=l&&(!("webgl2"in l)||a)&&(!("extension"in l)||this.gl.getExtension(l.extension));if(f){var h=n?ot(this.gl,c):c;o[h]=this.getParameter(c,t),n&&"GLenum"===l.type&&(o[h]=ot(this.gl,o[h]))}}}catch(e){u.e(e)}finally{u.f()}return o}},{key:"setParameter",value:function(e,t){Ye(e=at(this.gl,e));var r=(this.constructor.PARAMETERS||{})[e];if(r){var n=G(this.gl);if(!((!("webgl2"in r)||n)&&(!("extension"in r)||this.gl.getExtension(r.extension))))throw new Error("Parameter not available on this platform");"GLenum"===r.type&&(t=at(t))}return this._setParameter(e,t),this}},{key:"setParameters",value:function(e){for(var t in e)this.setParameter(t,e[t]);return this}},{key:"stubRemovedMethods",value:function(e,t,r){return ft(this,e,t,r)}},{key:"initialize",value:function(e){}},{key:"_createHandle",value:function(){throw new Error(vt)}},{key:"_deleteHandle",value:function(){throw new Error(vt)}},{key:"_bindHandle",value:function(e){throw new Error(vt)}},{key:"_getOptsFromHandle",value:function(){throw new Error(vt)}},{key:"_getParameter",value:function(e,t){throw new Error(vt)}},{key:"_setParameter",value:function(e,t){throw new Error(vt)}},{key:"_context",value:function(){return this.gl.luma=this.gl.luma||{},this.gl.luma}},{key:"_addStats",value:function(){var e=this[Symbol.toStringTag],t=$e.get("Resource Counts");t.get("Resources Created").incrementCount(),t.get("".concat(e,"s Created")).incrementCount(),t.get("".concat(e,"s Active")).incrementCount()}},{key:"_removeStats",value:function(){var e=this[Symbol.toStringTag];$e.get("Resource Counts").get("".concat(e,"s Active")).decrementCount()}},{key:"_trackAllocatedMemory",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this[Symbol.toStringTag],r=$e.get("Memory Usage");r.get("GPU Memory").addCount(e),r.get("".concat(t," Memory")).addCount(e),this.byteLength=e}},{key:"_trackDeallocatedMemory",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this[Symbol.toStringTag],t=$e.get("Memory Usage");t.get("GPU Memory").subtractCount(this.byteLength),t.get("".concat(e," Memory")).subtractCount(this.byteLength),this.byteLength=0}},{key:"handle",get:function(){return this._handle}}]),e}(),yt=r(13),mt=r.n(yt),pt=r(20),bt=r.n(pt);function _t(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error("Failed to deduce GL constant from typed array")}}function xt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.clamped,n=void 0===r||r;switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return n?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function wt(e){var t=e.data,r=e.width,n=e.height,i=e.bytesPerPixel,a=void 0===i?4:i,o=e.temp,s=r*a;o=o||new Uint8Array(s);for(var u=0;u<n/2;++u){var c=u*s,l=(n-u-1)*s;o.set(t.subarray(c,c+s)),t.copyWithin(c,l,l+s),t.set(o,l)}}function At(e){for(var t=e.data,r=e.width,n=e.height,i=Math.round(r/2),a=Math.round(n/2),o=new Uint8Array(i*a*4),s=0;s<a;s++)for(var u=0;u<i;u++)for(var c=0;c<4;c++)o[4*(s*i+u)+c]=t[4*(2*s*r+2*u)+c];return{data:o,width:i,height:a}}function kt(e,t,r){var n=r.removedProps,i=void 0===n?{}:n,a=r.deprecatedProps,o=void 0===a?{}:a,s=r.replacedProps,u=void 0===s?{}:s;for(var c in i)if(c in t){var l=i[c]?"".concat(e,".").concat(i[c]):"N/A";U.removed("".concat(e,".").concat(c),l)()}for(var f in o)if(f in t){var h=o[f];U.deprecated("".concat(e,".").concat(f),"".concat(e,".").concat(h))()}var d=null;for(var v in u)if(v in t){var g=u[v];U.deprecated("".concat(e,".").concat(v),"".concat(e,".").concat(g))(),(d=d||Object.assign({},t))[g]=t[v],delete d[v]}return d||t}var Tt={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Et={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Ot=function(){function e(){var t=this;l()(this,e);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];n.forEach((function(e){return t._assign(e)})),Object.freeze(this)}return h()(e,null,[{key:"getBytesPerElement",value:function(e){return xt(e.type||5126).BYTES_PER_ELEMENT}},{key:"getBytesPerVertex",value:function(e){return Ye(e.size),xt(e.type||5126).BYTES_PER_ELEMENT*e.size}},{key:"resolve",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return bt()(e,[Tt].concat(r))}}]),h()(e,[{key:"toString",value:function(){return JSON.stringify(this)}},{key:"_assign",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0!==(e=kt("Accessor",e,Et)).type&&(this.type=e.type,5124!==e.type&&5125!==e.type||(this.integer=!0)),void 0!==e.size&&(this.size=e.size),void 0!==e.offset&&(this.offset=e.offset),void 0!==e.stride&&(this.stride=e.stride),void 0!==e.normalized&&(this.normalized=e.normalized),void 0!==e.integer&&(this.integer=e.integer),void 0!==e.divisor&&(this.divisor=e.divisor),void 0!==e.buffer&&(this.buffer=e.buffer),void 0!==e.index&&("boolean"==typeof e.index?this.index=e.index?1:0:this.index=e.index),void 0!==e.instanced&&(this.divisor=e.instanced?1:0),void 0!==e.isInstanced&&(this.divisor=e.isInstanced?1:0),this}},{key:"BYTES_PER_ELEMENT",get:function(){return e.getBytesPerElement(this)}},{key:"BYTES_PER_VERTEX",get:function(){return e.getBytesPerVertex(this)}}]),e}();function St(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Pt,It,Lt,Rt={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Mt={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Rt},Dt={removedProps:Rt},Ft=function(e){et()(r,e);var t=St(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),n.target=i.target||(n.gl.webgl2?36662:34962),n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Buffer"}}]),h()(r,[{key:"getElementCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/Ot.getBytesPerElement(e))}},{key:"getVertexCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/Ot.getBytesPerVertex(e))}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ArrayBuffer.isView(e)&&(e={data:e}),Number.isFinite(e)&&(e={byteLength:e}),e=kt("Buffer",e,Mt),this.usage=e.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},e,e.accessor)),e.data?this._setData(e.data,e.offset,e.byteLength):this._setByteLength(e.byteLength||0),this}},{key:"setProps",value:function(e){return"accessor"in(e=kt("Buffer",e,Dt))&&this.setAccessor(e.accessor),this}},{key:"setAccessor",value:function(e){return delete(e=Object.assign({},e)).buffer,this.accessor=new Ot(e),this}},{key:"reallocate",value:function(e){return e>this.byteLength?(this._setByteLength(e),!0):(this.bytesUsed=e,!1)}},{key:"setData",value:function(e){return this.initialize(e)}},{key:"subData",value:function(e){ArrayBuffer.isView(e)&&(e={data:e});var t=e,r=t.data,n=t.offset,i=void 0===n?0:n,a=t.srcOffset,o=void 0===a?0:a,s=e.byteLength||e.length;Ye(r);var u=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(u,this.handle),0!==o||void 0!==s?(W(this.gl),this.gl.bufferSubData(this.target,i,r,o,s)):this.gl.bufferSubData(u,i,r),this.gl.bindBuffer(u,null),this.debugData=null,this._inferType(r),this}},{key:"copyData",value:function(e){var t=e.sourceBuffer,r=e.readOffset,n=void 0===r?0:r,i=e.writeOffset,a=void 0===i?0:i,o=e.size,s=this.gl;return W(s),s.bindBuffer(36662,t.handle),s.bindBuffer(36663,this.handle),s.copyBufferSubData(36662,36663,n,a,o),s.bindBuffer(36662,null),s.bindBuffer(36663,null),this.debugData=null,this}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dstData,r=void 0===t?null:t,n=e.srcByteOffset,i=void 0===n?0:n,a=e.dstOffset,o=void 0===a?0:a,s=e.length,u=void 0===s?0:s;W(this.gl);var c,l,f=xt(this.accessor.type||5126,{clamped:!1}),h=this._getAvailableElementCount(i),d=o;r?c=(l=r.length)-d:l=d+(c=Math.min(h,u||h));var v=Math.min(h,c);return Ye((u=u||v)<=v),r=r||new f(l),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,i,r,o,u),this.gl.bindBuffer(36662,null),r}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?this.target:t,n=e.index,i=void 0===n?this.accessor&&this.accessor.index:n,a=e.offset,o=void 0===a?0:a,s=e.size;return 35345===r||35982===r?void 0!==s?this.gl.bindBufferRange(r,i,this.handle,o,s):(Ye(0===o),this.gl.bindBufferBase(r,i,this.handle)):this.gl.bindBuffer(r,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?this.target:t,n=e.index,i=void 0===n?this.accessor&&this.accessor.index:n,a=35345===r||35982===r;return a?this.gl.bindBufferBase(r,i,null):this.gl.bindBuffer(r,null),this}},{key:"getDebugData",value:function(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(10,this.byteLength)}),{data:this.debugData,changed:!0})}},{key:"invalidateDebugData",value:function(){this.debugData=null}},{key:"_setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength+t;Ye(ArrayBuffer.isView(e)),this._trackDeallocatedMemory();var n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.usage),this.gl.bufferSubData(n,t,e),this.gl.bindBuffer(n,null),this.debugData=e.slice(0,10),this.bytesUsed=r,this._trackAllocatedMemory(r);var i=_t(e);return Ye(i),this.setAccessor(new Ot(this.accessor,{type:i})),this}},{key:"_setByteLength",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.usage;Ye(e>=0),this._trackDeallocatedMemory();var r=e;0===e&&(r=new Float32Array(0));var n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,t),this.gl.bindBuffer(n,null),this.usage=t,this.debugData=null,this.bytesUsed=e,this._trackAllocatedMemory(e),this}},{key:"_getTarget",value:function(){return this.gl.webgl2?36663:this.target}},{key:"_getAvailableElementCount",value:function(e){var t=e/xt(this.accessor.type||5126,{clamped:!1}).BYTES_PER_ELEMENT;return this.getElementCount()-t}},{key:"_inferType",value:function(e){this.accessor.type||this.setAccessor(new Ot(this.accessor,{type:_t(e)}))}},{key:"_createHandle",value:function(){return this.gl.createBuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_getParameter",value:function(e){this.gl.bindBuffer(this.target,this.handle);var t=this.gl.getBufferParameter(this.target,e);return this.gl.bindBuffer(this.target,null),t}},{key:"setByteLength",value:function(e){return U.deprecated("setByteLength","reallocate")(),this.reallocate(e)}},{key:"updateAccessor",value:function(e){return U.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new Ot(this.accessor,e),this}},{key:"type",get:function(){return U.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}},{key:"bytes",get:function(){return U.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}}]),r}(gt),jt=(Pt={},y()(Pt,6407,{dataFormat:6407,types:[5121,33635]}),y()(Pt,6408,{dataFormat:6408,types:[5121,32819,32820]}),y()(Pt,6406,{dataFormat:6406,types:[5121]}),y()(Pt,6409,{dataFormat:6409,types:[5121]}),y()(Pt,6410,{dataFormat:6410,types:[5121]}),y()(Pt,33326,{dataFormat:6403,types:[5126],gl2:!0}),y()(Pt,33328,{dataFormat:33319,types:[5126],gl2:!0}),y()(Pt,34837,{dataFormat:6407,types:[5126],gl2:!0}),y()(Pt,34836,{dataFormat:6408,types:[5126],gl2:!0}),Pt),Bt=(It={},y()(It,6403,1),y()(It,36244,1),y()(It,33319,2),y()(It,33320,2),y()(It,6407,3),y()(It,36248,3),y()(It,6408,4),y()(It,36249,4),y()(It,6402,1),y()(It,34041,1),y()(It,6406,1),y()(It,6409,1),y()(It,6410,2),It),Ct=(Lt={},y()(Lt,5126,4),y()(Lt,5125,4),y()(Lt,5124,4),y()(Lt,5123,2),y()(Lt,5122,2),y()(Lt,5131,2),y()(Lt,5120,1),y()(Lt,5121,1),Lt);function Nt(e,t){var r=jt[t];if(!r)return!1;if(void 0===r.gl1&&void 0===r.gl2)return!0;var n=G(e)&&r.gl2||r.gl1;return"string"==typeof n?e.getExtension(n):n}function Ut(e,t){var r=jt[t];switch(r&&r.types[0]){case 5126:return e.getExtension("OES_texture_float_linear");case 5131:return e.getExtension("OES_texture_half_float_linear");default:return!0}}function zt(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Gt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Ht=[9729,9728],Wt=globalThis.WebGLBuffer||function(){},Xt=function(e){et()(r,e);var t=Gt(r);function r(e,n){var i;l()(this,r);var a=n.id,o=void 0===a?ut("texture"):a,s=n.handle,u=n.target;return(i=t.call(this,e,{id:o,handle:s})).target=u,i.textureUnit=void 0,i.loaded=!1,i.width=void 0,i.height=void 0,i.depth=void 0,i.format=void 0,i.type=void 0,i.dataFormat=void 0,i.border=void 0,i.textureUnit=void 0,i.mipmaps=void 0,i}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.format,n=t.linearFiltering,i=!0;return r&&(i=(i=i&&Nt(e,r))&&(!n||Ut(e,r))),i}}]),h()(r,[{key:"toString",value:function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}},{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.data;if(r instanceof Promise)return r.then((function(r){return e.initialize(Object.assign({},t,{pixels:r,data:r}))})),this;var n="undefined"!=typeof HTMLVideoElement&&r instanceof HTMLVideoElement;if(n&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",(function(){return e.initialize(t)})),this;var i=t.pixels,a=void 0===i?null:i,o=t.format,s=void 0===o?6408:o,u=t.border,c=void 0===u?0:u,l=t.recreate,f=void 0!==l&&l,h=t.parameters,d=void 0===h?{}:h,v=t.pixelStore,g=void 0===v?{}:v,y=t.textureUnit,m=void 0===y?void 0:y;r||(r=a);var p=t.width,b=t.height,_=t.dataFormat,x=t.type,w=t.compressed,A=void 0!==w&&w,k=t.mipmaps,T=void 0===k||k,E=t.depth,O=void 0===E?0:E,S=this._deduceParameters({format:s,type:x,dataFormat:_,compressed:A,data:r,width:p,height:b});return p=S.width,b=S.height,A=S.compressed,_=S.dataFormat,x=S.type,this.width=p,this.height=b,this.depth=O,this.format=s,this.type=x,this.dataFormat=_,this.border=c,this.textureUnit=m,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),T&&this._isNPOT()&&(U.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),T=!1,this._updateForNPOT(d)),this.mipmaps=T,this.setImageData({data:r,width:p,height:b,depth:O,format:s,type:x,dataFormat:_,border:c,mipmaps:T,parameters:g,compressed:A}),T&&this.generateMipmap(),this.setParameters(d),f&&(this.data=r),n&&(this._video={video:r,parameters:d,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}},{key:"update",value:function(){if(this._video){var e=this._video,t=e.video,r=e.parameters;if(e.lastTime===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}},{key:"resize",value:function(e){var t=e.height,r=e.width,n=e.mipmaps,i=void 0!==n&&n;return r!==this.width||t!==this.height?this.initialize({width:r,height:t,format:this.format,type:this.type,dataFormat:this.dataFormat,border:this.border,mipmaps:i}):this}},{key:"generateMipmap",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isNPOT()?(U.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Me(this.gl,t,(function(){e.gl.generateMipmap(e.target)})),this.gl.bindTexture(this.target,null),this)}},{key:"setImageData",value:function(e){this._trackDeallocatedMemory("Texture");var t=e.target,r=void 0===t?this.target:t,n=e.pixels,i=void 0===n?null:n,a=e.level,o=void 0===a?0:a,s=e.format,u=void 0===s?this.format:s,c=e.border,l=void 0===c?this.border:c,f=e.offset,h=void 0===f?0:f,d=e.parameters,v=void 0===d?{}:d,g=e.data,y=void 0===g?null:g,m=e.type,p=void 0===m?this.type:m,b=e.width,_=void 0===b?this.width:b,x=e.height,w=void 0===x?this.height:x,A=e.dataFormat,k=void 0===A?this.dataFormat:A,T=e.compressed,E=void 0!==T&&T;y||(y=i);var O=this._deduceParameters({format:u,type:p,dataFormat:k,compressed:E,data:y,width:_,height:w});p=O.type,k=O.dataFormat,E=O.compressed,_=O.width,w=O.height;var S=this.gl;S.bindTexture(this.target,this.handle);var P,I,L=this._getDataType({data:y,compressed:E});y=L.data,P=L.dataType;var R=0;if(Me(this.gl,v,(function(){switch(P){case"null":S.texImage2D(r,o,u,_,w,l,k,p,y);break;case"typed-array":S.texImage2D(r,o,u,_,w,l,k,p,y,h);break;case"buffer":(I=W(S)).bindBuffer(35052,y.handle||y),I.texImage2D(r,o,u,_,w,l,k,p,h),I.bindBuffer(35052,null);break;case"browser-object":G(S)?S.texImage2D(r,o,u,_,w,l,k,p,y):S.texImage2D(r,o,u,k,p,y);break;case"compressed":var e,t=zt(y.entries());try{for(t.s();!(e=t.n()).done;){var n=ce()(e.value,2),i=n[0],a=n[1];S.compressedTexImage2D(r,i,a.format,a.width,a.height,l,a.data),R+=a.levelSize}}catch(e){t.e(e)}finally{t.f()}break;default:Ye(!1,"Unknown image data type")}})),"compressed"===P)this._trackAllocatedMemory(R,"Texture");else if(y&&y.byteLength)this._trackAllocatedMemory(y.byteLength,"Texture");else{var M=Bt[this.dataFormat]||4,D=Ct[this.type]||1;this._trackAllocatedMemory(this.width*this.height*M*D,"Texture")}return this.loaded=!0,this}},{key:"setSubImageData",value:function(e){var t=this,r=e.target,n=void 0===r?this.target:r,i=e.pixels,a=void 0===i?null:i,o=e.data,s=void 0===o?null:o,u=e.x,c=void 0===u?0:u,l=e.y,f=void 0===l?0:l,h=e.width,d=void 0===h?this.width:h,v=e.height,g=void 0===v?this.height:v,y=e.level,m=void 0===y?0:y,p=e.format,b=void 0===p?this.format:p,_=e.type,x=void 0===_?this.type:_,w=e.dataFormat,A=void 0===w?this.dataFormat:w,k=e.compressed,T=void 0!==k&&k,E=e.offset,O=void 0===E?0:E,S=e.border,P=(void 0===S&&this.border,e.parameters),I=void 0===P?{}:P,L=this._deduceParameters({format:b,type:x,dataFormat:A,compressed:T,data:s,width:d,height:g});if(x=L.type,A=L.dataFormat,T=L.compressed,d=L.width,g=L.height,Ye(0===this.depth,"texSubImage not supported for 3D textures"),s||(s=a),s&&s.data){var R=s;s=R.data,d=R.shape[0],g=R.shape[1]}s instanceof Ft&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),Me(this.gl,I,(function(){if(T)t.gl.compressedTexSubImage2D(n,m,c,f,d,g,b,s);else if(null===s)t.gl.texSubImage2D(n,m,c,f,d,g,A,x,null);else if(ArrayBuffer.isView(s))t.gl.texSubImage2D(n,m,c,f,d,g,A,x,s,O);else if(s instanceof Wt){var e=W(t.gl);e.bindBuffer(35052,s),e.texSubImage2D(n,m,c,f,d,g,A,x,O),e.bindBuffer(35052,null)}else if(G(t.gl)){W(t.gl).texSubImage2D(n,m,c,f,d,g,A,x,s)}else t.gl.texSubImage2D(n,m,c,f,A,x,s)})),this.gl.bindTexture(this.target,null)}},{key:"copyFramebuffer",value:function(){return U.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"getActiveUnit",value:function(){return this.gl.getParameter(34016)-33984}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,this.handle),e}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,null),e}},{key:"_getDataType",value:function(e){var t=e.data,r=e.compressed;return void 0!==r&&r?{data:t,dataType:"compressed"}:null===t?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof Ft?{data:t.handle,dataType:"buffer"}:t instanceof Wt?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}},{key:"_deduceParameters",value:function(e){var t=e.format,r=e.data,n=e.width,i=e.height,a=e.dataFormat,o=e.type,s=e.compressed,u=jt[t];a=a||u&&u.dataFormat,o=o||u&&u.types[0],s=s||u&&u.compressed;var c=this._deduceImageSize(r,n,i);return{dataFormat:a,type:o,compressed:s,width:n=c.width,height:i=c.height,format:t,data:r}}},{key:"_deduceImageSize",value:function(e,t,r){var n;return Ye(n="undefined"!=typeof ImageData&&e instanceof ImageData?{width:e.width,height:e.height}:"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement?{width:e.naturalWidth,height:e.naturalHeight}:"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap?{width:e.width,height:e.height}:"undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e?{width:t,height:r}:{width:t>=0?t:1,height:r>=0?r:1},"Could not deduced texture size"),Ye(void 0===t||n.width===t,"Deduced texture width does not match supplied width"),Ye(void 0===r||n.height===r,"Deduced texture height does not match supplied height"),n}},{key:"_createHandle",value:function(){return this.gl.createTexture()}},{key:"_deleteHandle",value:function(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}},{key:"_getParameter",value:function(e){switch(e){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);var t=this.gl.getTexParameter(this.target,e);return this.gl.bindTexture(this.target,null),t}}},{key:"_setParameter",value:function(e,t){switch(this.gl.bindTexture(this.target,this.handle),t=this._getNPOTParam(e,t),e){case 33082:case 33083:this.gl.texParameterf(this.handle,e,t);break;case 4096:case 4097:Ye(!1);break;default:this.gl.texParameteri(this.target,e,t)}return this.gl.bindTexture(this.target,null),this}},{key:"_isNPOT",value:function(){return!G(this.gl)&&(!(!this.width||!this.height)&&(!ct(this.width)||!ct(this.height)))}},{key:"_updateForNPOT",value:function(e){void 0===e[this.gl.TEXTURE_MIN_FILTER]&&(e[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),void 0===e[this.gl.TEXTURE_WRAP_S]&&(e[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),void 0===e[this.gl.TEXTURE_WRAP_T]&&(e[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}},{key:"_getNPOTParam",value:function(e,t){if(this._isNPOT())switch(e){case 10241:-1===Ht.indexOf(t)&&(t=9729);break;case 10242:case 10243:33071!==t&&(t=33071)}return t}}]),r}(gt),qt="";function Qt(e,t){return Ye("string"==typeof e),e=qt+e,new Promise((function(r,n){try{var i=new Image;i.onload=function(){return r(i)},i.onerror=function(){return n(new Error("Could not load image ".concat(e,".")))},i.crossOrigin=t&&t.crossOrigin||"anonymous",i.src=e}catch(e){n(e)}}))}function $t(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Yt,Kt=function(e){et()(r,e);var t=$t(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),H(e),(i instanceof Promise||"string"==typeof i)&&(i={data:i}),"string"==typeof i.data&&(i=Object.assign({},i,{data:Qt(i.data)})),(n=t.call(this,e,Object.assign({},i,{target:3553}))).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture2D"}}],[{key:"isSupported",value:function(e,t){return Xt.isSupported(e,t)}}]),r}(Xt),Jt="EXT_color_buffer_float",Zt=(Yt={},y()(Yt,33189,{bpp:2}),y()(Yt,33190,{gl2:!0,bpp:3}),y()(Yt,36012,{gl2:!0,bpp:4}),y()(Yt,36168,{bpp:1}),y()(Yt,34041,{bpp:4}),y()(Yt,35056,{gl2:!0,bpp:4}),y()(Yt,36013,{gl2:!0,bpp:5}),y()(Yt,32854,{bpp:2}),y()(Yt,36194,{bpp:2}),y()(Yt,32855,{bpp:2}),y()(Yt,33321,{gl2:!0,bpp:1}),y()(Yt,33330,{gl2:!0,bpp:1}),y()(Yt,33329,{gl2:!0,bpp:1}),y()(Yt,33332,{gl2:!0,bpp:2}),y()(Yt,33331,{gl2:!0,bpp:2}),y()(Yt,33334,{gl2:!0,bpp:4}),y()(Yt,33333,{gl2:!0,bpp:4}),y()(Yt,33323,{gl2:!0,bpp:2}),y()(Yt,33336,{gl2:!0,bpp:2}),y()(Yt,33335,{gl2:!0,bpp:2}),y()(Yt,33338,{gl2:!0,bpp:4}),y()(Yt,33337,{gl2:!0,bpp:4}),y()(Yt,33340,{gl2:!0,bpp:8}),y()(Yt,33339,{gl2:!0,bpp:8}),y()(Yt,32849,{gl2:!0,bpp:3}),y()(Yt,32856,{gl2:!0,bpp:4}),y()(Yt,32857,{gl2:!0,bpp:4}),y()(Yt,36220,{gl2:!0,bpp:4}),y()(Yt,36238,{gl2:!0,bpp:4}),y()(Yt,36975,{gl2:!0,bpp:4}),y()(Yt,36214,{gl2:!0,bpp:8}),y()(Yt,36232,{gl2:!0,bpp:8}),y()(Yt,36226,{gl2:!0,bpp:16}),y()(Yt,36208,{gl2:!0,bpp:16}),y()(Yt,33325,{gl2:Jt,bpp:2}),y()(Yt,33327,{gl2:Jt,bpp:4}),y()(Yt,34842,{gl2:Jt,bpp:8}),y()(Yt,33326,{gl2:Jt,bpp:4}),y()(Yt,33328,{gl2:Jt,bpp:8}),y()(Yt,34836,{gl2:Jt,bpp:16}),y()(Yt,35898,{gl2:Jt,bpp:4}),Yt);function er(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}function tr(e,t,r){var n=r[t];if(!n)return!1;var i=G(e)&&n.gl2||n.gl1;return"string"==typeof i?e.getExtension(i):i}var rr=function(e){et()(r,e);var t=er(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Renderbuffer"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{format:null},r=t.format;return!r||tr(e,r,Zt)}},{key:"getSamplesForFormat",value:function(e,t){var r=t.format;return e.getInternalformatParameter(36161,r,32937)}}]),h()(r,[{key:"initialize",value:function(e){var t=e.format,r=e.width,n=void 0===r?1:r,i=e.height,a=void 0===i?1:i,o=e.samples,s=void 0===o?0:o;return Ye(t,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),0!==s&&G(this.gl)?this.gl.renderbufferStorageMultisample(36161,s,t,n,a):this.gl.renderbufferStorage(36161,t,n,a),this.format=t,this.width=n,this.height=a,this.samples=s,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*Zt[this.format].bpp),this}},{key:"resize",value:function(e){var t=e.width,r=e.height;return t!==this.width||r!==this.height?this.initialize({width:t,height:r,format:this.format,samples:this.samples}):this}},{key:"_createHandle",value:function(){return this.gl.createRenderbuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_bindHandle",value:function(e){this.gl.bindRenderbuffer(36161,e)}},{key:"_syncHandle",value:function(e){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}},{key:"_getParameter",value:function(e){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,e)}}]),r}(gt);function nr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.framebuffer,n=void 0===r?null:r,i=t.color,a=void 0===i?null:i,o=t.depth,s=void 0===o?null:o,u=t.stencil,c=void 0===u?null:u,l={};n&&(l.framebuffer=n);var f=0;a&&(f|=16384,!0!==a&&(l.clearColor=a)),s&&(f|=256,!0!==s&&(l.clearDepth=s)),c&&(f|=1024,!0!==s&&(l.clearStencil=s)),Ye(0!==f,"clear: bad arguments"),Me(e,l,(function(){e.clear(f)}))}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.framebuffer,n=void 0===r?null:r,i=t.buffer,a=void 0===i?6144:i,o=t.drawBuffer,s=void 0===o?0:o,u=t.value,c=void 0===u?[0,0,0,0]:u;W(e),Me(e,{framebuffer:n},(function(){switch(a){case 6144:switch(c.constructor){case Int32Array:e.clearBufferiv(a,s,c);break;case Uint32Array:e.clearBufferuiv(a,s,c);break;case Float32Array:default:e.clearBufferfv(a,s,c)}break;case 6145:e.clearBufferfv(6145,0,[c]);break;case 6146:e.clearBufferiv(6146,0,[c]);break;case 34041:var t=ce()(c,2),r=t[0],n=t[1];e.clearBufferfi(34041,0,r,n);break;default:Ye(!1,"clear: bad arguments")}}))}function ar(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Ye(!1),0}}function or(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var sr=[34069,34070,34071,34072,34073,34074],ur=function(e){et()(n,e);var t,r=or(n);function n(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,n),H(e),(t=r.call(this,e,Object.assign({},i,{target:34067}))).initialize(i),Object.seal(Je()(t)),t}return h()(n,[{key:Symbol.toStringTag,get:function(){return"TextureCube"}}]),h()(n,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.mipmaps,n=void 0===r||r,i=t.parameters,a=void 0===i?{}:i;return this.opts=t,this.setCubeMapImageData(t).then((function(){e.loaded=!0,n&&e.generateMipmap(t),e.setParameters(a)})),this}},{key:"subImage",value:function(e){var t=e.face,r=e.data,n=e.x,i=void 0===n?0:n,a=e.y,o=void 0===a?0:a,s=e.mipmapLevel,u=void 0===s?0:s;return this._subImage({target:t,data:r,x:i,y:o,mipmapLevel:u})}},{key:"setCubeMapImageData",value:(t=u()(o.a.mark((function e(t){var r,n,i,a,s,u,c,l,f,h,d,v,g,y=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.width,n=t.height,i=t.pixels,a=t.data,s=t.border,u=void 0===s?0:s,c=t.format,l=void 0===c?6408:c,f=t.type,h=void 0===f?5121:f,d=this.gl,v=i||a,e.next=5,Promise.all(sr.map((function(e){var t=v[e];return Promise.all(Array.isArray(t)?t:[t])})));case 5:g=e.sent,this.bind(),sr.forEach((function(e,t){g[t].length>1&&!1!==y.opts.mipmaps&&U.warn("".concat(y.id," has mipmap and multiple LODs."))(),g[t].forEach((function(t,i){r&&n?d.texImage2D(e,i,l,r,n,u,l,h,t):d.texImage2D(e,i,l,l,h,t)}))})),this.unbind();case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"setImageDataForFace",value:function(e){var t=this,r=e.face,n=e.width,i=e.height,a=e.pixels,o=e.data,s=e.border,u=void 0===s?0:s,c=e.format,l=void 0===c?6408:c,f=e.type,h=void 0===f?5121:f,d=this.gl,v=a||o;return this.bind(),v instanceof Promise?v.then((function(n){return t.setImageDataForFace(Object.assign({},e,{face:r,data:n,pixels:n}))})):this.width||this.height?d.texImage2D(r,0,l,n,i,u,l,h,v):d.texImage2D(r,0,l,l,h,v),this}}]),n}(Xt);function cr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}ur.FACES=sr;var lr=function(e){et()(r,e);var t=cr(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),W(e),i=Object.assign({depth:1},i,{target:32879,unpackFlipY:!1}),(n=t.call(this,e,i)).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture3D"}}],[{key:"isSupported",value:function(e){return G(e)}}]),h()(r,[{key:"setImageData",value:function(e){var t=this,r=e.level,n=void 0===r?0:r,i=e.dataFormat,a=void 0===i?6408:i,o=e.width,s=e.height,u=e.depth,c=void 0===u?1:u,l=e.border,f=void 0===l?0:l,h=e.format,d=e.type,v=void 0===d?5121:d,g=e.offset,y=void 0===g?0:g,m=e.data,p=e.parameters,b=void 0===p?{}:p;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),Me(this.gl,b,(function(){ArrayBuffer.isView(m)&&t.gl.texImage3D(t.target,n,a,o,s,c,f,h,v,m),m instanceof Ft&&(t.gl.bindBuffer(35052,m.handle),t.gl.texImage3D(t.target,n,a,o,s,c,f,h,v,y))})),m&&m.byteLength)this._trackAllocatedMemory(m.byteLength,"Texture");else{var _=Bt[this.dataFormat]||4,x=Ct[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*_*x,"Texture")}return this.loaded=!0,this}}]),r}(Xt);function fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.sourceX,n=void 0===r?0:r,i=t.sourceY,a=void 0===i?0:i,o=t.sourceFormat,s=void 0===o?6408:o,u=t.sourceAttachment,c=void 0===u?36064:u,l=t.target,f=void 0===l?null:l,h=t.sourceWidth,d=t.sourceHeight,v=t.sourceType,g=dr(e),y=g.framebuffer,m=g.deleteFramebuffer;Ye(y);var p=y.gl,b=y.handle,_=y.attachments;h=h||y.width,d=d||y.height,36064===c&&null===b&&(c=1028),Ye(_[c]),f=vr(f,v=v||_[c].type,s,h,d),v=v||_t(f);var x=p.bindFramebuffer(36160,b);return p.readPixels(n,a,h,d,s,v,f),p.bindFramebuffer(36160,x||null),m&&y.delete(),f}function hr(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.sourceAttachment,n=void 0===r?36064:r,i=t.targetMaxHeight,a=void 0===i?Number.MAX_SAFE_INTEGER:i,o=fr(e,{sourceAttachment:n}),s=e.width,u=e.height;u>a;){var c=At({data:o,width:s,height:u});o=c.data,s=c.width,u=c.height}wt({data:o,width:s,height:u});var l=document.createElement("canvas");l.width=s,l.height=u;var f=l.getContext("2d"),h=f.createImageData(s,u);return h.data.set(o),f.putImageData(h,0,0),l.toDataURL()}function dr(e){return e instanceof pr?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:(t=e,n=t.gl,i=t.width,a=t.height,o=t.id,new pr(n,Object.assign({},r,{id:"framebuffer-for-".concat(o),width:i,height:a,attachments:y()({},36064,t)}))),deleteFramebuffer:!0};var t,r,n,i,a,o}function vr(e,t,r,n,i){return e||new(xt(t=t||5121,{clamped:!1}))(n*i*ar(r))}function gr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return yr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return yr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function yr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var pr=function(e){et()(r,e);var t=mr(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).width=null,n.height=null,n.attachments={},n.readBuffer=36064,n.drawBuffers=[36064],n.ownResources=[],n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Framebuffer"}},{key:"MAX_COLOR_ATTACHMENTS",get:function(){var e=W(this.gl);return e.getParameter(e.MAX_COLOR_ATTACHMENTS)}},{key:"MAX_DRAW_BUFFERS",get:function(){var e=W(this.gl);return e.getParameter(e.MAX_DRAW_BUFFERS)}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.colorBufferFloat,n=t.colorBufferHalfFloat,i=!0;return r&&(i=Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float")||e.getExtension("OES_texture_float"))),n&&(i=i&&Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("EXT_color_buffer_half_float"))),i}},{key:"getDefaultFramebuffer",value:function(e){return e.luma=e.luma||{},e.luma.defaultFramebuffer=e.luma.defaultFramebuffer||new r(e,{id:"default-framebuffer",handle:null,attachments:{}}),e.luma.defaultFramebuffer}}]),h()(r,[{key:"initialize",value:function(e){var t=e.width,r=void 0===t?1:t,n=e.height,i=void 0===n?1:n,a=e.attachments,o=void 0===a?null:a,s=e.color,u=void 0===s||s,c=e.depth,l=void 0===c||c,f=e.stencil,h=void 0!==f&&f,d=e.check,v=void 0===d||d,g=e.readBuffer,y=void 0===g?void 0:g,m=e.drawBuffers,p=void 0===m?void 0:m;if(Ye(r>=0&&i>=0,"Width and height need to be integers"),this.width=r,this.height=i,o)for(var b in o){var _=o[b];(Array.isArray(_)?_[0]:_).resize({width:r,height:i})}else o=this._createDefaultAttachments(u,l,h,r,i);this.update({clearAttachments:!0,attachments:o,readBuffer:y,drawBuffers:p}),o&&v&&this.checkStatus()}},{key:"delete",value:function(){var e,t=gr(this.ownResources);try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(e){t.e(e)}finally{t.f()}return mt()(it()(r.prototype),"delete",this).call(this),this}},{key:"update",value:function(e){var t=e.attachments,r=void 0===t?{}:t,n=e.readBuffer,i=e.drawBuffers,a=e.clearAttachments,o=void 0!==a&&a,s=e.resizeAttachments,u=void 0===s||s;this.attach(r,{clearAttachments:o,resizeAttachments:u});var c=this.gl,l=c.bindFramebuffer(36160,this.handle);return n&&this._setReadBuffer(n),i&&this._setDrawBuffers(i),c.bindFramebuffer(36160,l||null),this}},{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.width,r=e.height;if(null===this.handle)return Ye(void 0===t&&void 0===r),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;for(var n in void 0===t&&(t=this.gl.drawingBufferWidth),void 0===r&&(r=this.gl.drawingBufferHeight),t!==this.width&&r!==this.height&&U.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(r))(),this.attachments)this.attachments[n].resize({width:t,height:r});return this.width=t,this.height=r,this}},{key:"attach",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.clearAttachments,i=void 0!==n&&n,a=r.resizeAttachments,o=void 0===a||a,s={};i&&Object.keys(this.attachments).forEach((function(e){s[e]=null})),Object.assign(s,e);var u=this.gl.bindFramebuffer(36160,this.handle);for(var c in s){Ye(void 0!==c,"Misspelled framebuffer binding point?");var l=Number(c),f=s[l],h=f;if(h)if(h instanceof rr)this._attachRenderbuffer({attachment:l,renderbuffer:h});else if(Array.isArray(f)){var d=ce()(f,3),v=d[0],g=d[1],y=void 0===g?0:g,m=d[2],p=void 0===m?0:m;h=v,this._attachTexture({attachment:l,texture:v,layer:y,level:p})}else this._attachTexture({attachment:l,texture:h,layer:0,level:0});else this._unattach(l);o&&h&&h.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,u||null),Object.assign(this.attachments,e),Object.keys(this.attachments).filter((function(e){return!t.attachments[e]})).forEach((function(e){delete t.attachments[e]}))}},{key:"checkStatus",value:function(){this.gl;var e=this.getStatus();if(36053!==e)throw new Error(function(e){return(pr.STATUS||{})[e]||"Framebuffer error ".concat(e)}(e));return this}},{key:"getStatus",value:function(){var e=this.gl,t=e.bindFramebuffer(36160,this.handle),r=e.checkFramebufferStatus(36160);return e.bindFramebuffer(36160,t||null),r}},{key:"clear",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.color,n=t.depth,i=t.stencil,a=t.drawBuffers,o=void 0===a?[]:a,s=this.gl.bindFramebuffer(36160,this.handle);return(r||n||i)&&nr(this.gl,{color:r,depth:n,stencil:i}),o.forEach((function(t,r){ir(e.gl,{drawBuffer:r,value:t})})),this.gl.bindFramebuffer(36160,s||null),this}},{key:"readPixels",value:function(){return U.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}},{key:"readPixelsToBuffer",value:function(){return U.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}},{key:"copyToDataUrl",value:function(){return U.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}},{key:"copyToImage",value:function(){return U.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}},{key:"copyToTexture",value:function(){return U.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"blit",value:function(){return U.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}},{key:"invalidate",value:function(e){var t=e.attachments,r=void 0===t?[]:t,n=e.x,i=void 0===n?0:n,a=e.y,o=void 0===a?0:a,s=e.width,u=e.height,c=W(this.gl),l=c.bindFramebuffer(36008,this.handle);return 0===i&&0===o&&void 0===s&&void 0===u?c.invalidateFramebuffer(36008,r):c.invalidateFramebuffer(36008,r,i,o,s,u),c.bindFramebuffer(36008,l),this}},{key:"getAttachmentParameter",value:function(e,t,r){var n=this._getAttachmentParameterFallback(t);return null===n&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,e,t),this.gl.bindFramebuffer(36160,null)),r&&n>1e3&&(n=ot(this.gl,n)),n}},{key:"getAttachmentParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:36064,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],i={},a=gr(n);try{for(a.s();!(e=a.n()).done;){var o=e.value,s=r?ot(this.gl,o):o;i[s]=this.getAttachmentParameter(t,o,r)}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"getParameters",value:function(){for(var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Object.keys(this.attachments),r={},n=0,i=t;n<i.length;n++){var a=i[n],o=Number(a),s=e?ot(this.gl,o):o;r[s]=this.getAttachmentParameters(o,e)}return r}},{key:"show",value:function(){return"undefined"!=typeof window&&window.open(hr(this),"luma-debug-texture"),this}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(e>U.level||"undefined"==typeof window)return this;t=t||"Framebuffer ".concat(this.id);var r=hr(this,{targetMaxHeight:100});return U.image({logLevel:e,message:t,image:r},t)(),this}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?36160:t;return this.gl.bindFramebuffer(r,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?36160:t;return this.gl.bindFramebuffer(r,null),this}},{key:"_createDefaultAttachments",value:function(e,t,r,n,i){var a,o=null;e&&((o=o||{})[36064]=new Kt(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:n,height:i,mipmaps:!1,parameters:(a={},y()(a,10241,9729),y()(a,10240,9729),y()(a,10242,33071),y()(a,10243,33071),a)}),this.ownResources.push(o[36064]));return t&&r?((o=o||{})[33306]=new rr(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:n,height:111}),this.ownResources.push(o[33306])):t?((o=o||{})[36096]=new rr(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:n,height:i}),this.ownResources.push(o[36096])):r&&Ye(!1),o}},{key:"_unattach",value:function(e){var t=this.attachments[e];t&&(t instanceof rr?this.gl.framebufferRenderbuffer(36160,e,36161,null):this.gl.framebufferTexture2D(36160,e,3553,null,0),delete this.attachments[e])}},{key:"_attachRenderbuffer",value:function(e){var t=e.attachment,r=void 0===t?36064:t,n=e.renderbuffer;this.gl.framebufferRenderbuffer(36160,r,36161,n.handle),this.attachments[r]=n}},{key:"_attachTexture",value:function(e){var t=e.attachment,r=void 0===t?36064:t,n=e.texture,i=e.layer,a=e.level,o=this.gl;switch(o.bindTexture(n.target,n.handle),n.target){case 35866:case 32879:W(o).framebufferTextureLayer(36160,r,n.target,a,i);break;case 34067:var s=function(e){return e<34069?e+34069:e}(i);o.framebufferTexture2D(36160,r,s,n.handle,a);break;case 3553:o.framebufferTexture2D(36160,r,3553,n.handle,a);break;default:Ye(!1,"Illegal texture type")}o.bindTexture(n.target,null),this.attachments[r]=n}},{key:"_setReadBuffer",value:function(e){var t,r=G(t=this.gl)?t:null;r?r.readBuffer(e):Ye(36064===e||1029===e,"Multiple render targets not supported"),this.readBuffer=e}},{key:"_setDrawBuffers",value:function(e){var t=this.gl,r=W(t);if(r)r.drawBuffers(e);else{var n=t.getExtension("WEBGL_draw_buffers");n?n.drawBuffersWEBGL(e):Ye(1===e.length&&(36064===e[0]||1029===e[0]),"Multiple render targets not supported")}this.drawBuffers=e}},{key:"_getAttachmentParameterFallback",value:function(e){var t=function(e){for(var t in e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},Vr)void 0===e.luma.caps[t]&&(e.luma.caps[t]=Xr(e,t));return e.luma.caps}(this.gl);switch(e){case 36052:return t.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.WEBGL2?null:8;case 33297:return t.WEBGL2?null:5125;case 33296:return t.WEBGL2||t.EXT_sRGB?null:9729;default:return null}}},{key:"_createHandle",value:function(){return this.gl.createFramebuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteFramebuffer(this.handle)}},{key:"_bindHandle",value:function(e){return this.gl.bindFramebuffer(36160,e)}},{key:"color",get:function(){return this.attachments[36064]||null}},{key:"texture",get:function(){return this.attachments[36064]||null}},{key:"depth",get:function(){return this.attachments[36096]||this.attachments[33306]||null}},{key:"stencil",get:function(){return this.attachments[36128]||this.attachments[33306]||null}}]),r}(gt);var br;pr.ATTACHMENT_PARAMETERS=[36049,36048,33296,33298,33299,33300,33301,33302,33303];var _r="WEBGL2",xr="VERTEX_ARRAY_OBJECT",wr="TIMER_QUERY",Ar="INSTANCED_RENDERING",kr="MULTIPLE_RENDER_TARGETS",Tr="ELEMENT_INDEX_UINT32",Er="BLEND_EQUATION_MINMAX",Or="FLOAT_BLEND",Sr="COLOR_ENCODING_SRGB",Pr="TEXTURE_DEPTH",Ir="TEXTURE_FLOAT",Lr="TEXTURE_HALF_FLOAT",Rr="TEXTURE_FILTER_LINEAR_FLOAT",Mr="TEXTURE_FILTER_LINEAR_HALF_FLOAT",Dr="TEXTURE_FILTER_ANISOTROPIC",Fr="COLOR_ATTACHMENT_RGBA32F",jr="COLOR_ATTACHMENT_FLOAT",Br="COLOR_ATTACHMENT_HALF_FLOAT",Cr="GLSL_FRAG_DATA",Nr="GLSL_FRAG_DEPTH",Ur="GLSL_DERIVATIVES",zr="GLSL_TEXTURE_LOD";var Vr=(br={},y()(br,_r,[!1,!0]),y()(br,xr,["OES_vertex_array_object",!0]),y()(br,wr,["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"]),y()(br,Ar,["ANGLE_instanced_arrays",!0]),y()(br,kr,["WEBGL_draw_buffers",!0]),y()(br,Tr,["OES_element_index_uint",!0]),y()(br,Er,["EXT_blend_minmax",!0]),y()(br,Or,["EXT_float_blend"]),y()(br,Sr,["EXT_sRGB",!0]),y()(br,Pr,["WEBGL_depth_texture",!0]),y()(br,Ir,["OES_texture_float",!0]),y()(br,Lr,["OES_texture_half_float",!0]),y()(br,Rr,["OES_texture_float_linear"]),y()(br,Mr,["OES_texture_half_float_linear"]),y()(br,Dr,["EXT_texture_filter_anisotropic"]),y()(br,Fr,[function(e){var t=new Kt(e,{format:6408,type:5126,dataFormat:6408}),r=new pr(e,{id:"test-framebuffer",check:!1,attachments:y()({},36064,t)}),n=r.getStatus();return t.delete(),r.delete(),36053===n},"EXT_color_buffer_float"]),y()(br,jr,[!1,"EXT_color_buffer_float"]),y()(br,Br,["EXT_color_buffer_half_float"]),y()(br,Cr,["WEBGL_draw_buffers",!0]),y()(br,Nr,["EXT_frag_depth",!0]),y()(br,Ur,["OES_standard_derivatives",!0]),y()(br,zr,["EXT_shader_texture_lod",!0]),br);function Gr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Hr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Hr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Wr(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return Xr(e,t)}))}function Xr(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},void 0===e.luma.caps[t]&&(e.luma.caps[t]=function(e,t){var r,n=Vr[t];Ye(n,t);var i=G(e)&&n[1]||n[0];if("function"==typeof i)r=i(e);else if(Array.isArray(i)){r=!0;var a,o=Gr(i);try{for(o.s();!(a=o.n()).done;){var s=a.value;r=r&&Boolean(e.getExtension(s))}}catch(e){o.e(e)}finally{o.f()}}else"string"==typeof i?r=Boolean(e.getExtension(i)):"boolean"==typeof i?r=i:Ye(!1);return r}(e,t)),e.luma.caps[t]||U.log(2,"Feature: ".concat(t," not supported"))(),e.luma.caps[t]}function qr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Qr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Qr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Qr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function $r(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Yr=function(e){et()(r,e);var t=$r(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).target=null,n._queryPending=!1,n._pollingPromise=null,Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Query"}}],[{key:"isSupported",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=G(e),i=Wr(e,wr),a=n||i,o=qr(r);try{for(o.s();!(t=o.n()).done;){var s=t.value;switch(s){case"queries":a=a&&n;break;case"timers":a=a&&i;break;default:Ye(!1)}}}catch(e){o.e(e)}finally{o.f()}return a}}]),h()(r,[{key:"beginTimeElapsedQuery",value:function(){return this.begin(35007)}},{key:"beginOcclusionQuery",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.conservative,r=void 0!==t&&t;return this.begin(r?36202:35887)}},{key:"beginTransformFeedbackQuery",value:function(){return this.begin(35976)}},{key:"begin",value:function(e){return this._queryPending||(this.target=e,this.gl2.beginQuery(this.target,this.handle)),this}},{key:"end",value:function(){return this._queryPending||this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this}},{key:"isResultAvailable",value:function(){if(!this._queryPending)return!1;var e=this.gl2.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}},{key:"isTimerDisjoint",value:function(){return this.gl2.getParameter(36795)}},{key:"getResult",value:function(){return this.gl2.getQueryParameter(this.handle,34918)}},{key:"getTimerMilliseconds",value:function(){return this.getResult()/1e6}},{key:"createPoll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;var r=0;return this._pollingPromise=new Promise((function(n,i){requestAnimationFrame((function a(){e.isResultAvailable()?(n(e.getResult()),e._pollingPromise=null):r++>t?(i("Timed out"),e._pollingPromise=null):requestAnimationFrame(a)}))})),this._pollingPromise}},{key:"_createHandle",value:function(){return r.isSupported(this.gl)?this.gl2.createQuery():null}},{key:"_deleteHandle",value:function(){this.gl2.deleteQuery(this.handle)}}]),r}(gt);var Kr=Object(De.a)()&&"undefined"!=typeof document,Jr=0,Zr=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,e);var r=t.onCreateContext,n=void 0===r?function(e){return Ne(e)}:r,i=t.onAddHTML,a=void 0===i?null:i,o=t.onInitialize,s=void 0===o?function(){}:o,u=t.onRender,c=void 0===u?function(){}:u,f=t.onFinalize,h=void 0===f?function(){}:f,d=t.onError,v=t.gl,g=void 0===v?null:v,y=t.glOptions,m=void 0===y?{}:y,p=t.debug,b=void 0!==p&&p,_=t.createFramebuffer,x=void 0!==_&&_,w=t.autoResizeViewport,A=void 0===w||w,k=t.autoResizeDrawingBuffer,T=void 0===k||k,E=t.stats,O=void 0===E?$e.get("animation-loop-".concat(Jr++)):E,S=t.useDevicePixels,P=void 0===S||S;"useDevicePixelRatio"in t&&(U.deprecated("useDevicePixelRatio","useDevicePixels")(),P=t.useDevicePixelRatio),this.props={onCreateContext:n,onAddHTML:a,onInitialize:s,onRender:c,onFinalize:h,onError:d,gl:g,glOptions:m,debug:b,createFramebuffer:x},this.gl=g,this.needsRedraw=null,this.timeline=null,this.stats=O,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:A,autoResizeDrawingBuffer:T,useDevicePixels:P}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}var t;return h()(e,[{key:"delete",value:function(){this.stop(),this._setDisplay(null)}},{key:"setNeedsRedraw",value:function(e){return Ye("string"==typeof e),this.needsRedraw=this.needsRedraw||e,this}},{key:"setProps",value:function(e){return"autoResizeViewport"in e&&(this.autoResizeViewport=e.autoResizeViewport),"autoResizeDrawingBuffer"in e&&(this.autoResizeDrawingBuffer=e.autoResizeDrawingBuffer),"useDevicePixels"in e&&(this.useDevicePixels=e.useDevicePixels),this}},{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._running)return this;this._running=!0;var r=this._getPageLoadPromise().then((function(){return!e._running||e._initialized?null:(e._createWebGLContext(t),e._createFramebuffer(),e._startEventHandling(),e._initializeCallbackData(),e._updateCallbackData(),e._resizeCanvasDrawingBuffer(),e._resizeViewport(),e._gpuTimeQuery=Yr.isSupported(e.gl,["timers"])?new Yr(e.gl):null,e._initialized=!0,e.onInitialize(e.animationProps))})).then((function(t){e._running&&(e._addCallbackData(t||{}),!1!==t&&e._startLoop())}));return this.props.onError&&r.catch(this.props.onError),this}},{key:"redraw",value:function(){return this.isContextLost()||(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers()),this}},{key:"stop",value:function(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}},{key:"attachTimeline",value:function(e){return this.timeline=e,this.timeline}},{key:"detachTimeline",value:function(){this.timeline=null}},{key:"waitForRender",value:function(){var e=this;return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise((function(t){e._resolveNextFrame=t}))),this._nextFramePromise}},{key:"toDataURL",value:(t=u()(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setNeedsRedraw("toDataURL"),e.next=3,this.waitForRender();case 3:return e.abrupt("return",this.gl.canvas.toDataURL());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"isContextLost",value:function(){return this.gl.isContextLost()}},{key:"onCreateContext",value:function(){var e;return(e=this.props).onCreateContext.apply(e,arguments)}},{key:"onInitialize",value:function(){var e;return(e=this.props).onInitialize.apply(e,arguments)}},{key:"onRender",value:function(){var e;return(e=this.props).onRender.apply(e,arguments)}},{key:"onFinalize",value:function(){var e;return(e=this.props).onFinalize.apply(e,arguments)}},{key:"getHTMLControlValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=document.getElementById(e);return r?Number(r.value):t}},{key:"setViewParameters",value:function(){return U.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}},{key:"_startLoop",value:function(){var e=this;this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame((function t(){e._running&&(e.redraw(),e._animationFrameId=e._requestAnimationFrame(t))}))}},{key:"_getPageLoadPromise",value:function(){return this._pageLoadPromise||(this._pageLoadPromise=Kr?new Promise((function(e,t){Kr&&"complete"===document.readyState?e(document):window.addEventListener("load",(function(){e(document)}))})):Promise.resolve({})),this._pageLoadPromise}},{key:"_setDisplay",value:function(e){this.display&&(this.display.delete(),this.display.animationLoop=null),e&&(e.animationLoop=this),this.display=e}},{key:"_cancelAnimationFrame",value:function(e){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(e):(t=e,"undefined"!=typeof window&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t));var t}},{key:"_requestAnimationFrame",value:function(e){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(e):(t=e,"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60));var t}},{key:"_renderFrame",value:function(){var e;this.display?(e=this.display)._renderFrame.apply(e,arguments):this.onRender.apply(this,arguments)}},{key:"_clearNeedsRedraw",value:function(){this.needsRedraw=null}},{key:"_setupFrame",value:function(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}},{key:"_initializeCallbackData",value:function(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}},{key:"_updateCallbackData",value:function(){var e=this._getSizeAndAspect(),t=e.width,r=e.height,n=e.aspect;t===this.animationProps.width&&r===this.animationProps.height||this.setNeedsRedraw("drawing buffer resized"),n!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=t,this.animationProps.height=r,this.animationProps.aspect=n,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}},{key:"_finalizeCallbackData",value:function(){this.onFinalize(this.animationProps)}},{key:"_addCallbackData",value:function(e){"object"===i()(e)&&null!==e&&(this.animationProps=Object.assign({},this.animationProps,e))}},{key:"_createWebGLContext",value:function(e){if(this.offScreen=e.canvas&&"undefined"!=typeof OffscreenCanvas&&e.canvas instanceof OffscreenCanvas,e=Object.assign({},e,this.props.glOptions),this.gl=this.props.gl?Ue(this.props.gl,e):this.onCreateContext(e),!V(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");Le(this.gl,le),this._createInfoDiv()}},{key:"_createInfoDiv",value:function(){if(this.gl.canvas&&this.props.onAddHTML){var e=document.createElement("div");document.body.appendChild(e),e.style.position="relative";var t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",e.appendChild(this.gl.canvas),e.appendChild(t);var r=this.props.onAddHTML(t);r&&(t.innerHTML=r)}}},{key:"_getSizeAndAspect",value:function(){var e=this.gl.drawingBufferWidth,t=this.gl.drawingBufferHeight,r=1,n=this.gl.canvas;return n&&n.clientHeight?r=n.clientWidth/n.clientHeight:e>0&&t>0&&(r=e/t),{width:e,height:t,aspect:r}}},{key:"_resizeViewport",value:function(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}},{key:"_resizeCanvasDrawingBuffer",value:function(){this.autoResizeDrawingBuffer&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.canvas){var r=Fe(t.useDevicePixels);We(e,r,t)}else{var n=e.getExtension("STACKGL_resize_drawingbuffer");n&&"width"in t&&"height"in t&&n.resize(t.width,t.height)}}(this.gl,{useDevicePixels:this.useDevicePixels})}},{key:"_createFramebuffer",value:function(){this.props.createFramebuffer&&(this.framebuffer=new pr(this.gl))}},{key:"_resizeFramebuffer",value:function(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}},{key:"_beginTimers",value:function(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}},{key:"_endTimers",value:function(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}},{key:"_startEventHandling",value:function(){var e=this.gl.canvas;e&&(e.addEventListener("mousemove",this._onMousemove),e.addEventListener("mouseleave",this._onMouseleave))}},{key:"_onMousemove",value:function(e){this.animationProps._mousePosition=[e.offsetX,e.offsetY]}},{key:"_onMouseleave",value:function(e){this.animationProps._mousePosition=null}}]),e}();function en(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var tn={number:{validate:function(e,t){return Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)}},array:{validate:function(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function rn(e){var t=nn(e);return"object"===t?e?"type"in e?Object.assign({},e,tn[e.type]):"value"in e?(t=nn(e.value),Object.assign({type:t},e,tn[t])):{type:"object",value:e}:{type:"object",value:null}:Object.assign({type:t,value:e},tn[t])}function nn(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":i()(e)}var an=function(){function e(t){var r=t.name,n=t.vs,i=t.fs,a=t.dependencies,o=void 0===a?[]:a,s=t.uniforms,u=t.getUniforms,c=t.deprecations,f=void 0===c?[]:c,h=t.defines,d=void 0===h?{}:h,v=t.inject,g=void 0===v?{}:v,y=t.vertexShader,m=t.fragmentShader;l()(this,e),en("string"==typeof r),this.name=r,this.vs=n||y,this.fs=i||m,this.getModuleUniforms=u,this.dependencies=o,this.deprecations=this._parseDeprecationDefinitions(f),this.defines=d,this.injections=function(e){var t={vs:{},fs:{}};for(var r in e){var n=e[r],i=r.slice(0,2);"string"==typeof n&&(n={order:0,injection:n}),t[i][r]=n}return t}(g),s&&(this.uniforms=function(e){var t={};for(var r in e){var n=rn(e[r]);t[r]=n}return t}(s))}return h()(e,[{key:"getModuleSource",value:function(e){var t;switch(e){case"vs":t=this.vs||"";break;case"fs":t=this.fs||"";break;default:en(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),"\n").concat(t,"// END MODULE_").concat(this.name,"\n\n")}},{key:"getUniforms",value:function(e,t){return this.getModuleUniforms?this.getModuleUniforms(e,t):this.uniforms?this._defaultGetUniforms(e):{}}},{key:"getDefines",value:function(){return this.defines}},{key:"checkDeprecations",value:function(e,t){this.deprecations.forEach((function(r){r.regex.test(e)&&(r.deprecated?t.deprecated(r.old,r.new)():t.removed(r.old,r.new)())}))}},{key:"_parseDeprecationDefinitions",value:function(e){return e.forEach((function(e){switch(e.type){case"function":e.regex=new RegExp("\\b".concat(e.old,"\\("));break;default:e.regex=new RegExp("".concat(e.type," ").concat(e.old,";"))}})),e}},{key:"_defaultGetUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},r=this.uniforms;for(var n in r){var i=r[n];n in e&&!i.private?(i.validate&&en(i.validate(e[n],i),"".concat(this.name,": invalid ").concat(n)),t[n]=e[n]):t[n]=i.value}return t}}]),e}();function on(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return sn(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return sn(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function un(e){return cn(function e(t,r){return t.map((function(t){return t instanceof an||(en("string"!=typeof t,"Shader module use by name is deprecated. Import shader module '".concat(t,"' and use it directly.")),en(t.name,"shader module has no name"),(t=new an(t)).dependencies=e(t.dependencies)),t}))}(e))}function cn(e){var t={},r={};return ln({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((function(e,t){return r[t]-r[e]})).map((function(e){return t[e]}))}function ln(e){var t=e.modules,r=e.level,n=e.moduleMap,i=e.moduleDepth;if(r>=5)throw new Error("Possible loop in shader dependency graph");var a,o=on(t);try{for(o.s();!(a=o.n()).done;){var s=a.value;n[s.name]=s,(void 0===i[s.name]||i[s.name]<r)&&(i[s.name]=r)}}catch(e){o.e(e)}finally{o.f()}var u,c=on(t);try{for(c.s();!(u=c.n()).done;){var l=u.value;l.dependencies&&ln({modules:l.dependencies,level:r+1,moduleMap:n,moduleDepth:i})}}catch(e){c.e(e)}finally{c.f()}}function fn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="undefined"!=typeof window&&window.navigator||{},r=e.userAgent||t.userAgent||"",n=-1!==r.indexOf("MSIE "),i=-1!==r.indexOf("Trident/");return n||i}var hn={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},dn={};Object.keys(hn).forEach((function(e){dn[e]=e}));var vn={};function gn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=hn[t];if(en(n,t),!fn(r))return!0;if(t in vn)return vn[t];var i=n[0],a=r.behavior||"enable",o="#extension GL_".concat(i," : ").concat(a,"\nvoid main(void) {}"),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader(s);var u=e.getShaderParameter(s,35713);return e.deleteShader(s),vn[t]=u,u}function yn(e,t){var r=hn[t];en(r,t);var n=function(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}(e)&&r[1]||r[0],i="string"==typeof n?Boolean(e.getExtension(n)):n;return en(!1===i||!0===i),i}function mn(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return yn(e,t)}))}var pn,bn=(pn={},y()(pn,"vs","#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n"),y()(pn,"fs","#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n"),pn),_n=/void\s+main\s*\([^)]*\)\s*\{\n?/,xn=/}\n?[^{}]*$/,wn=[];function An(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i="vs"===t,a=function(t){var n=r[t];n.sort((function(e,t){return e.order-t.order})),wn.length=n.length;for(var a=0,o=n.length;a<o;++a)wn[a]=n[a].injection;var s="".concat(wn.join("\n"),"\n");switch(t){case"vs:#decl":i&&(e=e.replace("__LUMA_INJECT_DECLARATIONS__",s));break;case"vs:#main-start":i&&(e=e.replace(_n,(function(e){return e+s})));break;case"vs:#main-end":i&&(e=e.replace(xn,(function(e){return s+e})));break;case"fs:#decl":i||(e=e.replace("__LUMA_INJECT_DECLARATIONS__",s));break;case"fs:#main-start":i||(e=e.replace(_n,(function(e){return e+s})));break;case"fs:#main-end":i||(e=e.replace(xn,(function(e){return s+e})));break;default:e=e.replace(t,(function(e){return e+s}))}};for(var o in r)a(o);return e=e.replace("__LUMA_INJECT_DECLARATIONS__",""),n&&(e=e.replace(/\}\s*$/,(function(e){return e+bn[t]}))),e}function kn(e){var t={};return en(Array.isArray(e)&&e.length>1),e.forEach((function(e){for(var r in e)t[r]=t[r]?"".concat(t[r],"\n").concat(e[r]):e[r]})),t}function Tn(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return En(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return En(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function En(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function On(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}var Sn,Pn=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,"#version 300 es\n"],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],In=[].concat(Pn,[[On("attribute"),"in $1"],[On("varying"),"out $1"]]),Ln=[].concat(Pn,[[On("varying"),"in $1"]]),Rn=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Mn=[].concat(Rn,[[On("in"),"attribute $1"],[On("out"),"varying $1"]]),Dn=[].concat(Rn,[[On("in"),"varying $1"]]),Fn=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,jn=/void\s+main\s*\([^)]*\)\s*\{\n?/;function Bn(e,t,r){switch(t){case 300:return r?Cn(e,In):function(e){var t=(e=Cn(e,Ln)).match(Fn);if(t){var r=t[1];e=e.replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),r)}else{e=e.replace(jn,(function(e){return"out vec4 ".concat("fragmentColor",";\n").concat(e)})).replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),"fragmentColor")}return e}(e);case 100:return r?Cn(e,Mn):function(e){var t=(e=Cn(e,Dn)).match(Fn);if(t){var r=t[1];e=e.replace(Fn,"").replace(new RegExp("\\b".concat(r,"\\b"),"g"),"gl_FragColor")}return e}(e);default:throw new Error("unknown GLSL version ".concat(t))}}function Cn(e,t){var r,n=Tn(t);try{for(n.s();!(r=n.n()).done;){var i=ce()(r.value,2),a=i[0],o=i[1];e=e.replace(a,o)}}catch(e){n.e(e)}finally{n.f()}return e}function Nn(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Un(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Un(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Un(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var zn,Vn="\n\n".concat("__LUMA_INJECT_DECLARATIONS__","\n\n"),Gn=(Sn={},y()(Sn,"vs","vertex"),y()(Sn,"fs","fragment"),Sn);function Hn(e,t){var r=t.vs,n=t.fs,i=un(t.modules||[]);return{gl:e,vs:Wn(e,Object.assign({},t,{source:r,type:"vs",modules:i})),fs:Wn(e,Object.assign({},t,{source:n,type:"fs",modules:i})),getUniforms:Xn(i)}}function Wn(e,t){var r=t.id,n=t.source,i=t.type,a=t.modules,o=t.defines,s=void 0===o?{}:o,u=t.hookFunctions,c=void 0===u?[]:u,l=t.inject,f=void 0===l?{}:l,h=t.transpileToGLSL100,d=void 0!==h&&h,v=t.prologue,g=void 0===v||v,y=t.log;en("string"==typeof n,"shader source must be a string");var m="vs"===i,p=n.split("\n"),b=100,_="",x=n;0===p[0].indexOf("#version ")?(b=300,_=p[0],x=p.slice(1).join("\n")):_="#version ".concat(b);var w={};a.forEach((function(e){Object.assign(w,e.getDefines())})),Object.assign(w,s);var A=g?"".concat(_,"\n").concat(function(e){var t=e.id,r=e.source,n=e.type;return t&&"string"==typeof t&&-1===r.indexOf("SHADER_NAME")?"\n#define SHADER_NAME ".concat(t,"_").concat(Gn[n],"\n\n"):""}({id:r,source:n,type:i}),"\n").concat(function(e){var t=e.type;return"\n#define SHADER_TYPE_".concat(Gn[t].toUpperCase(),"\n")}({type:i}),"\n").concat(function(e){switch(function(e){var t=e.getExtension("WEBGL_debug_renderer_info"),r=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||7936),n=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||7937);return{gpuVendor:function(e,t){if(e.match(/NVIDIA/i)||t.match(/NVIDIA/i))return"NVIDIA";if(e.match(/INTEL/i)||t.match(/INTEL/i))return"INTEL";if(e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i))return"AMD";return"UNKNOWN GPU"}(r,n),vendor:r,renderer:n,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e).gpuVendor.toLowerCase()){case"nvidia":return"#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n";case"intel":return"#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n";case"amd":return"#define AMD_GPU\n";default:return"#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n"}}(e),"\n").concat(function(e,t,r){var n="#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n";return mn(e,dn.GLSL_FRAG_DEPTH)&&(n+="\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n"),mn(e,dn.GLSL_DERIVATIVES)&&gn(e,dn.GLSL_DERIVATIVES)&&(n+="\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n"),mn(e,dn.GLSL_FRAG_DATA)&&gn(e,dn.GLSL_FRAG_DATA,{behavior:"require"})&&(n+="\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n"),mn(e,dn.GLSL_TEXTURE_LOD)&&(n+="// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n"),n}(e),"\n").concat(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=0,r="";for(var n in e){0===t&&(r+="\n// APPLICATION DEFINES\n"),t++;var i=e[n];(i||Number.isFinite(i))&&(r+="#define ".concat(n.toUpperCase()," ").concat(e[n],"\n"))}0===t&&(r+="\n");return r}(w),"\n").concat(m?"":"precision highp float;\n\n","\n"):"".concat(_,"\n"),k=function(e){var t={vs:{},fs:{}};return e.forEach((function(e){var r;"string"!=typeof e?e=(r=e).hook:r={};var n=(e=e.trim()).split(":"),i=ce()(n,2),a=i[0],o=i[1],s=e.replace(/\(.+/,"");t[a][s]=Object.assign(r,{signature:o})})),t}(c),T={},E={},O={};for(var S in f){var P="string"==typeof f[S]?{injection:f[S],order:0}:f[S],I=S.match(/^(v|f)s:(#)?([\w-]+)$/);if(I){var L=I[2],R=I[3];L?"decl"===R?E[S]=[P]:O[S]=[P]:T[S]=[P]}else O[S]=[P]}var M,D=Nn(a);try{for(D.s();!(M=D.n()).done;){var F=M.value;y&&F.checkDeprecations(x,y),A+=F.getModuleSource(i,b);var j=F.injections[i];for(var B in j){var C=B.match(/^(v|f)s:#([\w-]+)$/);if(C){var N="decl"===C[2]?E:O;N[B]=N[B]||[],N[B].push(j[B])}else T[B]=T[B]||[],T[B].push(j[B])}}}catch(e){D.e(e)}finally{D.f()}return A=An(A+=Vn,i,E),A+=function(e,t){var r="";for(var n in e){var i=e[n];if(r+="void ".concat(i.signature," {\n"),i.header&&(r+=" ".concat(i.header)),t[n]){var a=t[n];a.sort((function(e,t){return e.order-t.order}));var o,s=Nn(a);try{for(s.s();!(o=s.n()).done;){var u=o.value;r+=" ".concat(u.injection,"\n")}}catch(e){s.e(e)}finally{s.f()}}i.footer&&(r+=" ".concat(i.footer)),r+="}\n"}return r}(k[i],T),A=Bn(A=An(A+=x,i,O),d?100:b,m)}function Xn(e){return function(t){var r,n={},i=Nn(e);try{for(i.s();!(r=i.n()).done;){var a=r.value.getUniforms(t,n);Object.assign(n,a)}}catch(e){i.e(e)}finally{i.f()}return n}}var qn=(zn={},y()(zn,5126,ui.bind(null,"uniform1fv",Zn,1,ci)),y()(zn,35664,ui.bind(null,"uniform2fv",Zn,2,ci)),y()(zn,35665,ui.bind(null,"uniform3fv",Zn,3,ci)),y()(zn,35666,ui.bind(null,"uniform4fv",Zn,4,ci)),y()(zn,5124,ui.bind(null,"uniform1iv",ei,1,ci)),y()(zn,35667,ui.bind(null,"uniform2iv",ei,2,ci)),y()(zn,35668,ui.bind(null,"uniform3iv",ei,3,ci)),y()(zn,35669,ui.bind(null,"uniform4iv",ei,4,ci)),y()(zn,35670,ui.bind(null,"uniform1iv",ei,1,ci)),y()(zn,35671,ui.bind(null,"uniform2iv",ei,2,ci)),y()(zn,35672,ui.bind(null,"uniform3iv",ei,3,ci)),y()(zn,35673,ui.bind(null,"uniform4iv",ei,4,ci)),y()(zn,35674,ui.bind(null,"uniformMatrix2fv",Zn,4,li)),y()(zn,35675,ui.bind(null,"uniformMatrix3fv",Zn,9,li)),y()(zn,35676,ui.bind(null,"uniformMatrix4fv",Zn,16,li)),y()(zn,35678,si),y()(zn,35680,si),y()(zn,5125,ui.bind(null,"uniform1uiv",ti,1,ci)),y()(zn,36294,ui.bind(null,"uniform2uiv",ti,2,ci)),y()(zn,36295,ui.bind(null,"uniform3uiv",ti,3,ci)),y()(zn,36296,ui.bind(null,"uniform4uiv",ti,4,ci)),y()(zn,35685,ui.bind(null,"uniformMatrix2x3fv",Zn,6,li)),y()(zn,35686,ui.bind(null,"uniformMatrix2x4fv",Zn,8,li)),y()(zn,35687,ui.bind(null,"uniformMatrix3x2fv",Zn,6,li)),y()(zn,35688,ui.bind(null,"uniformMatrix3x4fv",Zn,12,li)),y()(zn,35689,ui.bind(null,"uniformMatrix4x2fv",Zn,8,li)),y()(zn,35690,ui.bind(null,"uniformMatrix4x3fv",Zn,12,li)),y()(zn,35678,si),y()(zn,35680,si),y()(zn,35679,si),y()(zn,35682,si),y()(zn,36289,si),y()(zn,36292,si),y()(zn,36293,si),y()(zn,36298,si),y()(zn,36299,si),y()(zn,36300,si),y()(zn,36303,si),y()(zn,36306,si),y()(zn,36307,si),y()(zn,36308,si),y()(zn,36311,si),zn),Qn={},$n={},Yn={},Kn=[0];function Jn(e,t,r,n){1===t&&"boolean"==typeof e&&(e=e?1:0),Number.isFinite(e)&&(Kn[0]=e,e=Kn);var i=e.length;if(i%t&&U.warn("Uniform size should be multiples of ".concat(t),e)(),e instanceof r)return e;var a=n[i];a||(a=new r(i),n[i]=a);for(var o=0;o<i;o++)a[o]=e[o];return a}function Zn(e,t){return Jn(e,t,Float32Array,Qn)}function ei(e,t){return Jn(e,t,Int32Array,$n)}function ti(e,t){return Jn(e,t,Uint32Array,Yn)}function ri(e,t,r){var n=qn[r.type];if(!n)throw new Error("Unknown GLSL uniform type ".concat(r.type));return n().bind(null,e,t)}function ni(e){if("]"!==e[e.length-1])return{name:e,length:1,isArray:!1};var t=e.match(/([^[]*)(\[[0-9]+\])?/);if(!t||t.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:t[1],length:t[2]||1,isArray:Boolean(t[2])}}function ii(e,t,r){for(var n in e){var i=e[n];if((!r||Boolean(r[n]))&&!ai(i))throw t=t?"".concat(t," "):"",console.error("".concat(t," Bad uniform ").concat(n),i),new Error("".concat(t," Bad uniform ").concat(n))}return!0}function ai(e){return Array.isArray(e)||ArrayBuffer.isView(e)?function(e){if(0===e.length)return!1;for(var t=Math.min(e.length,16),r=0;r<t;++r)if(!Number.isFinite(e[r]))return!1;return!0}(e):!!isFinite(e)||(!0===e||!1===e||(e instanceof Xt||(e instanceof rr||e instanceof pr&&Boolean(e.texture))))}function oi(e,t,r){if(Array.isArray(r)||ArrayBuffer.isView(r))if(e[t])for(var n=e[t],i=0,a=r.length;i<a;++i)n[i]=r[i];else e[t]=r.slice();else e[t]=r}function si(){var e=null;return function(t,r,n){var i=e!==n;return i&&(t.uniform1i(r,n),e=n),i}}function ui(e,t,r,n){var i=null,a=null;return function(o,s,u){var c=t(u,r),l=c.length,f=!1;if(null===i)i=new Float32Array(l),a=l,f=!0;else{Ye(a===l,"Uniform length cannot change.");for(var h=0;h<l;++h)if(c[h]!==i[h]){f=!0;break}}return f&&(n(o,e,s,c),i.set(c)),f}}function ci(e,t,r,n){e[t](r,n)}function li(e,t,r,n){e[t](r,!1,n)}function fi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unnamed",r=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,n=e.match(r);return n?n[1]:t}function hi(e,t,r,n){for(var i=e.split(/\r?\n/),a={},o={},s=n||fi(t)||"(unnamed)",u="".concat(function(e){switch(e){case 35632:return"fragment";case 35633:return"vertex";default:return"unknown type"}}(r)," shader ").concat(s),c=0;c<i.length;c++){var l=i[c];if(!(l.length<=1)){var f=l.split(":"),h=f[0],d=parseInt(f[2],10);if(isNaN(d))throw new Error("GLSL compilation error in ".concat(u,": ").concat(e));"WARNING"!==h?a[d]=l:o[d]=l}}var v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:": ",n=e.split(/\r?\n/),i=String(n.length+t-1).length;return n.map((function(e,n){var a=String(n+t),o=a.length;return vi(a,i-o)+r+e}))}(t);return{shaderName:u,errors:di(a,v),warnings:di(o,v)}}function di(e,t){for(var r="",n=0;n<t.length;n++){var i=t[n];if((e[n+3]||e[n+2]||e[n+1])&&(r+="".concat(i,"\n"),e[n+1])){var a=e[n+1],o=a.split(":",3),s=o[0],u=parseInt(o[1],10)||0,c=a.substring(o.join(":").length+1).trim();r+=vi("^^^ ".concat(s,": ").concat(c,"\n\n"),u)}}return r}function vi(e,t){for(var r="",n=0;n<t;++n)r+=" ";return"".concat(r).concat(e)}function gi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var yi,mi=function(e){et()(r,e);var t=gi(r);function r(e,n){var i;l()(this,r),H(e),Ye("string"==typeof n.source,"Shader: GLSL source code must be a JavaScript string");var a=fi(n.source,null)||n.id||ut("unnamed ".concat(r.getTypeName(n.shaderType)));return(i=t.call(this,e,{id:a})).shaderType=n.shaderType,i.source=n.source,i.initialize(n),i}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Shader"}}],[{key:"getTypeName",value:function(e){switch(e){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return Ye(!1),"unknown"}}}]),h()(r,[{key:"initialize",value:function(e){var t=e.source,r=fi(t,null);r&&(this.id=ut(r)),this._compile(t)}},{key:"getParameter",value:function(e){return this.gl.getShaderParameter(this.handle,e)}},{key:"toString",value:function(){return"".concat(r.getTypeName(this.shaderType),":").concat(this.id)}},{key:"getName",value:function(){return fi(this.source)||"unnamed-shader"}},{key:"getSource",value:function(){return this.gl.getShaderSource(this.handle)}},{key:"getTranslatedSource",value:function(){var e=this.gl.getExtension("WEBGL_debug_shaders");return e?e.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}},{key:"_compile",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.source;e.startsWith("#version ")||(e="#version 100\n".concat(e)),this.source=e,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle);var t=this.getParameter(35713);if(!t){var r=this.gl.getShaderInfoLog(this.handle),n=hi(r,this.source,this.shaderType,this.id),i=n.shaderName,a=n.errors,o=n.warnings;throw U.error("GLSL compilation errors in ".concat(i,"\n").concat(a))(),U.warn("GLSL compilation warnings in ".concat(i,"\n").concat(o))(),new Error("GLSL compilation errors in ".concat(i))}}},{key:"_deleteHandle",value:function(){this.gl.deleteShader(this.handle)}},{key:"_getOptsFromHandle",value:function(){return{type:this.getParameter(35663),source:this.getSource()}}}]),r}(gt),pi=function(e){et()(r,e);var t=gi(r);function r(e,n){return l()(this,r),"string"==typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35633}))}return h()(r,[{key:Symbol.toStringTag,get:function(){return"VertexShader"}}]),h()(r,[{key:"_createHandle",value:function(){return this.gl.createShader(35633)}}]),r}(mi),bi=function(e){et()(r,e);var t=gi(r);function r(e,n){return l()(this,r),"string"==typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35632}))}return h()(r,[{key:Symbol.toStringTag,get:function(){return"FragmentShader"}}]),h()(r,[{key:"_createHandle",value:function(){return this.gl.createShader(35632)}}]),r}(mi),_i=(yi={},y()(yi,5126,[5126,1,"float"]),y()(yi,35664,[5126,2,"vec2"]),y()(yi,35665,[5126,3,"vec3"]),y()(yi,35666,[5126,4,"vec4"]),y()(yi,5124,[5124,1,"int"]),y()(yi,35667,[5124,2,"ivec2"]),y()(yi,35668,[5124,3,"ivec3"]),y()(yi,35669,[5124,4,"ivec4"]),y()(yi,5125,[5125,1,"uint"]),y()(yi,36294,[5125,2,"uvec2"]),y()(yi,36295,[5125,3,"uvec3"]),y()(yi,36296,[5125,4,"uvec4"]),y()(yi,35670,[5126,1,"bool"]),y()(yi,35671,[5126,2,"bvec2"]),y()(yi,35672,[5126,3,"bvec3"]),y()(yi,35673,[5126,4,"bvec4"]),y()(yi,35674,[5126,8,"mat2"]),y()(yi,35685,[5126,8,"mat2x3"]),y()(yi,35686,[5126,8,"mat2x4"]),y()(yi,35675,[5126,12,"mat3"]),y()(yi,35687,[5126,12,"mat3x2"]),y()(yi,35688,[5126,12,"mat3x4"]),y()(yi,35676,[5126,16,"mat4"]),y()(yi,35689,[5126,16,"mat4x2"]),y()(yi,35690,[5126,16,"mat4x3"]),yi);function xi(e){switch(e){case 0:return 0;case 1:case 3:case 2:return 1;case 4:case 5:case 6:return 4;default:return Ye(!1),0}}function wi(e){var t=_i[e];if(!t)return null;var r=ce()(t,2);return{type:r[0],components:r[1]}}function Ai(e,t){switch(e){case 5120:case 5121:case 5122:case 5123:e=5126}for(var r in _i){var n=ce()(_i[r],3),i=n[0],a=n[1],o=n[2];if(i===e&&a===t)return{glType:r,name:o}}return null}var ki=function(){function e(t){l()(this,e),this.id=t.id,this.attributeInfos=[],this.attributeInfosByName={},this.attributeInfosByLocation=[],this.varyingInfos=[],this.varyingInfosByName={},Object.seal(this),this._readAttributesFromProgram(t),this._readVaryingsFromProgram(t)}return h()(e,[{key:"getAttributeInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.attributeInfosByLocation[t]:this.attributeInfosByName[e]||null}},{key:"getAttributeLocation",value:function(e){var t=this.getAttributeInfo(e);return t?t.location:-1}},{key:"getAttributeAccessor",value:function(e){var t=this.getAttributeInfo(e);return t?t.accessor:null}},{key:"getVaryingInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.varyingInfos[t]:this.varyingInfosByName[e]||null}},{key:"getVaryingIndex",value:function(e){var t=this.getVaryingInfo();return t?t.location:-1}},{key:"getVaryingAccessor",value:function(e){var t=this.getVaryingInfo();return t?t.accessor:null}},{key:"_readAttributesFromProgram",value:function(e){for(var t=e.gl,r=t.getProgramParameter(e.handle,35721),n=0;n<r;n++){var i=t.getActiveAttrib(e.handle,n),a=i.name,o=i.type,s=i.size,u=t.getAttribLocation(e.handle,a);u>=0&&this._addAttribute(u,a,o,s)}this.attributeInfos.sort((function(e,t){return e.location-t.location}))}},{key:"_readVaryingsFromProgram",value:function(e){var t=e.gl;if(G(t)){for(var r=t.getProgramParameter(e.handle,35971),n=0;n<r;n++){var i=t.getTransformFeedbackVarying(e.handle,n),a=i.name,o=i.type,s=i.size;this._addVarying(n,a,o,s)}this.varyingInfos.sort((function(e,t){return e.location-t.location}))}}},{key:"_addAttribute",value:function(e,t,r,n){var i=wi(r),a={type:i.type,size:n*i.components};this._inferProperties(e,t,a);var o={location:e,name:t,accessor:new Ot(a)};this.attributeInfos.push(o),this.attributeInfosByLocation[e]=o,this.attributeInfosByName[o.name]=o}},{key:"_inferProperties",value:function(e,t,r){/instance/i.test(t)&&(r.divisor=1)}},{key:"_addVarying",value:function(e,t,r,n){var i=wi(r),a=i.type,o=i.components,s={location:e,name:t,accessor:new Ot({type:a,size:n*o})};this.varyingInfos.push(s),this.varyingInfosByName[s.name]=s}}]),e}();function Ti(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Ei(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ei(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ei(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Oi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Si=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"],Pi=function(e){et()(r,e);var t=Oi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).stubRemovedMethods("Program","v6.0",Si),n._isCached=!1,n.initialize(i),Object.seal(Je()(n)),n._setId(i.id),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Program"}}]),h()(r,[{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hash,r=e.vs,n=e.fs,i=e.varyings,a=e.bufferMode,o=void 0===a?35981:a;return this.hash=t||"",this.vs="string"==typeof r?new pi(this.gl,{id:"".concat(e.id,"-vs"),source:r}):r,this.fs="string"==typeof n?new bi(this.gl,{id:"".concat(e.id,"-fs"),source:n}):n,Ye(this.vs instanceof pi),Ye(this.fs instanceof bi),this.uniforms={},this._textureUniforms={},i&&i.length>0&&(W(this.gl),this.varyings=i,this.gl2.transformFeedbackVaryings(this.handle,i,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new ki(this),this.setProps(e)}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isCached?this:mt()(it()(r.prototype),"delete",this).call(this,e)}},{key:"setProps",value:function(e){return"uniforms"in e&&this.setUniforms(e.uniforms),this}},{key:"draw",value:function(e){var t=this,r=e.logPriority,n=e.drawMode,i=void 0===n?4:n,a=e.vertexCount,o=e.offset,s=void 0===o?0:o,u=e.start,c=e.end,l=e.isIndexed,f=void 0!==l&&l,h=e.indexType,d=void 0===h?5123:h,v=e.instanceCount,g=void 0===v?0:v,y=e.isInstanced,m=void 0===y?g>0:y,p=e.vertexArray,b=void 0===p?null:p,_=e.transformFeedback,x=e.framebuffer,w=e.parameters,A=void 0===w?{}:w,k=e.uniforms,T=e.samplers;if((k||T)&&(U.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(k||{})),U.priority>=r){var E=x?x.id:"default",O="mode=".concat(ot(this.gl,i)," verts=").concat(a," ")+"instances=".concat(g," indexType=").concat(ot(this.gl,d)," ")+"isInstanced=".concat(m," isIndexed=").concat(f," ")+"Framebuffer=".concat(E);U.log(r,O)()}return Ye(b),this.gl.useProgram(this.handle),!(!this._areTexturesRenderable()||0===a||m&&0===g)&&(b.bindForDraw(a,g,(function(){if(void 0!==x&&(A=Object.assign({},A,{framebuffer:x})),_){var e=xi(i);_.begin(e)}t._bindTextures(),Me(t.gl,A,(function(){f&&m?t.gl2.drawElementsInstanced(i,a,d,s,g):f&&G(t.gl)&&!isNaN(u)&&!isNaN(c)?t.gl2.drawRangeElements(i,u,c,a,d,s):f?t.gl.drawElements(i,a,d,s):m?t.gl2.drawArraysInstanced(i,s,a,g):t.gl.drawArrays(i,s,a)})),_&&_.end()})),!0)}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in U.priority>=2&&ii(e,this.id,this._uniformSetters),this.gl.useProgram(this.handle),e){var r=e[t],n=this._uniformSetters[t];if(n){var i=r,a=!1;if(i instanceof pr&&(i=i.texture),i instanceof Xt)if(a=this.uniforms[t]!==r){void 0===n.textureIndex&&(n.textureIndex=this._textureIndexCounter++);var o=i,s=n.textureIndex;o.bind(s),i=s,this._textureUniforms[t]=o}else i=n.textureIndex;else this._textureUniforms[t]&&delete this._textureUniforms[t];(n(i)||a)&&oi(this.uniforms,t,r)}}return this}},{key:"_areTexturesRenderable",value:function(){var e=!0;for(var t in this._textureUniforms){var r=this._textureUniforms[t];r.update(),e=e&&r.loaded}return e}},{key:"_bindTextures",value:function(){for(var e in this._textureUniforms){var t=this._uniformSetters[e].textureIndex;this._textureUniforms[e].bind(t)}}},{key:"_createHandle",value:function(){return this.gl.createProgram()}},{key:"_deleteHandle",value:function(){this.gl.deleteProgram(this.handle)}},{key:"_getOptionsFromHandle",value:function(e){var t,r={},n=Ti(this.gl.getAttachedShaders(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:r.vs=new pi({handle:i});break;case 35632:r.fs=new bi({handle:i})}}}catch(e){n.e(e)}finally{n.f()}return r}},{key:"_getParameter",value:function(e){return this.gl.getProgramParameter(this.handle,e)}},{key:"_setId",value:function(e){if(!e){var t=this._getName();this.id=ut(t)}}},{key:"_getName",value:function(){var e=this.vs.getName()||this.fs.getName();return e=(e=e.replace(/shader/i,""))?"".concat(e,"-program"):"program"}},{key:"_compileAndLink",value:function(){var e=this.gl;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),U.time(4,"linkProgram for ".concat(this._getName()))(),e.linkProgram(this.handle),U.timeEnd(4,"linkProgram for ".concat(this._getName()))(),e.debug||U.level>0){if(!e.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat(e.getProgramInfoLog(this.handle)));if(e.validateProgram(this.handle),!e.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat(e.getProgramInfoLog(this.handle)))}}},{key:"_readUniformLocationsFromLinkedProgram",value:function(){var e=this.gl;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(var t=0;t<this._uniformCount;t++){var r=this.gl.getActiveUniform(this.handle,t),n=ni(r.name).name,i=e.getUniformLocation(this.handle,n);if(this._uniformSetters[n]=ri(e,i,r),r.size>1)for(var a=0;a<r.size;a++)i=e.getUniformLocation(this.handle,"".concat(n,"[").concat(a,"]")),this._uniformSetters["".concat(n,"[").concat(a,"]")]=ri(e,i,r)}this._textureIndexCounter=0}},{key:"getActiveUniforms",value:function(e,t){return this.gl2.getActiveUniforms(this.handle,e,t)}},{key:"getUniformBlockIndex",value:function(e){return this.gl2.getUniformBlockIndex(this.handle,e)}},{key:"getActiveUniformBlockParameter",value:function(e,t){return this.gl2.getActiveUniformBlockParameter(this.handle,e,t)}},{key:"uniformBlockBinding",value:function(e,t){this.gl2.uniformBlockBinding(this.handle,e,t)}}]),r}(gt);function Ii(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Li(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Li(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Li(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Ri=function(){function e(t){l()(this,e),this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}return h()(e,null,[{key:"getDefaultProgramManager",value:function(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}}]),h()(e,[{key:"addDefaultModule",value:function(e){this._defaultModules.find((function(t){return t.name===e.name}))||this._defaultModules.push(e),this.stateHash++}},{key:"removeDefaultModule",value:function(e){var t="string"==typeof e?e:e.name;this._defaultModules=this._defaultModules.filter((function(e){return e.name!==t})),this.stateHash++}},{key:"addShaderHook",value:function(e,t){t&&(e=Object.assign(t,{hook:e})),this._hookFunctions.push(e),this.stateHash++}},{key:"get",value:function(){var e,t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.vs,i=void 0===n?"":n,a=r.fs,o=void 0===a?"":a,s=r.defines,u=void 0===s?{}:s,c=r.inject,l=void 0===c?{}:c,f=r.varyings,h=void 0===f?[]:f,d=r.bufferMode,v=void 0===d?35981:d,g=r.transpileToGLSL100,y=void 0!==g&&g,m=this._getModuleList(r.modules),p=this._getHash(i),b=this._getHash(o),_=m.map((function(e){return t._getHash(e.name)})).sort(),x=h.map((function(e){return t._getHash(e)})),w=Object.keys(u).sort(),A=Object.keys(l).sort(),k=[],T=[],E=Ii(w);try{for(E.s();!(e=E.n()).done;){var O=e.value;k.push(this._getHash(O)),k.push(this._getHash(u[O]))}}catch(e){E.e(e)}finally{E.f()}var S,P=Ii(A);try{for(P.s();!(S=P.n()).done;){var I=S.value;T.push(this._getHash(I)),T.push(this._getHash(l[I]))}}catch(e){P.e(e)}finally{P.f()}var L="".concat(p,"/").concat(b,"D").concat(k.join("/"),"M").concat(_.join("/"),"I").concat(T.join("/"),"V").concat(x.join("/"),"H").concat(this.stateHash,"B").concat(v).concat(y?"T":"");if(!this._programCache[L]){var R=Hn(this.gl,{vs:i,fs:o,modules:m,inject:l,defines:u,hookFunctions:this._hookFunctions,transpileToGLSL100:y});this._programCache[L]=new Pi(this.gl,{hash:L,vs:R.vs,fs:R.fs,varyings:h,bufferMode:v}),this._getUniforms[L]=R.getUniforms||function(e){},this._useCounts[L]=0}return this._useCounts[L]++,this._programCache[L]}},{key:"getUniforms",value:function(e){return this._getUniforms[e.hash]||null}},{key:"release",value:function(e){var t=e.hash;this._useCounts[t]--,0===this._useCounts[t]&&(this._programCache[t].delete(),delete this._programCache[t],delete this._getUniforms[t],delete this._useCounts[t])}},{key:"_getHash",value:function(e){return void 0===this._hashes[e]&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}},{key:"_getModuleList",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Array(this._defaultModules.length+e.length),r={},n=0,i=0,a=this._defaultModules.length;i<a;++i){var o=this._defaultModules[i],s=o.name;t[n++]=o,r[s]=!0}for(var u=0,c=e.length;u<c;++u){var l=e[u],f=l.name;r[f]||(t[n++]=l,r[f]=!0)}return t.length=n,t}}]),e}(),Mi=null;function Di(e,t){var r;return new e((r=e.BYTES_PER_ELEMENT*t,(!Mi||Mi.byteLength<r)&&(Mi=new ArrayBuffer(r)),Mi),0,t)}var Fi=r(19);function ji(e){if(!e&&!Object(m.a)())return"Node";if(Object(Fi.a)(e))return"Electron";var t="undefined"!=typeof navigator?navigator:{},r=e||t.userAgent||"";if(r.indexOf("Edge")>-1)return"Edge";var n=-1!==r.indexOf("MSIE "),i=-1!==r.indexOf("Trident/");return n||i?"IE":S.b.chrome?"Chrome":S.b.safari?"Safari":S.b.mozInnerScreenX?"Firefox":"Unknown"}function Bi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Ci="elements must be GL.ELEMENT_ARRAY_BUFFER",Ni=function(e){et()(r,e);var t=Bi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,r);var a=i.id||i.program&&i.program.id;return(n=t.call(this,e,Object.assign({},i,{id:a}))).buffer=null,n.bufferValue=null,n.isDefaultArray=i.isDefaultArray||!1,n.gl2=e,n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"VertexArrayObject"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!t.constantAttributeZero||(G(e)||"Chrome"===ji())}},{key:"getDefaultArray",value:function(e){return e.luma=e.luma||{},e.luma.defaultVertexArray||(e.luma.defaultVertexArray=new r(e,{handle:null,isDefaultArray:!0})),e.luma.defaultVertexArray}},{key:"getMaxAttributes",value:function(e){return r.MAX_ATTRIBUTES=r.MAX_ATTRIBUTES||e.getParameter(34921),r.MAX_ATTRIBUTES}},{key:"setConstant",value:function(e,t,n){switch(n.constructor){case Float32Array:r._setConstantFloatArray(e,t,n);break;case Int32Array:r._setConstantIntArray(e,t,n);break;case Uint32Array:r._setConstantUintArray(e,t,n);break;default:Ye(!1)}}}]),h()(r,[{key:"delete",value:function(){return mt()(it()(r.prototype),"delete",this).call(this),this.buffer&&this.buffer.delete(),this}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setProps(e)}},{key:"setProps",value:function(e){return this}},{key:"setElementBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return Ye(!t||34963===t.target,Ci),this.bind((function(){e.gl.bindBuffer(34963,t?t.handle:null)})),this}},{key:"setBuffer",value:function(e,t,r){if(34963===t.target)return this.setElementBuffer(t,r);var n=r.size,i=r.type,a=r.stride,o=r.offset,s=r.normalized,u=r.integer,c=r.divisor,l=this.gl,f=this.gl2;return e=Number(e),this.bind((function(){l.bindBuffer(34962,t.handle),u?(Ye(G(l)),f.vertexAttribIPointer(e,n,i,a,o)):l.vertexAttribPointer(e,n,i,s,a,o),l.enableVertexAttribArray(e),f.vertexAttribDivisor(e,c||0)})),this}},{key:"enable",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!n&&0===e&&!r.isSupported(this.gl,{constantAttributeZero:!0});return i||(e=Number(e),this.bind((function(){return n?t.gl.enableVertexAttribArray(e):t.gl.disableVertexAttribArray(e)}))),this}},{key:"getConstantBuffer",value:function(e,t){var r=this._normalizeConstantArrayValue(t),n=r.byteLength*e,i=r.length*e,a=!this.buffer;if(this.buffer=this.buffer||new Ft(this.gl,n),a=(a=a||this.buffer.reallocate(n))||!this._compareConstantArrayValues(r,this.bufferValue)){var o=Di(t.constructor,i);!function(e){for(var t=e.target,r=e.source,n=e.start,i=void 0===n?0:n,a=e.count,o=void 0===a?1:a,s=r.length,u=o*s,c=0,l=i;c<s;c++)t[l++]=r[c];for(;c<u;)c<u-c?(t.copyWithin(i+c,i,i+c),c*=2):(t.copyWithin(i+c,i,i+u-c),c=u)}({target:o,source:r,start:0,count:i}),this.buffer.subData(o),this.bufferValue=t}return this.buffer}},{key:"_normalizeConstantArrayValue",value:function(e){return Array.isArray(e)?new Float32Array(e):e}},{key:"_compareConstantArrayValues",value:function(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}},{key:"_createHandle",value:function(){return this.gl.createVertexArray()}},{key:"_deleteHandle",value:function(e){return this.gl2.deleteVertexArray(e),[this.elements]}},{key:"_bindHandle",value:function(e){this.gl2.bindVertexArray(e)}},{key:"_getParameter",value:function(e,t){var r=this,n=t.location;return Ye(Number.isFinite(n)),this.bind((function(){switch(e){case 34373:return r.gl.getVertexAttribOffset(n,e);default:return r.gl.getVertexAttrib(n,e)}}))}},{key:"MAX_ATTRIBUTES",get:function(){return r.getMaxAttributes(this.gl)}}],[{key:"_setConstantFloatArray",value:function(e,t,r){switch(r.length){case 1:e.vertexAttrib1fv(t,r);break;case 2:e.vertexAttrib2fv(t,r);break;case 3:e.vertexAttrib3fv(t,r);break;case 4:e.vertexAttrib4fv(t,r);break;default:Ye(!1)}}},{key:"_setConstantIntArray",value:function(e,t,r){switch(Ye(G(e)),r.length){case 1:e.vertexAttribI1iv(t,r);break;case 2:e.vertexAttribI2iv(t,r);break;case 3:e.vertexAttribI3iv(t,r);break;case 4:e.vertexAttribI4iv(t,r);break;default:Ye(!1)}}},{key:"_setConstantUintArray",value:function(e,t,r){switch(Ye(G(e)),r.length){case 1:e.vertexAttribI1uiv(t,r);break;case 2:e.vertexAttribI2uiv(t,r);break;case 3:e.vertexAttribI3uiv(t,r);break;case 4:e.vertexAttribI4uiv(t,r);break;default:Ye(!1)}}}]),r}(gt),Ui=/^(.+)__LOCATION_([0-9]+)$/,zi=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"],Vi=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e);var n=r.id||r.program&&r.program.id;this.id=n,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new Ni(t),ft(this,"VertexArray","v6.0",zi),this.initialize(r),Object.seal(this)}return h()(e,[{key:"delete",value:function(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(e)}},{key:"reset",value:function(){this.elements=null,this.elementsAccessor=null;var e=this.vertexArrayObject.MAX_ATTRIBUTES;return this.values=new Array(e).fill(null),this.accessors=new Array(e).fill(null),this.unused={},this.drawParams=null,this}},{key:"setProps",value:function(e){return"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"attributes"in e&&this.setAttributes(e.attributes),"elements"in e&&this.setElementBuffer(e.elements),"bindOnUse"in e&&(e=e.bindOnUse),this}},{key:"clearDrawParams",value:function(){this.drawParams=null}},{key:"getDrawParams",value:function(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}},{key:"setAttributes",value:function(e){var t=this;return Object.assign(this.attributes,e),this.vertexArrayObject.bind((function(){for(var r in e){var n=e[r];t._setAttribute(r,n)}t.gl.bindBuffer(34962,null)})),this}},{key:"setElementBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.elements=e,this.elementsAccessor=t,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(e,t),this}},{key:"setBuffer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(34963===t.target)return this.setElementBuffer(t,r);var n=this._resolveLocationAndAccessor(e,t,t.accessor,r),i=n.location,a=n.accessor;return i>=0&&(this.values[i]=t,this.accessors[i]=a,this.clearDrawParams(),this.vertexArrayObject.setBuffer(i,t,a)),this}},{key:"setConstant",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this._resolveLocationAndAccessor(e,t,Object.assign({size:t.length},r)),i=n.location,a=n.accessor;return i>=0&&(t=this.vertexArrayObject._normalizeConstantArrayValue(t),this.values[i]=t,this.accessors[i]=a,this.clearDrawParams(),this.vertexArrayObject.enable(i,!1)),this}},{key:"unbindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.vertexArrayObject.setElementBuffer(null),e.buffer=e.buffer||new Ft(e.gl,{accessor:{size:4}});for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++)e.values[t]instanceof Ft&&(e.gl.disableVertexAttribArray(t),e.gl.bindBuffer(34962,e.buffer.handle),e.gl.vertexAttribPointer(t,1,5126,!1,0,0))})),this}},{key:"bindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.setElementBuffer(e.elements);for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++){var r=e.values[t];r instanceof Ft&&e.setBuffer(t,r)}})),this}},{key:"bindForDraw",value:function(e,t,r){var n,i=this;return this.vertexArrayObject.bind((function(){i._setConstantAttributes(e,t),n=r()})),n}},{key:"_resolveLocationAndAccessor",value:function(e,t,r,n){var i=this,a={location:-1,accessor:null},o=this._getAttributeIndex(e),s=o.location,u=o.name;if(!Number.isFinite(s)||s<0)return this.unused[e]=t,U.once(3,(function(){return"unused value ".concat(e," in ").concat(i.id)}))(),a;var c=this._getAttributeInfo(u||s);if(!c)return a;var l=this.accessors[s]||{},f=Ot.resolve(c.accessor,l,r,n),h=f.size,d=f.type;return Ye(Number.isFinite(h)&&Number.isFinite(d)),{location:s,accessor:f}}},{key:"_getAttributeInfo",value:function(e){return this.configuration&&this.configuration.getAttributeInfo(e)}},{key:"_getAttributeIndex",value:function(e){var t=Number(e);if(Number.isFinite(t))return{location:t};var r=Ui.exec(e),n=r?r[1]:e,i=r?Number(r[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+i,name:n}:{location:-1}}},{key:"_setAttribute",value:function(e,t){if(t instanceof Ft)this.setBuffer(e,t);else if(Array.isArray(t)&&t.length&&t[0]instanceof Ft){var r=t[0],n=t[1];this.setBuffer(e,r,n)}else if(ArrayBuffer.isView(t)||Array.isArray(t)){var i=t;this.setConstant(e,i)}else{if(!(t.buffer instanceof Ft))throw new Error("VertexArray: attributes must be Buffers or constants (i.e. typed array)");var a=t;this.setBuffer(e,a.buffer,a)}}},{key:"_setConstantAttributes",value:function(e,t){var r=Math.max(0|e,0|t),n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,r);for(var i=1;i<this.vertexArrayObject.MAX_ATTRIBUTES;i++)n=this.values[i],ArrayBuffer.isView(n)&&this._setConstantAttribute(i,n)}},{key:"_setConstantAttributeZero",value:function(e,t){if(Ni.isSupported(this.gl,{constantAttributeZero:!0}))this._setConstantAttribute(0,e);else{var r=this.vertexArrayObject.getConstantBuffer(t,e);this.vertexArrayObject.setBuffer(0,r,this.accessors[0])}}},{key:"_setConstantAttribute",value:function(e,t){Ni.setConstant(this.gl,e,t)}},{key:"_updateDrawParams",value:function(){for(var e={isIndexed:!1,isInstanced:!1,indexCount:1/0,vertexCount:1/0,instanceCount:1/0},t=0;t<this.vertexArrayObject.MAX_ATTRIBUTES;t++)this._updateDrawParamsForLocation(e,t);return this.elements&&(e.elementCount=this.elements.getElementCount(this.elements.accessor),e.isIndexed=!0,e.indexType=this.elementsAccessor.type||this.elements.accessor.type,e.indexOffset=this.elementsAccessor.offset||0),e.indexCount===1/0&&(e.indexCount=0),e.vertexCount===1/0&&(e.vertexCount=0),e.instanceCount===1/0&&(e.instanceCount=0),e}},{key:"_updateDrawParamsForLocation",value:function(e,t){var r=this.values[t],n=this.accessors[t];if(r){var i=n.divisor>0;if(e.isInstanced=e.isInstanced||i,r instanceof Ft){var a=r;if(i){var o=a.getVertexCount(n);e.instanceCount=Math.min(e.instanceCount,o)}else{var s=a.getVertexCount(n);e.vertexCount=Math.min(e.vertexCount,s)}}}}},{key:"setElements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return U.deprecated("setElements","setElementBuffer")(),this.setElementBuffer(e,t)}}]),e}();function Gi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Hi=function(e){et()(r,e);var t=Gi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),W(e),(n=t.call(this,e,i)).initialize(i),n.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"TransformFeedback"}}],[{key:"isSupported",value:function(e){return G(e)}}]),h()(r,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,lt(this.buffers)||this.bind((function(){return e._unbindBuffers()})),this.setProps(t),this}},{key:"setProps",value:function(e){"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"bindOnUse"in e&&(e=e.bindOnUse),"buffers"in e&&this.setBuffers(e.buffers)}},{key:"setBuffers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.bind((function(){for(var r in t)e.setBuffer(r,t[r])})),this}},{key:"setBuffer",value:function(e,t){var r=this,n=this._getVaryingIndex(e),i=this._getBufferParams(t),a=i.buffer,o=i.byteSize,s=i.byteOffset;return n<0?(this.unused[e]=a,U.warn((function(){return"".concat(r.id," unused varying buffer ").concat(e)}))(),this):(this.buffers[n]=t,this.bindOnUse||this._bindBuffer(n,a,s,o),this)}},{key:"begin",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(e),this}},{key:"end",value:function(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}},{key:"_getBufferParams",value:function(e){var t,r,n;return e instanceof Ft==!1?(n=e.buffer,r=e.byteSize,t=e.byteOffset):n=e,void 0===t&&void 0===r||(t=t||0,r=r||n.byteLength-t),{buffer:n,byteOffset:t,byteSize:r}}},{key:"_getVaryingInfo",value:function(e){return this.configuration&&this.configuration.getVaryingInfo(e)}},{key:"_getVaryingIndex",value:function(e){if(this.configuration)return this.configuration.getVaryingInfo(e).location;var t=Number(e);return Number.isFinite(t)?t:-1}},{key:"_bindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers){var t=this._getBufferParams(this.buffers[e]),r=t.buffer,n=t.byteSize,i=t.byteOffset;this._bindBuffer(e,r,i,n)}}},{key:"_unbindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers)this._bindBuffer(e,null)}},{key:"_bindBuffer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,i=t&&t.handle;return i&&void 0!==n?this.gl.bindBufferRange(35982,e,i,r,n):this.gl.bindBufferBase(35982,e,i),this}},{key:"_createHandle",value:function(){return this.gl.createTransformFeedback()}},{key:"_deleteHandle",value:function(){this.gl.deleteTransformFeedback(this.handle)}},{key:"_bindHandle",value:function(e){this.gl.bindTransformFeedback(36386,this.handle)}}]),r}(gt);function Wi(e,t){for(var r=t.maxElts,n=void 0===r?16:r,i=t.size,a=void 0===i?1:i,o="[",s=0;s<e.length&&s<n;++s)s>0&&(o+=",".concat(s%a==0?" ":"")),o+=Xi(e[s],t);var u=e.length>n?"...":"]";return"".concat(o).concat(u)}function Xi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=1e-16,n=t.isInteger,i=void 0!==n&&n;if(Array.isArray(e)||ArrayBuffer.isView(e))return Wi(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)<r)return i?"0":"0.";if(i)return e.toFixed(0);if(Math.abs(e)>100&&Math.abs(e)<1e4)return e.toFixed(0);var a=e.toPrecision(2),o=a.indexOf(".0");return o===a.length-2?a.slice(0,-1):a}function qi(e,t,r,n){var i,a,o=e.gl;if(!t)return a={},y()(a,n,"null"),y()(a,"Format ","N/A"),a;var s,u,c,l="NOT PROVIDED",f=1,h=0,d=0;if(r&&(l=r.type,f=r.size,s=-1!==(l=String(l).replace("Array","")).indexOf("nt")),t instanceof Ft){var v,g,m=t,p=m.getDebugData(),b=p.data;if(u=p.changed?"*":"",c=b,h=(d=m.byteLength)/b.BYTES_PER_ELEMENT/f,r){var _=r.divisor>0;g="".concat(_?"I ":"P "," ").concat(h," (x").concat(f,"=").concat(d," bytes ").concat(ot(o,l),")")}else s=!0,g="".concat(d," bytes");return v={},y()(v,n,"".concat(u).concat(Xi(c,{size:f,isInteger:s}))),y()(v,"Format ",g),v}return c=t,f=t.length,s=-1!==(l=String(t.constructor.name).replace("Array","")).indexOf("nt"),i={},y()(i,n,"".concat(Xi(c,{size:f,isInteger:s})," (constant)")),y()(i,"Format ","".concat(f,"x").concat(l," (constant)")),i}function Qi(e,t){var r=Ai(t.type,t.size);return r?"".concat(e," (").concat(r.name,")"):e}function $i(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Yi(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yi(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Yi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ki(e){var t=e.header,r=void 0===t?"Uniforms":t,n=e.program,i=e.uniforms,a=e.undefinedOnly,o=void 0!==a&&a;Ye(n);var s,u=n._uniformSetters,c={},l=Object.keys(u).sort(),f=0,h=$i(l);try{for(h.s();!(s=h.n()).done;){var d=s.value;d.match(".*_.*")||d.match(".*Matrix")||Ji({table:c,header:r,uniforms:i,uniformName:d,undefinedOnly:o})&&f++}}catch(e){h.e(e)}finally{h.f()}var v,g=$i(l);try{for(g.s();!(v=g.n()).done;){var m=v.value;m.match(".*Matrix")&&Ji({table:c,header:r,uniforms:i,uniformName:m,undefinedOnly:o})&&f++}}catch(e){g.e(e)}finally{g.f()}var p,b=$i(l);try{for(b.s();!(p=b.n()).done;){var _=p.value;c[_]||Ji({table:c,header:r,uniforms:i,uniformName:_,undefinedOnly:o})&&f++}}catch(e){b.e(e)}finally{b.f()}var x=0,w={};if(!o)for(var A in i){var k=i[A];c[A]||(x++,w[A]=y()({Type:"NOT USED: ".concat(k)},r,Xi(k)))}return{table:c,count:f,unusedTable:w,unusedCount:x}}function Ji(e){var t,r=e.table,n=e.header,i=e.uniforms,a=e.uniformName,o=e.undefinedOnly,s=i[a],u=function(e){return null!=e}(s);return(!o||!u)&&(r[a]=(t={},y()(t,n,u?Xi(s):"N/A"),y()(t,"Uniform Type",u?s:"NOT PROVIDED"),t),!0)}function Zi(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ea(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ea(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ta(e){var t=e.accessor,r=Ai(t.type,t.size);return r?"".concat(r.name," ").concat(e.name):e.name}function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function na(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ra(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ia={POSITION:"positions",NORMAL:"normals",COLOR_0:"colors",TEXCOORD_0:"texCoords",TEXCOORD_1:"texCoords1",TEXCOORD_2:"texCoords2"};function aa(e,t){var r=(t||{}).attributeMap,n=void 0===r?ia:r;return n&&n[e]||e}function oa(e,t){var r;switch(e){case"texCoords":case"texCoord1":case"texCoord2":case"texCoord3":r="uvs";break;case"vertices":case"positions":case"normals":case"pickingColors":r="vectors"}switch(r){case"vectors":t.size=t.size||3;break;case"uvs":t.size=t.size||2}Ye(Number.isFinite(t.size),"attribute ".concat(e," needs size"))}var sa=function(){},ua={},ca=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e);var n=r.id,i=void 0===n?ut("model"):n;Ye(V(t)),this.id=i,this.gl=t,this.id=r.id||ut("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(r)}return h()(e,[{key:"initialize",value:function(e){this.props={},this.programManager=e.programManager||Ri.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;var t=e.program,r=void 0===t?null:t,n=e.vs,i=e.fs,a=e.modules,o=e.defines,s=e.inject,u=e.varyings,c=e.bufferMode,l=e.transpileToGLSL100;this.programProps={program:r,vs:n,fs:i,modules:a,defines:o,inject:s,varyings:u,bufferMode:c,transpileToGLSL100:l},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(e.moduleSettings))),this.drawMode=void 0!==e.drawMode?e.drawMode:4,this.vertexCount=e.vertexCount||0,this.geometryBuffers={},this.isInstanced=e.isInstanced||e.instanced||e.instanceCount>0,this._setModelProps(e),this.geometry={},Ye(void 0!==this.drawMode&&Number.isFinite(this.vertexCount),"Model needs drawMode and vertexCount")}},{key:"setProps",value:function(e){this._setModelProps(e)}},{key:"delete",value:function(){for(var e in this._attributes)this._attributes[e]!==this.attributes[e]&&this._attributes[e].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}},{key:"getDrawMode",value:function(){return this.drawMode}},{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getInstanceCount",value:function(){return this.instanceCount}},{key:"getAttributes",value:function(){return this.attributes}},{key:"getProgram",value:function(){return this.program}},{key:"setProgram",value:function(e){var t=e.program,r=e.vs,n=e.fs,i=e.modules,a=e.defines,o=e.inject,s=e.varyings,u=e.bufferMode,c=e.transpileToGLSL100;this.programProps={program:t,vs:r,fs:n,modules:i,defines:a,inject:o,varyings:s,bufferMode:u,transpileToGLSL100:c},this._programDirty=!0}},{key:"getUniforms",value:function(){return this.uniforms}},{key:"setDrawMode",value:function(e){return this.drawMode=e,this}},{key:"setVertexCount",value:function(e){return Ye(Number.isFinite(e)),this.vertexCount=e,this}},{key:"setInstanceCount",value:function(e){return Ye(Number.isFinite(e)),this.instanceCount=e,this}},{key:"setGeometry",value:function(e){return this.drawMode=e.drawMode,this.vertexCount=e.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=function(e,t,r){var n={},i=t.indices;for(var a in t.attributes){var o=t.attributes[a],s=aa(a,r);if("indices"===a)i=o;else if(o.constant)n[s]=o.value;else{var u=o.value,c=na({},o);delete c.value,n[s]=[new Ft(e,u),c],oa(a,c)}}if(i){var l=i.value||i;Ye(l instanceof Uint16Array||l instanceof Uint32Array,'attribute array for "indices" must be of integer type');var f={size:1,isIndexed:void 0===i.isIndexed||i.isIndexed};n.indices=[new Ft(e,{data:l,target:34963}),f]}return n}(this.gl,e),this.vertexArray.setAttributes(this.geometryBuffers),this}},{key:"setAttributes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(lt(e))return this;var t={};for(var r in e){var n=e[r];t[r]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(t),this}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(this.uniforms,e),this}},{key:"getModuleUniforms",value:function(e){this._checkProgram();var t=this.programManager.getUniforms(this.program);return t?t(e):{}}},{key:"updateModuleSettings",value:function(e){var t=this.getModuleUniforms(e||{});return this.setUniforms(t)}},{key:"clear",value:function(e){return nr(this.program.gl,e),this}},{key:"draw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._checkProgram();var t,r=e.moduleSettings,n=void 0===r?null:r,i=e.framebuffer,a=e.uniforms,o=void 0===a?{}:a,s=e.attributes,u=void 0===s?{}:s,c=e.transformFeedback,l=void 0===c?this.transformFeedback:c,f=e.parameters,h=void 0===f?{}:f,d=e.vertexArray,v=void 0===d?this.vertexArray:d;this.setAttributes(u),this.updateModuleSettings(n),this.setUniforms(o),U.priority>=2&&(t=this._logDrawCallStart(2));var g=this.vertexArray.getDrawParams(),y=this.props,m=y.isIndexed,p=void 0===m?g.isIndexed:m,b=y.indexType,_=void 0===b?g.indexType:b,x=y.indexOffset,w=void 0===x?g.indexOffset:x,A=y.vertexArrayInstanced,k=void 0===A?g.isInstanced:A;k&&!this.isInstanced&&U.warn("Found instanced attributes on non-instanced model",this.id)();var T=this.isInstanced,E=this.instanceCount,O=this.props,S=O.onBeforeRender,P=void 0===S?sa:S,I=O.onAfterRender,L=void 0===I?sa:I;P(),this.program.setUniforms(this.uniforms);var R=this.program.draw(Object.assign(ua,e,{logPriority:t,uniforms:null,framebuffer:i,parameters:h,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:v,transformFeedback:l,isIndexed:p,indexType:_,isInstanced:T,instanceCount:E,offset:p?w:0}));return L(),U.priority>=2&&this._logDrawCallEnd(t,v,i),R}},{key:"transform",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.discard,r=void 0===t||t,n=e.feedbackBuffers,i=e.unbindModels,a=void 0===i?[]:i,o=e.parameters;n&&this._setFeedbackBuffers(n),r&&(o=Object.assign({},o,y()({},35977,r))),a.forEach((function(e){return e.vertexArray.unbindBuffers()}));try{this.draw(Object.assign({},e,{parameters:o}))}finally{a.forEach((function(e){return e.vertexArray.bindBuffers()}))}return this}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return U.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms(e).draw()}},{key:"_setModelProps",value:function(e){Object.assign(this.props,e),"uniforms"in e&&this.setUniforms(e.uniforms),"pickable"in e&&(this.pickable=e.pickable),"instanceCount"in e&&(this.instanceCount=e.instanceCount),"geometry"in e&&this.setGeometry(e.geometry),"attributes"in e&&this.setAttributes(e.attributes),"_feedbackBuffers"in e&&this._setFeedbackBuffers(e._feedbackBuffers)}},{key:"_checkProgram",value:function(){if(this._programDirty||this.programManager.stateHash!==this._programManagerState){var e=this.programProps.program;if(e)this._managedProgram=!1;else{var t=this.programProps,r=t.vs,n=t.fs,i=t.modules,a=t.inject,o=t.defines,s=t.varyings,u=t.bufferMode,c=t.transpileToGLSL100;e=this.programManager.get({vs:r,fs:n,modules:i,inject:a,defines:o,varyings:s,bufferMode:u,transpileToGLSL100:c}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}Ye(e instanceof Pi,"Model needs a program"),this._programDirty=!1,e!==this.program&&(this.program=e,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new Vi(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}}},{key:"_deleteGeometryBuffers",value:function(){for(var e in this.geometryBuffers){var t=this.geometryBuffers[e][0]||this.geometryBuffers[e];t instanceof Ft&&t.delete()}}},{key:"_setAnimationProps",value:function(e){this.animated&&Ye(e,"Model.draw(): animated uniforms but no animationProps")}},{key:"_setFeedbackBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(lt(e))return this;var t=this.program.gl;return this.transformFeedback=this.transformFeedback||new Hi(t,{program:this.program}),this.transformFeedback.setBuffers(e),this}},{key:"_logDrawCallStart",value:function(e){var t=e>3?0:1e4;if(!(Date.now()-this.lastLogTime<t))return this.lastLogTime=Date.now(),U.group(2,">>> DRAWING MODEL ".concat(this.id),{collapsed:U.level<=2})(),e}},{key:"_logDrawCallEnd",value:function(e,t,r,n){if(void 0!==e){var i=function(e){var t=e.vertexArray,r=e.header,n=void 0===r?"Attributes":r;if(!t.configuration)return{};var i={};t.elements&&(i.ELEMENT_ARRAY_BUFFER=qi(t,t.elements,null,n));var a=t.values;for(var o in a){var s=t._getAttributeInfo(o);if(s){var u="".concat(o,": ").concat(s.name),c=t.accessors[s.location];c&&(u="".concat(o,": ").concat(Qi(s.name,c))),i[u]=qi(t,a[o],c,n)}}return i}({vertexArray:t,header:"".concat(this.id," attributes"),attributes:this._attributes}),a=Ki({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,r)}),o=a.table,s=a.unusedTable,u=a.unusedCount,c=Ki({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,r),undefinedOnly:!0}),l=c.table;c.count>0&&U.log("MISSING UNIFORMS",Object.keys(l))(),u>0&&U.log("UNUSED UNIFORMS",Object.keys(s))();var f=function(e){var t,r={},n="Accessors for ".concat(e.id),i=Zi(e.attributeInfos);try{for(i.s();!(t=i.n()).done;){var a=t.value;if(a){var o=ta(a);r["in ".concat(o)]=y()({},n,JSON.stringify(a.accessor))}}}catch(e){i.e(e)}finally{i.f()}var s,u=Zi(e.varyingInfos);try{for(u.s();!(s=u.n()).done;){var c=s.value;if(c){var l=ta(c);r["out ".concat(l)]=y()({},n,JSON.stringify(c.accessor))}}}catch(e){u.e(e)}finally{u.f()}return r}(this.vertexArray.configuration);U.table(e,i)(),U.table(e,o)(),U.table(e+1,f)(),n&&n.log({logLevel:2,message:"Rendered to ".concat(n.id)}),U.groupEnd(2,">>> DRAWING MODEL ".concat(this.id))()}}}]),e}(),la="void main() {gl_FragColor = vec4(0);}",fa="out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}",ha="#version 300 es\n".concat(fa);function da(e,t){t=Array.isArray(t)?t:[t];var r=e.replace(/^\s+/,"").split(/\s+/),n=ce()(r,3),i=n[0],a=n[1],o=n[2];return t.includes(i)&&a&&o?{qualifier:i,type:a,name:o.split(";")[0]}:null}function va(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.version,r=void 0===t?100:t,n=e.input,i=e.inputType,a=e.output;if(!n)return 300===r?ha:r>300?"#version ".concat(r,"\n").concat(fa):la;var o=ya(n,i);return r>=300?"#version ".concat(r," ").concat(300===r?"es":"","\nin ").concat(i," ").concat(n,";\nout vec4 ").concat(a,";\nvoid main() {\n ").concat(a," = ").concat(o,";\n}"):"varying ".concat(i," ").concat(n,";\nvoid main() {\n gl_FragColor = ").concat(o,";\n}")}function ga(e){switch(e){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return en(!1),null}}function ya(e,t){switch(t){case"float":return"vec4(".concat(e,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(e,", 0.0, 1.0)");case"vec3":return"vec4(".concat(e,", 1.0)");case"vec4":return e;default:return en(!1),null}}function ma(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return pa(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return pa(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function pa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var ba=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}return h()(e,[{key:"setupResources",value:function(e){var t,r=ma(this.bindings);try{for(r.s();!(t=r.n()).done;){var n=t.value;this._setupTransformFeedback(n,e)}}catch(e){r.e(e)}finally{r.f()}}},{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.varyings;return t.length>0&&(e=Object.assign({},e,{varyings:t})),e}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceBuffers,n=t.transformFeedback,i=Object.assign({},r,e.attributes);return{attributes:i,transformFeedback:n}}},{key:"swap",value:function(){return!!this.feedbackMap&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e)}},{key:"getBuffer",value:function(e){var t=this.bindings[this.currentIndex].feedbackBuffers,r=e?t[e]:null;return r?r instanceof Ft?r:r.buffer:null}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.varyingName,r=this.getBuffer(t);return r?r.getData():null}},{key:"delete",value:function(){for(var e in this.resources)this.resources[e].delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e),this.varyings=e.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&Ye(G(this.gl))}},{key:"_getFeedbackBuffers",value:function(e){var t=e.sourceBuffers,r=void 0===t?{}:t,n={};if(this.bindings[this.currentIndex]&&Object.assign(n,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(var i in this.feedbackMap){var a=this.feedbackMap[i];i in r&&(n[a]=i)}for(var o in Object.assign(n,e.feedbackBuffers),n){var s=n[o];if("string"==typeof s){var u=r[s],c=u.byteLength,l=u.usage,f=u.accessor;n[o]=this._createNewBuffer(o,{byteLength:c,usage:l,accessor:f})}}return n}},{key:"_setupBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,r=void 0===t?null:t;Object.assign(this.feedbackMap,e.feedbackMap);var n=this._getFeedbackBuffers(e);this._updateBindings({sourceBuffers:r,feedbackBuffers:n})}},{key:"_setupTransformFeedback",value:function(e,t){var r=t.model.program;e.transformFeedback=new Hi(this.gl,{program:r,buffers:e.feedbackBuffers})}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this.feedbackMap){var t=this._swapBuffers(this.bindings[this.currentIndex]),r=t.sourceBuffers,n=t.feedbackBuffers,i=this._getNextIndex();this.bindings[i]=this._updateBinding(this.bindings[i],{sourceBuffers:r,feedbackBuffers:n})}}},{key:"_updateBinding",value:function(e,t){return e?(Object.assign(e.sourceBuffers,t.sourceBuffers),Object.assign(e.feedbackBuffers,t.feedbackBuffers),e.transformFeedback&&e.transformFeedback.setBuffers(e.feedbackBuffers),e):{sourceBuffers:Object.assign({},t.sourceBuffers),feedbackBuffers:Object.assign({},t.feedbackBuffers)}}},{key:"_swapBuffers",value:function(e){if(!this.feedbackMap)return null;var t=Object.assign({},e.sourceBuffers),r=Object.assign({},e.feedbackBuffers);for(var n in this.feedbackMap){var i=this.feedbackMap[n];t[n]=e.feedbackBuffers[i],r[i]=e.sourceBuffers[n],Ye(r[i]instanceof Ft)}return{sourceBuffers:t,feedbackBuffers:r}}},{key:"_createNewBuffer",value:function(e,t){var r=new Ft(this.gl,t);return this.resources[e]&&this.resources[e].delete(),this.resources[e]=r,r}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}}]),e}();function _a(e){var t=100,r=e.match(/[^\s]+/g);if(r.length>=2&&"#version"===r[0]){var n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}var xa,wa={name:"transform",vs:"attribute float transform_elementID;\n\n// returns half of pixel size, used to move the pixel position to center of the pixel.\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\n// returns current elements pixel indeces [x, y],\n// where x ranges in [0 to texSize-1] and y ranges in [0 to texSize-1]\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n // Add safe offset (half of pixel height) before doing floor\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\n\n// returns current elementID's texture co-ordianate\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\n\n// returns current elementID's position\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n // Change from [0 1] range to [-1 1]\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\n\n// returns current elementID's pixel value\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n",fs:null};function Aa(e){var t=e.vs,r=e.sourceTextureMap,n=e.targetTextureVarying,i=e.targetTexture,a=Object.keys(r).length,o=null,s={},u=t,c={};if(a>0||n){var l=u.split("\n"),f=l.slice();if(l.forEach((function(e,t,i){if(a>0){var u=function(e,t){var r={},n=function(e){return da(e,["attribute","in"])}(e);if(!n)return null;var i=n.type,a=n.name;if(a&&t[a]){var o="// ".concat(e," => Replaced by Transform with a sampler"),s=function(e){var t="".concat("transform_uSampler_").concat(e),r="".concat("transform_uSize_").concat(e),n=" uniform sampler2D ".concat(t,";\n uniform vec2 ").concat(r,";");return{samplerName:t,sizeName:r,uniformDeclerations:n}}(a),u=s.samplerName,c=s.sizeName,l=s.uniformDeclerations,f=function(e){switch(e){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return en(!1),null}}(i),h=" ".concat(i," ").concat(a," = transform_getInput(").concat(u,", ").concat(c,").").concat(f,";\n");return r[u]=a,{updatedLine:o,inject:{"vs:#decl":l,"vs:#main-start":h},samplerTextureMap:r}}return null}(e,r);if(u){var l=u.updatedLine,h=u.inject;f[t]=l,c=kn([c,h]),Object.assign(s,u.samplerTextureMap),a--}}n&&!o&&(o=function(e,t){var r=da(e,["varying","out"]);if(!r)return null;return r.name===t?r.type:null}(e,n))})),n){Ye(i);var h="".concat("transform_uSize_").concat(n),d="uniform vec2 ".concat(h,";\n"),v=" vec2 ".concat("transform_position"," = transform_getPos(").concat(h,");\n gl_Position = vec4(").concat("transform_position",", 0, 1.);\n");c=kn([c,{"vs:#decl":d,"vs:#main-start":v}])}u=f.join("\n")}return{vs:u,targetTextureType:o,inject:c,samplerTextureMap:s}}function ka(e){var t,r,n=e.sourceTextureMap,i=e.targetTextureVarying,a=e.targetTexture,o={};for(var s in i&&(t=a.width,r=a.height,o["".concat("transform_uSize_").concat(i)]=[t,r]),n){var u=n[s];t=u.width,r=u.height,o["".concat("transform_uSize_").concat(s)]=[t,r]}return o}var Ta=(xa={},y()(xa,10241,9728),y()(xa,10240,9728),y()(xa,10242,33071),y()(xa,10243,33071),xa),Ea=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}return h()(e,[{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._processVertexShader(e);return Object.assign({},e,t)}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceBuffers,n=t.sourceTextures,i=t.framebuffer,a=t.targetTexture,o=Object.assign({},r,e.attributes),s=Object.assign({},e.uniforms),u=Object.assign({},e.parameters),c=e.discard;if(this.hasSourceTextures||this.hasTargetTexture){for(var l in o.transform_elementID=this.elementIDBuffer,this.samplerTextureMap){var f=this.samplerTextureMap[l];s[l]=n[f]}this._setSourceTextureParameters();var h=ka({sourceTextureMap:n,targetTextureVarying:this.targetTextureVarying,targetTexture:a});Object.assign(s,h)}return this.hasTargetTexture&&(c=!1,u.viewport=[0,0,i.width,i.height]),{attributes:o,framebuffer:i,uniforms:s,discard:c,parameters:u}}},{key:"swap",value:function(){return!!this._swapTexture&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupTextures(e)}},{key:"getTargetTexture",value:function(){return this.bindings[this.currentIndex].targetTexture}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.packed,r=void 0!==t&&t,n=this.bindings[this.currentIndex].framebuffer,i=fr(n);if(!r)return i;for(var a=i.constructor,o=ga(this.targetTextureType),s=new a(i.length*o/4),u=0,c=0;c<i.length;c+=4)for(var l=0;l<o;l++)s[u++]=i[c+l];return s}},{key:"getFramebuffer",value:function(){return this.bindings[this.currentIndex].framebuffer}},{key:"delete",value:function(){this.ownTexture&&this.ownTexture.delete(),this.elementIDBuffer&&this.elementIDBuffer.delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e._targetTextureVarying,r=e._swapTexture;this._swapTexture=r,this.targetTextureVarying=t,this.hasTargetTexture=t,this._setupTextures(e)}},{key:"_createTargetTexture",value:function(e){var t=e.sourceTextures,r=e.textureOrReference;if(r instanceof Kt)return r;var n=t[r];return n?(this._targetRefTexName=r,this._createNewTexture(n)):null}},{key:"_setupTextures",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,r=e._sourceTextures,n=void 0===r?{}:r,i=e._targetTexture,a=this._createTargetTexture({sourceTextures:n,textureOrReference:i});this.hasSourceTextures=this.hasSourceTextures||n&&Object.keys(n).length>0,this._updateBindings({sourceBuffers:t,sourceTextures:n,targetTexture:a}),"elementCount"in e&&this._updateElementIDBuffer(e.elementCount)}},{key:"_updateElementIDBuffer",value:function(e){if(!("number"!=typeof e||this.elementCount>=e)){var t=new Float32Array(e);t.forEach((function(e,t,r){r[t]=t})),this.elementIDBuffer?this.elementIDBuffer.setData({data:t}):this.elementIDBuffer=new Ft(this.gl,{data:t,accessor:{size:1}}),this.elementCount=e}}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this._swapTexture){var t=this._swapTextures(this.bindings[this.currentIndex]),r=t.sourceTextures,n=t.targetTexture,i=this._getNextIndex();this.bindings[i]=this._updateBinding(this.bindings[i],{sourceTextures:r,targetTexture:n})}}},{key:"_updateBinding",value:function(e,t){var r=t.sourceBuffers,n=t.sourceTextures,i=t.targetTexture;if(e||(e={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(e.sourceTextures,n),Object.assign(e.sourceBuffers,r),i){e.targetTexture=i;var a=i.width,o=i.height,s=e.framebuffer;s?(s.update({attachments:y()({},36064,i),resizeAttachments:!1}),s.resize({width:a,height:o})):e.framebuffer=new pr(this.gl,{id:"transform-framebuffer",width:a,height:o,attachments:y()({},36064,i)})}return e}},{key:"_setSourceTextureParameters",value:function(){var e=this.currentIndex,t=this.bindings[e].sourceTextures;for(var r in t)t[r].setParameters(Ta)}},{key:"_swapTextures",value:function(e){if(!this._swapTexture)return null;var t=Object.assign({},e.sourceTextures);return t[this._swapTexture]=e.targetTexture,{sourceTextures:t,targetTexture:e.sourceTextures[this._swapTexture]}}},{key:"_createNewTexture",value:function(e){var t,r=function(e,t){Ye(e instanceof Kt||e instanceof ur||e instanceof lr);var r=e.constructor,n=e.gl,i=e.width,a=e.height,o=e.format,s=e.type,u=e.dataFormat,c=e.border,l=e.mipmaps;return new r(n,Object.assign({width:i,height:a,format:o,type:s,dataFormat:u,border:c,mipmaps:l},t))}(e,{parameters:(t={},y()(t,10241,9728),y()(t,10240,9728),y()(t,10242,33071),y()(t,10243,33071),t),pixelStore:y()({},37440,!1)});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=r,r}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}},{key:"_processVertexShader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceTextures,n=t.targetTexture,i=Aa({vs:e.vs,sourceTextureMap:r,targetTextureVarying:this.targetTextureVarying,targetTexture:n}),a=i.vs,o=i.uniforms,s=i.targetTextureType,u=i.inject,c=i.samplerTextureMap,l=kn([e.inject||{},u]);this.targetTextureType=s,this.samplerTextureMap=c;var f=e._fs||va({version:_a(a),input:this.targetTextureVarying,inputType:s,output:"transform_output"}),h=this.hasSourceTextures||this.targetTextureVarying?[wa].concat(e.modules||[]):e.modules;return{vs:a,fs:f,modules:h,uniforms:o,inject:l}}}]),e}();function Oa(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Sa(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sa(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Sa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Pa=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(r),Object.seal(this)}return h()(e,null,[{key:"isSupported",value:function(e){return G(e)}}]),h()(e,[{key:"delete",value:function(){var e=this.model,t=this.bufferTransform,r=this.textureTransform;e&&e.delete(),t&&t.delete(),r&&r.delete()}},{key:"run",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.clearRenderTarget,r=void 0===t||t,n=this._updateDrawOptions(e);r&&n.framebuffer&&n.framebuffer.clear({color:!0}),this.model.transform(n)}},{key:"swap",value:function(){var e,t=!1,r=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(r.s();!(e=r.n()).done;){var n=e.value;t=t||n.swap()}}catch(e){r.e(e)}finally{r.f()}Ye(t,"Nothing to swap")}},{key:"getBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(e)}},{key:"getData",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=[this.bufferTransform,this.textureTransform].filter(Boolean),n=Oa(r);try{for(n.s();!(e=n.n()).done;){var i=e.value,a=i.getData(t);if(a)return a}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"getFramebuffer",value:function(){return this.textureTransform&&this.textureTransform.getFramebuffer()}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"elementCount"in e&&this.model.setVertexCount(e.elementCount);var t,r=[this.bufferTransform,this.textureTransform].filter(Boolean),n=Oa(r);try{for(n.s();!(t=n.n()).done;){var i=t.value;i.update(e)}}catch(e){n.e(e)}finally{n.f()}}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.gl;this._buildResourceTransforms(t,e),e=this._updateModelProps(e),this.model=new ca(t,Object.assign({},e,{fs:e.fs||va({version:_a(e.vs)}),id:e.id||"transform-model",drawMode:e.drawMode||0,vertexCount:e.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}},{key:"_updateModelProps",value:function(e){var t,r=Object.assign({},e),n=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(n.s();!(t=n.n()).done;){r=t.value.updateModelProps(r)}}catch(e){n.e(e)}finally{n.f()}return r}},{key:"_buildResourceTransforms",value:function(e,t){(function(e){if(!lt(e.feedbackBuffers)||!lt(e.feedbackMap)||e.varyings&&e.varyings.length>0)return!0;return!1})(t)&&(this.bufferTransform=new ba(e,t)),function(e){if(!lt(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)return!0;return!1}(t)&&(this.textureTransform=new Ea(e,t)),Ye(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}},{key:"_updateDrawOptions",value:function(e){var t,r=Object.assign({},e),n=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(n.s();!(t=n.n()).done;){var i=t.value;r=Object.assign(r,i.getDrawOptions(r))}}catch(e){n.e(e)}finally{n.f()}return r}}]),e}();function Ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var La={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Ra=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,e);var r=t.id,n=void 0===r?ut("geometry"):r,i=t.drawMode,a=void 0===i?La.TRIANGLES:i,o=t.attributes,s=void 0===o?{}:o,u=t.indices,c=void 0===u?null:u,f=t.vertexCount,h=void 0===f?null:f;this.id=n,this.drawMode=0|a,this.attributes={},this.userData={},this._setAttributes(s,c),this.vertexCount=h||this._calculateVertexCount(this.attributes,this.indices)}return h()(e,null,[{key:"DRAW_MODE",get:function(){return La}}]),h()(e,[{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getAttributes",value:function(){return this.indices?function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ia(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ia(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({indices:this.indices},this.attributes):this.attributes}},{key:"_print",value:function(e){return"Geometry ".concat(this.id," attribute ").concat(e)}},{key:"_setAttributes",value:function(e,t){for(var r in t&&(this.indices=ArrayBuffer.isView(t)?{value:t,size:1}:t),e){var n=e[r];n=ArrayBuffer.isView(n)?{value:n}:n,Ye(ArrayBuffer.isView(n.value),"".concat(this._print(r),": must be typed array or object with value as typed array")),"POSITION"!==r&&"positions"!==r||n.size||(n.size=3),"indices"===r?(Ye(!this.indices),this.indices=n):this.attributes[r]=n}return this.indices&&void 0!==this.indices.isIndexed&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}},{key:"_calculateVertexCount",value:function(e,t){if(t)return t.value.length;var r=1/0;for(var n in e){var i=e[n],a=i.value,o=i.size;!i.constant&&a&&o>=1&&(r=Math.min(r,a.length/o))}return Ye(Number.isFinite(r)),r}},{key:"mode",get:function(){return this.drawMode}}]),e}();function Ma(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Da(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ma(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ma(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Fa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ja={x:[2,0,1],y:[0,1,2],z:[1,2,0]},Ba=function(e){et()(r,e);var t=Fa(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("truncated-code-geometry"):n,a=Ca(e),o=a.indices,s=a.attributes;return t.call(this,Da(Da({},e),{},{id:i,indices:o,attributes:Da(Da({},s),e.attributes)}))}return r}(Ra);function Ca(e){for(var t=e.bottomRadius,r=void 0===t?0:t,n=e.topRadius,i=void 0===n?0:n,a=e.height,o=void 0===a?1:a,s=e.nradial,u=void 0===s?10:s,c=e.nvertical,l=void 0===c?10:c,f=e.verticalAxis,h=void 0===f?"y":f,d=e.topCap,v=void 0!==d&&d,g=e.bottomCap,y=void 0!==g&&g,m=(v?2:0)+(y?2:0),p=(u+1)*(l+1+m),b=Math.atan2(r-i,o),_=Math.sin,x=Math.cos,w=Math.PI,A=x(b),k=_(b),T=v?-2:0,E=l+(y?2:0),O=u+1,S=new Uint16Array(u*(l+m)*6),P=ja[h],I=new Float32Array(3*p),L=new Float32Array(3*p),R=new Float32Array(2*p),M=0,D=0,F=T;F<=E;F++){var j=F/l,B=o*j,C=void 0;F<0?(B=0,j=1,C=r):F>l?(B=o,j=1,C=i):C=r+F/l*(i-r),-2!==F&&F!==l+2||(C=0,j=0),B-=o/2;for(var N=0;N<O;N++){var U=_(N*w*2/u),z=x(N*w*2/u);I[M+P[0]]=U*C,I[M+P[1]]=B,I[M+P[2]]=z*C,L[M+P[0]]=F<0||F>l?0:U*A,L[M+P[1]]=F<0?-1:F>l?1:k,L[M+P[2]]=F<0||F>l?0:z*A,R[D+0]=N/u,R[D+1]=j,D+=2,M+=3}}for(var V=0;V<l+m;V++)for(var G=0;G<u;G++){var H=6*(V*u+G);S[H+0]=O*(V+0)+0+G,S[H+1]=O*(V+0)+1+G,S[H+2]=O*(V+1)+1+G,S[H+3]=O*(V+0)+0+G,S[H+4]=O*(V+1)+1+G,S[H+5]=O*(V+1)+0+G}return{indices:S,attributes:{POSITION:{size:3,value:I},NORMAL:{size:3,value:L},TEXCOORD_0:{size:2,value:R}}}}function Na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ua(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Na(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Na(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function za(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Va=function(e){et()(r,e);var t=za(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cone-geometry"):n,a=e.radius,o=void 0===a?1:a,s=e.cap,u=void 0===s||s;return t.call(this,Ua(Ua({},e),{},{id:i,topRadius:0,topCap:Boolean(u),bottomCap:Boolean(u),bottomRadius:o}))}return r}(Ba);function Ga(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ha(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ga(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ga(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Wa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Xa=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),qa=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),Qa=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),$a=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),Ya={POSITION:{size:3,value:new Float32Array(qa)},NORMAL:{size:3,value:new Float32Array(Qa)},TEXCOORD_0:{size:2,value:new Float32Array($a)}},Ka=function(e){et()(r,e);var t=Wa(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cube-geometry"):n;return t.call(this,Ha(Ha({},e),{},{id:i,indices:{size:1,value:new Uint16Array(Xa)},attributes:Ha(Ha({},Ya),e.attributes)}))}return r}(Ra);function Ja(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Za(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ja(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ja(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function eo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var to=function(e){et()(r,e);var t=eo(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cylinder-geometry"):n,a=e.radius,o=void 0===a?1:a;return t.call(this,Za(Za({},e),{},{id:i,bottomRadius:o,topRadius:o}))}return r}(Ba);function ro(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}Math.PI,Math.PI;var no={};function io(e){return Math.round(e/no.EPSILON)*no.EPSILON}function ao(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.precision,n=void 0===r?no.precision||4:r;return e=io(e),"".concat(parseFloat(e.toPrecision(n)))}function oo(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function so(e,t,r){var n=no.EPSILON;r&&(no.EPSILON=r);try{if(e===t)return!0;if(oo(e)&&oo(t)){if(e.length!==t.length)return!1;for(var i=0;i<e.length;++i)if(!so(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=no.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{no.EPSILON=n}}function uo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}no.EPSILON=1e-12,no.debug=!1,no.precision=4,no.printTypes=!1,no.printDegrees=!1,no.printRowMajor=!0;var co=function(e){et()(r,e);var t=uo(r);function r(){return l()(this,r),t.apply(this,arguments)}return h()(r,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0;r<this.ELEMENTS;++r)this[r]=e[r+t];return this.check()}},{key:"to",value:function(e){return e===this?this:oo(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0;r<this.ELEMENTS;++r)e[t+r]=this[r];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(no)}},{key:"formatString",value:function(e){for(var t="",r=0;r<this.ELEMENTS;++r)t+=(r>0?", ":"")+ao(this[r],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!so(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,r){void 0===r&&(r=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var i=e[n];this[n]=i+r*(t[n]-i)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],e[r]),t[r]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]+=a[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]-=a[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(no.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return ro(!1),0}},{key:"elements",get:function(){return this}}]),r}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function lo(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function fo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ho=function(e){et()(r,e);var t=fo(r);function r(){return l()(this,r),t.apply(this,arguments)}return h()(r,[{key:"copy",value:function(e){return ro(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,r=0;r<this.ELEMENTS;++r){var n=this[r]-e[r];t+=n*n}return lo(t)}},{key:"dot",value:function(e){for(var t=0,r=0;r<this.ELEMENTS;++r)t+=this[r]*e[r];return lo(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]*=a[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]/=a[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return ro(e>=0&&e<this.ELEMENTS,"index is out of range"),lo(this[e])}},{key:"setComponent",value:function(e,t){return ro(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return ro(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=lo(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=lo(e)}}]),r}(co),vo="undefined"!=typeof Float32Array?Float32Array:Array;Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var go,yo;go=new vo(3),vo!=Float32Array&&(go[0]=0,go[1]=0,go[2]=0),yo=go;function mo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var po=[0,0,0],bo={},_o=function(e){et()(r,e);var t=mo(r);function r(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return l()(this,r),e=t.call(this,-0,-0,-0),1===arguments.length&&oo(n)?e.copy(n):(no.debug&&(lo(n),lo(i),lo(a)),e[0]=n,e[1]=i,e[2]=a),e}return h()(r,null,[{key:"ZERO",get:function(){return bo.ZERO=bo.ZERO||Object.freeze(new r(0,0,0,0))}}]),h()(r,[{key:"set",value:function(e,t,r){return this[0]=e,this[1]=t,this[2]=r,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return no.debug&&(lo(e.x),lo(e.y),lo(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return r=e,n=(t=this)[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2],c=Math.sqrt(n*n+i*i+a*a)*Math.sqrt(o*o+s*s+u*u),l=c&&function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}(t,r)/c,Math.acos(Math.min(Math.max(l,-1),1));var t,r,n,i,a,o,s,u,c,l}},{key:"cross",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2];e[0]=i*u-a*s,e[1]=a*o-n*u,e[2]=n*s-i*o}(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o}(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a||1;e[0]=(r[0]*n+r[4]*i+r[8]*a)/o,e[1]=(r[1]*n+r[5]*i+r[9]*a)/o,e[2]=(r[2]*n+r[6]*i+r[10]*a)/o}(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2];e[0]=n*r[0]+i*r[3]+a*r[6],e[1]=n*r[1]+i*r[4]+a*r[7],e[2]=n*r[2]+i*r[5]+a*r[8]}(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,r){var n=t[0],i=t[1];e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return function(e,t,r){var n=r[0],i=r[1],a=r[2],o=r[3],s=t[0],u=t[1],c=t[2],l=i*c-a*u,f=a*s-n*c,h=n*u-i*s,d=i*h-a*f,v=a*l-n*h,g=n*f-i*l,y=2*o;l*=y,f*=y,h*=y,d*=2,v*=2,g*=2,e[0]=s+l+d,e[1]=u+f+v,e[2]=c+h+g}(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=lo(e)}}]),r}(ho);function xo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wo(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xo(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xo(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ao(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ko=[-1,0,0,0,1,0,0,0,-1,0,0,1,0,-1,0,1,0,0],To=[3,4,5,3,5,1,3,1,0,3,0,4,4,0,2,4,2,5,2,0,1,5,2,1],Eo=function(e){et()(r,e);var t=Ao(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("ico-sphere-geometry"):n,a=Oo(e),o=a.indices,s=a.attributes;return t.call(this,wo(wo({},e),{},{id:i,indices:o,attributes:wo(wo({},s),e.attributes)}))}return r}(Ra);function Oo(e){var t=e.iterations,r=void 0===t?0:t,n=Math.PI,i=2*n,a=[].concat(ko),o=[].concat(To);a.push(),o.push();for(var s,u=(s={},function(e,t){var r=(e*=3)>(t*=3)?e:t,n="".concat(e<t?e:t,"|").concat(r);if(n in s)return s[n];var i=a[e],o=a[e+1],u=a[e+2],c=(i+a[t])/2,l=(o+a[t+1])/2,f=(u+a[t+2])/2,h=Math.sqrt(c*c+l*l+f*f);return c/=h,l/=h,f/=h,a.push(c,l,f),s[n]=a.length/3-1}),c=0;c<r;c++){for(var l=[],f=0;f<o.length;f+=3){var h=u(o[f+0],o[f+1]),d=u(o[f+1],o[f+2]),v=u(o[f+2],o[f+0]);l.push(v,o[f+0],h,h,o[f+1],d,d,o[f+2],v,h,d,v)}o=l}for(var g=new Array(a.length),y=new Array(a.length/3*2),m=o.length-3;m>=0;m-=3){var p=o[m+0],b=o[m+1],_=o[m+2],x=3*p,w=3*b,A=3*_,k=2*p,T=2*b,E=2*_,O=a[x+0],S=a[x+1],P=a[x+2],I=Math.acos(P/Math.sqrt(O*O+S*S+P*P))/n,L=1-(Math.atan2(S,O)+n)/i,R=a[w+0],M=a[w+1],D=a[w+2],F=Math.acos(D/Math.sqrt(R*R+M*M+D*D))/n,j=1-(Math.atan2(M,R)+n)/i,B=a[A+0],C=a[A+1],N=a[A+2],U=Math.acos(N/Math.sqrt(B*B+C*C+N*N))/n,z=1-(Math.atan2(C,B)+n)/i,V=[O-R,S-M,P-D],G=new _o([B-R,C-M,N-D]).cross(V).normalize(),H=void 0;(0===L||0===j||0===z)&&(0===L||L>.5)&&(0===j||j>.5)&&(0===z||z>.5)&&(a.push(a[x+0],a[x+1],a[x+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=I,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z,a.push(a[w+0],a[w+1],a[w+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=F,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z,a.push(a[A+0],a[A+1],a[A+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=U,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z),g[x+0]=g[w+0]=g[A+0]=G.x,g[x+1]=g[w+1]=g[A+1]=G.y,g[x+2]=g[w+2]=g[A+2]=G.z,y[k+0]=L,y[k+1]=I,y[T+0]=j,y[T+1]=F,y[E+0]=z,y[E+1]=U}return{indices:{size:1,value:new Uint16Array(o)},attributes:{POSITION:{size:3,value:new Float32Array(a)},NORMAL:{size:3,value:new Float32Array(g)},TEXCOORD_0:{size:2,value:new Float32Array(y)}}}}function So(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Po(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?So(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):So(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Io(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Lo=function(e){et()(r,e);var t=Io(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("plane-geometry"):n,a=Ro(e),o=a.indices,s=a.attributes;return t.call(this,Po(Po({},e),{},{id:i,indices:o,attributes:Po(Po({},s),e.attributes)}))}return r}(Ra);function Ro(e){var t=e.type,r=void 0===t?"x,y":t,n=e.offset,i=void 0===n?0:n,a=e.flipCull,o=void 0!==a&&a,s=e.unpack,u=void 0!==s&&s,c=r.split(","),l=e["".concat(c[0],"len")]||1,f=e["".concat(c[1],"len")]||1,h=e["n".concat(c[0])]||1,d=e["n".concat(c[1])]||1,v=(h+1)*(d+1),g=new Float32Array(3*v),y=new Float32Array(3*v),m=new Float32Array(2*v);o&&(l=-l);for(var p=0,b=0,_=0;_<=d;_++)for(var x=0;x<=h;x++){var w=x/h,A=_/d;switch(m[p+0]=o?1-w:w,m[p+1]=A,r){case"x,y":g[b+0]=l*w-.5*l,g[b+1]=f*A-.5*f,g[b+2]=i,y[b+0]=0,y[b+1]=0,y[b+2]=o?1:-1;break;case"x,z":g[b+0]=l*w-.5*l,g[b+1]=i,g[b+2]=f*A-.5*f,y[b+0]=0,y[b+1]=o?1:-1,y[b+2]=0;break;case"y,z":g[b+0]=i,g[b+1]=l*w-.5*l,g[b+2]=f*A-.5*f,y[b+0]=o?1:-1,y[b+1]=0,y[b+2]=0;break;default:throw new Error("PlaneGeometry: unknown type")}p+=2,b+=3}for(var k=h+1,T=new Uint16Array(h*d*6),E=0;E<d;E++)for(var O=0;O<h;O++){var S=6*(E*h+O);T[S+0]=(E+0)*k+O,T[S+1]=(E+1)*k+O,T[S+2]=(E+0)*k+O+1,T[S+3]=(E+1)*k+O,T[S+4]=(E+1)*k+O+1,T[S+5]=(E+0)*k+O+1}var P={indices:{size:1,value:T},attributes:{POSITION:{size:3,value:g},NORMAL:{size:3,value:y},TEXCOORD_0:{size:2,value:m}}};return u?function(e){var t=e.indices,r=e.attributes;if(!t)return e;var n=t.value.length,i={};for(var a in r){var o=r[a],s=o.constant,u=o.value,c=o.size;if(!s&&c){for(var l=new u.constructor(n*c),f=0;f<n;++f)for(var h=t.value[f],d=0;d<c;d++)l[f*c+d]=u[h*c+d];i[a]={size:c,value:l}}}return{attributes:Object.assign({},r,i)}}(P):P}function Mo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Do(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Mo(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mo(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Fo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var jo=function(e){et()(r,e);var t=Fo(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("sphere-geometry"):n,a=Bo(e),o=a.indices,s=a.attributes;return t.call(this,Do(Do({},e),{},{id:i,indices:o,attributes:Do(Do({},s),e.attributes)}))}return r}(Ra);function Bo(e){var t=e.nlat,r=void 0===t?10:t,n=e.nlong,i=void 0===n?10:n,a=e.radius,o=void 0===a?1:a,s=Math.PI-0,u=2*Math.PI-0,c=(r+1)*(i+1);if("number"==typeof o){var l=o;o=function(e,t,r,n,i){return l}}for(var f=new Float32Array(3*c),h=new Float32Array(3*c),d=new Float32Array(2*c),v=new(c>65535?Uint32Array:Uint16Array)(r*i*6),g=0;g<=r;g++)for(var y=0;y<=i;y++){var m=y/i,p=g/r,b=y+g*(i+1),_=2*b,x=3*b,w=u*m,A=s*p,k=Math.sin(w),T=Math.cos(w),E=Math.sin(A),O=T*E,S=Math.cos(A),P=k*E,I=o(O,S,P,m,p);f[x+0]=I*O,f[x+1]=I*S,f[x+2]=I*P,h[x+0]=O,h[x+1]=S,h[x+2]=P,d[_+0]=m,d[_+1]=1-p}for(var L=i+1,R=0;R<i;R++)for(var M=0;M<r;M++){var D=6*(R*r+M);v[D+0]=M*L+R,v[D+1]=M*L+R+1,v[D+2]=(M+1)*L+R,v[D+3]=(M+1)*L+R,v[D+4]=M*L+R+1,v[D+5]=(M+1)*L+R+1}return{indices:{size:1,value:v},attributes:{POSITION:{size:3,value:f},NORMAL:{size:3,value:h},TEXCOORD_0:{size:2,value:d}}}}function Co(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return No(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return No(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function No(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Uo=1,zo=1,Vo=function(){function e(){l()(this,e),this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}return h()(e,[{key:"addChannel",value:function(e){var t=e.delay,r=void 0===t?0:t,n=e.duration,i=void 0===n?Number.POSITIVE_INFINITY:n,a=e.rate,o=void 0===a?1:a,s=e.repeat,u=Uo++,c={time:0,delay:r,duration:i,rate:o,repeat:void 0===s?1:s};return this._setChannelTime(c,this.time),this.channels.set(u,c),u}},{key:"removeChannel",value:function(e){this.channels.delete(e);var t,r=Co(this.animations);try{for(r.s();!(t=r.n()).done;){var n=ce()(t.value,2),i=n[0];n[1].channel===e&&this.detachAnimation(i)}}catch(e){r.e(e)}finally{r.f()}}},{key:"isFinished",value:function(e){var t=this.channels.get(e);return void 0!==t&&this.time>=t.delay+t.duration*t.repeat}},{key:"getTime",value:function(e){if(void 0===e)return this.time;var t=this.channels.get(e);return void 0===t?-1:t.time}},{key:"setTime",value:function(e){this.time=Math.max(0,e);var t,r=Co(this.channels.values());try{for(r.s();!(t=r.n()).done;){var n=t.value;this._setChannelTime(n,this.time)}}catch(e){r.e(e)}finally{r.f()}var i,a=Co(this.animations.values());try{for(a.s();!(i=a.n()).done;){var o=i.value,s=o.animation,u=o.channel;s.setTime(this.getTime(u))}}catch(e){a.e(e)}finally{a.f()}}},{key:"play",value:function(){this.playing=!0}},{key:"pause",value:function(){this.playing=!1,this.lastEngineTime=-1}},{key:"reset",value:function(){this.setTime(0)}},{key:"attachAnimation",value:function(e,t){var r=zo++;return this.animations.set(r,{animation:e,channel:t}),e.setTime(this.getTime(t)),r}},{key:"detachAnimation",value:function(e){this.animations.delete(e)}},{key:"update",value:function(e){this.playing&&(-1===this.lastEngineTime&&(this.lastEngineTime=e),this.setTime(this.time+(e-this.lastEngineTime)),this.lastEngineTime=e)}},{key:"_setChannelTime",value:function(e,t){var r=t-e.delay;r>=e.duration*e.repeat?e.time=e.duration*e.rate:(e.time=Math.max(0,r)%e.duration,e.time*=e.rate)}}]),e}(),Go=function(){function e(t){l()(this,e),this._lastTime=-1,this.startIndex=-1,this.endIndex=-1,this.factor=0,this.times=[],this.values=[],this.setKeyFrames(t),this.setTime(0)}return h()(e,[{key:"setKeyFrames",value:function(e){var t=e.length;this.times.length=t,this.values.length=t;for(var r=0;r<t;++r)this.times[r]=e[r][0],this.values[r]=e[r][1];this._calculateKeys(this._lastTime)}},{key:"setTime",value:function(e){(e=Math.max(0,e))!==this._lastTime&&(this._calculateKeys(e),this._lastTime=e)}},{key:"getStartTime",value:function(){return this.times[this.startIndex]}},{key:"getEndTime",value:function(){return this.times[this.endIndex]}},{key:"getStartData",value:function(){return this.values[this.startIndex]}},{key:"getEndData",value:function(){return this.values[this.endIndex]}},{key:"_calculateKeys",value:function(e){var t=0,r=this.times.length;for(t=0;t<r-2&&!(this.times[t+1]>e);++t);this.startIndex=t,this.endIndex=t+1;var n=this.times[this.startIndex],i=this.times[this.endIndex];this.factor=Math.min(Math.max(0,(e-n)/(i-n)),1)}}]),e}();function Ho(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Wo=[-1,-1,1,-1,-1,1,1,1],Xo=function(e){et()(r,e);var t=Ho(r);function r(e,n){var i;l()(this,r);var a=Wo.map((function(e){return-1===e?0:e}));return(i=t.call(this,e,Object.assign({},n,{vs:"attribute vec2 aClipSpacePosition;\nattribute vec2 aTexCoord;\nattribute vec2 aCoordinate;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(aClipSpacePosition, 0., 1.);\n position = aClipSpacePosition;\n coordinate = aCoordinate;\n uv = aTexCoord;\n}\n",geometry:new Ra({drawMode:5,vertexCount:4,attributes:{aClipSpacePosition:{size:2,value:new Float32Array(Wo)},aTexCoord:{size:2,value:new Float32Array(a)},aCoordinate:{size:2,value:new Float32Array(a)}}})}))).setVertexCount(4),i}return r}(ca)},,,function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return o}));var n=r(7),i=r.n(n),a=r(27);function o(){return!("object"===(void 0===e?"undefined":i()(e))&&"[object process]"===String(e)&&!e.browser)||Object(a.a)()}}).call(this,r(12))}])}));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return 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 i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));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=28)}([function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function r(t){return e.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(t)}e.exports=r},function(e,t,r){var n=r(26);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},function(e,t,r){var n=r(7),i=r(8);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}},function(e,t,r){var n=r(31),i=r(32),a=r(25),o=r(33);e.exports=function(e){return n(e)||i(e)||a(e)||o()}},function(e,t){function r(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=r=function(e){return typeof e}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(t)}e.exports=r},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,r){var n=r(36),i=r(37),a=r(25),o=r(38);e.exports=function(e,t){return n(e)||i(e,t)||a(e,t)||o()}},,function(e,t,r){"use strict";(function(e,n){r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return s}));var i=r(7),a={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:void 0!==e&&e,document:"undefined"!=typeof document&&document,process:"object"===(void 0===n?"undefined":r.n(i)()(n))&&n},o=a.window||a.self||a.global,s=a.process||{};console}).call(this,r(34),r(12))},function(e,t){var r,n,i=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var e=s(h);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f<t;)u&&u[f].run();f=-1,t=c.length}u=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function v(e,t){this.fun=e,this.array=t}function g(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new v(e,t)),1!==c.length||l||s(d)},v.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t,r){var n=r(40);function i(t,r,a){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=i=Reflect.get:e.exports=i=function(e,t,r){var i=n(e,t);if(i){var a=Object.getOwnPropertyDescriptor(i,t);return a.get?a.get.call(r):a.value}},i(t,r,a||t)}e.exports=i},function(e,t,r){e.exports=r(30)},function(e,t,r){"use strict";(function(e){function n(){var t;if("undefined"!=typeof window&&window.performance)t=window.performance.now();else if(void 0!==e&&e.hrtime){var r=e.hrtime();t=1e3*r[0]+r[1]/1e6}else t=Date.now();return t}r.d(t,"a",(function(){return n}))}).call(this,r(12))},,function(e,t){function r(e,t,r,n,i,a,o){try{var s=e[a](o),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}e.exports=function(e){return function(){var t=this,n=arguments;return new Promise((function(i,a){var o=e.apply(t,n);function s(e){r(o,i,a,s,u,"next",e)}function u(e){r(o,i,a,s,u,"throw",e)}s(void 0)}))}}},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return o}));var n=r(7),i=r.n(n),a=r(19);function o(){return!("object"===(void 0===e?"undefined":i()(e))&&"[object process]"===String(e)&&!e.browser)||Object(a.a)()}}).call(this,r(12))},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return a}));var n=r(7),i=r.n(n);function a(t){if("undefined"!=typeof window&&"object"===i()(window.process)&&"renderer"===window.process.type)return!0;if(void 0!==e&&"object"===i()(e.versions)&&Boolean(e.versions.electron))return!0;var r="object"===("undefined"==typeof navigator?"undefined":i()(navigator))&&"string"==typeof navigator.userAgent&&navigator.userAgent,n=t||r;return!!(n&&n.indexOf("Electron")>=0)}}).call(this,r(12))},function(e,t,r){var n=r(26),i=r(39);function a(t,r,o){return i()?e.exports=a=Reflect.construct:e.exports=a=function(e,t,r){var i=[null];i.push.apply(i,t);var a=new(Function.bind.apply(e,i));return r&&n(a,r.prototype),a},a.apply(null,arguments)}e.exports=a},,,,function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}},function(e,t,r){var n=r(24);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}},function(e,t){function r(t,n){return e.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(t,n)}e.exports=r},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return a}));var n=r(7),i=r.n(n);function a(t){if("undefined"!=typeof window&&"object"===i()(window.process)&&"renderer"===window.process.type)return!0;if(void 0!==e&&"object"===i()(e.versions)&&Boolean(e.versions.electron))return!0;var r="object"===("undefined"==typeof navigator?"undefined":i()(navigator))&&"string"==typeof navigator.userAgent&&navigator.userAgent,n=t||r;return!!(n&&n.indexOf("Electron")>=0)}}).call(this,r(12))},function(e,t,r){var n=r(41);globalThis.luma=globalThis.luma||{},e.exports=Object.assign(globalThis.luma,n)},,function(e,t,r){var n=function(e){"use strict";var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",o=n.toStringTag||"@@toStringTag";function s(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var i=t&&t.prototype instanceof f?t:f,a=Object.create(i.prototype),o=new A(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(i,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===i)throw a;return T()}for(r.method=i,r.arg=a;;){var o=r.delegate;if(o){var s=_(o,r);if(s){if(s===l)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var u=c(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===l)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,o),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var l={};function f(){}function h(){}function d(){}var v={};v[i]=function(){return this};var g=Object.getPrototypeOf,y=g&&g(g(k([])));y&&y!==t&&r.call(y,i)&&(v=y);var m=d.prototype=f.prototype=Object.create(v);function p(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(i,a){function o(){return new t((function(n,o){!function n(i,a,o,s){var u=c(e[i],e,a);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,o,s)}),(function(e){n("throw",e,o,s)})):t.resolve(f).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,s)}))}s(u.arg)}(i,a,n,o)}))}return n=n?n.then(o,o):o()}}function _(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,_(e,t),"throw"===t.method))return l;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,l;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,l):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,l)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function k(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:T}}function T(){return{value:void 0,done:!0}}return h.prototype=m.constructor=d,d.constructor=h,h.displayName=s(d,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,s(e,o,"GeneratorFunction")),e.prototype=Object.create(m),e},e.awrap=function(e){return{__await:e}},p(b.prototype),b.prototype[a]=function(){return this},e.AsyncIterator=b,e.async=function(t,r,n,i,a){void 0===a&&(a=Promise);var o=new b(u(t,r,n,i),a);return e.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},p(m),s(m,o,"Generator"),m[i]=function(){return this},m.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=k,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return o.type="throw",o.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),l},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),w(r),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;w(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},e}(e.exports);try{regeneratorRuntime=n}catch(e){Function("r","regeneratorRuntime = r")(n)}},function(e,t,r){var n=r(24);e.exports=function(e){if(Array.isArray(e))return n(e)}},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},function(e,t){e.exports=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(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t){},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(n=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw a}}return r}}},function(e,t){e.exports=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(e,t){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},function(e,t,r){var n=r(3);e.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e}},function(e,t,r){"use strict";r.r(t),r.d(t,"AnimationLoop",(function(){return Zr})),r.d(t,"Model",(function(){return ca})),r.d(t,"ProgramManager",(function(){return Ri})),r.d(t,"Transform",(function(){return Pa})),r.d(t,"Geometry",(function(){return Ra})),r.d(t,"ConeGeometry",(function(){return Va})),r.d(t,"CubeGeometry",(function(){return Ka})),r.d(t,"CylinderGeometry",(function(){return to})),r.d(t,"IcoSphereGeometry",(function(){return Eo})),r.d(t,"PlaneGeometry",(function(){return Lo})),r.d(t,"SphereGeometry",(function(){return jo})),r.d(t,"TruncatedConeGeometry",(function(){return Ba})),r.d(t,"Timeline",(function(){return Vo})),r.d(t,"KeyFrames",(function(){return Go})),r.d(t,"ClipSpace",(function(){return Xo}));var n=r(7),i=r.n(n),a=r(14),o=r.n(a),s=r(17),u=r.n(s),c=r(2),l=r.n(c),f=r(1),h=r.n(f),d=r(6),v=r.n(d),g=r(0),y=r.n(g),m=r(18),p=Object(m.a)();function b(e){try{var t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch(e){return null}}var _=function(){function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";l()(this,e),this.storage=b(n),this.id=t,this.config={},Object.assign(this.config,r),this._loadConfiguration()}return h()(e,[{key:"getConfiguration",value:function(){return this.config}},{key:"setConfiguration",value:function(e){return this.config={},this.updateConfiguration(e)}},{key:"updateConfiguration",value:function(e){if(Object.assign(this.config,e),this.storage){var t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}return this}},{key:"_loadConfiguration",value:function(){var e={};if(this.storage){var t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}]),e}();function x(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600,i=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));var a=e.width*r,o=e.height*r,s=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(a/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(i,");"),"background-size:".concat(a,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),s]}var w={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function A(e){return"string"==typeof e?w[e.toUpperCase()]||w.WHITE:e}function k(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return T(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return T(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function E(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"],n=Object.getPrototypeOf(e),i=Object.getOwnPropertyNames(n),a=k(i);try{var o=function(){var n=t.value;"function"==typeof e[n]&&(r.find((function(e){return n===e}))||(e[n]=e[n].bind(e)))};for(a.s();!(t=a.n()).done;)o()}catch(e){a.e(e)}finally{a.f()}}function O(e,t){if(!e)throw new Error(t||"Assertion failed")}var S=r(11);function P(){var e;if(p&&S.b.performance)e=S.b.performance.now();else if(S.a.hrtime){var t=S.a.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}var I={debug:p&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},L={enabled:!0,level:0};function R(){}var M={},D={once:!0};function F(e){for(var t in e)for(var r in e[t])return r||"untitled";return"empty"}var j=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""},r=t.id;l()(this,e),this.id=r,this.VERSION="8.5.12",this._startTs=P(),this._deltaTs=P(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new _("__probe-".concat(this.id,"__"),L),this.userData={},this.timeStamp("".concat(this.id," started")),E(this),Object.seal(this)}return h()(e,[{key:"isEnabled",value:function(){return this._storage.config.enabled}},{key:"getLevel",value:function(){return this._storage.config.level}},{key:"getTotal",value:function(){return Number((P()-this._startTs).toPrecision(10))}},{key:"getDelta",value:function(){return Number((P()-this._deltaTs).toPrecision(10))}},{key:"getPriority",value:function(){return this.level}},{key:"enable",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}},{key:"setLevel",value:function(e){return this._storage.updateConfiguration({level:e}),this}},{key:"assert",value:function(e,t){O(e,t)}},{key:"warn",value:function(e){return this._getLogFunction(0,e,I.warn,arguments,D)}},{key:"error",value:function(e){return this._getLogFunction(0,e,I.error,arguments)}},{key:"deprecated",value:function(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}},{key:"removed",value:function(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}},{key:"probe",value:function(e,t){return this._getLogFunction(e,t,I.log,arguments,{time:!0,once:!0})}},{key:"log",value:function(e,t){return this._getLogFunction(e,t,I.debug,arguments)}},{key:"info",value:function(e,t){return this._getLogFunction(e,t,console.info,arguments)}},{key:"once",value:function(e,t){return this._getLogFunction(e,t,I.debug||I.info,arguments,D)}},{key:"table",value:function(e,t,r){return t?this._getLogFunction(e,t,console.table||R,r&&[r],{tag:F(t)}):R}},{key:"image",value:function(e){var t=e.logLevel,n=e.priority,i=e.image,a=e.message,o=void 0===a?"":a,s=e.scale,u=void 0===s?1:s;return this._shouldLog(t||n)?p?function(e){var t=e.image,r=e.message,n=void 0===r?"":r,i=e.scale,a=void 0===i?1:i;if("string"==typeof t){var o=new Image;return o.onload=function(){var e,t=x(o,n,a);(e=console).log.apply(e,v()(t))},o.src=t,R}var s=t.nodeName||"";if("img"===s.toLowerCase()){var u;return(u=console).log.apply(u,v()(x(t,n,a))),R}if("canvas"===s.toLowerCase()){var c=new Image;return c.onload=function(){var e;return(e=console).log.apply(e,v()(x(c,n,a)))},c.src=t.toDataURL(),R}return R}({image:i,message:o,scale:u}):function(e){var t=e.image,n=(e.message,e.scale),i=void 0===n?1:n,a=null;try{a=r(35)}catch(e){}if(a)return function(){return a(t,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((function(e){return console.log(e)}))};return R}({image:i,message:o,scale:u}):R}},{key:"settings",value:function(){console.table?console.table(this._storage.config):console.log(this._storage.config)}},{key:"get",value:function(e){return this._storage.config[e]}},{key:"set",value:function(e,t){this._storage.updateConfiguration(y()({},e,t))}},{key:"time",value:function(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}},{key:"timeEnd",value:function(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}},{key:"timeStamp",value:function(e,t){return this._getLogFunction(e,t,console.timeStamp||R)}},{key:"group",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1},n=r=C({logLevel:e,message:t,opts:r}),i=n.collapsed;return r.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(r)}},{key:"groupCollapsed",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},r,{collapsed:!0}))}},{key:"groupEnd",value:function(e){return this._getLogFunction(e,"",console.groupEnd||R)}},{key:"withGroup",value:function(e,t,r){this.group(e,t)();try{r()}finally{this.groupEnd(e)()}}},{key:"trace",value:function(){console.trace&&console.trace()}},{key:"_shouldLog",value:function(e){return this.isEnabled()&&this.getLevel()>=B(e)}},{key:"_getLogFunction",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],i=arguments.length>4?arguments[4]:void 0;if(this._shouldLog(e)){var a;i=C({logLevel:e,message:t,args:n,opts:i}),O(r=r||i.method),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=P();var o=i.tag||i.message;if(i.once){if(M[o])return R;M[o]=P()}return t=N(this.id,i.message,i),(a=r).bind.apply(a,[console,t].concat(v()(i.args)))}return R}},{key:"level",set:function(e){this.setLevel(e)},get:function(){return this.getLevel()}},{key:"priority",set:function(e){this.level=e},get:function(){return this.level}}]),e}();function B(e){if(!e)return 0;var t;switch(i()(e)){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return O(Number.isFinite(t)&&t>=0),t}function C(e){var t=e.logLevel,r=e.message;e.logLevel=B(t);for(var n=e.args?Array.from(e.args):[];n.length&&n.shift()!==r;);switch(e.args=n,i()(t)){case"string":case"function":void 0!==r&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());var a=i()(e.message);return O("string"===a||"object"===a),Object.assign(e,e.opts)}function N(e,t,r){if("string"==typeof t){var n=r.time?function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}((s=r.total)<10?"".concat(s.toFixed(2),"ms"):s<100?"".concat(s.toFixed(1),"ms"):s<1e3?"".concat(s.toFixed(0),"ms"):"".concat((s/1e3).toFixed(2),"s")):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),i=t,a=r.color,o=r.background,p||"string"!=typeof i||(a&&(a=A(a),i="[".concat(a,"m").concat(i,"[39m")),o&&(a=A(o),i="[".concat(o+10,"m").concat(i,"[49m"))),t=i}var i,a,o,s;return t}j.VERSION="8.5.12";var U=new j({id:"luma.gl"});function z(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}function V(e){return"undefined"!=typeof WebGLRenderingContext&&e instanceof WebGLRenderingContext||("undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&Number.isFinite(e._version)))}function G(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}function H(e){return z(V(e),"Invalid WebGLRenderingContext"),e}function W(e){return z(G(e),"Requires WebGL2"),e}var X={};function q(e,t){var r;X[e]=!0,void 0!==t&&(r=t,globalThis.console&&globalThis.console.error&&globalThis.console.error(r))}var Q=function e(t){var r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(var n=0;n<this.attribs.length;n++){var i=new e.VertexAttrib(r);this.attribs[n]=i}this.maxAttrib=0};(Q.VertexAttrib=function(e){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()}).prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var $,Y=function(e){var t=this;this.gl=e,function(e){var t=e.getError;e.getError=function(){var r;do{0!==(r=t.apply(e))&&(X[r]=!0)}while(0!==r);for(r in X)if(X[r])return delete X[r],parseInt(r,10);return 0}}(e);var r=this.original={getParameter:e.getParameter,enableVertexAttribArray:e.enableVertexAttribArray,disableVertexAttribArray:e.disableVertexAttribArray,bindBuffer:e.bindBuffer,getVertexAttrib:e.getVertexAttrib,vertexAttribPointer:e.vertexAttribPointer};e.getParameter=function(e){return e===t.VERTEX_ARRAY_BINDING_OES?t.currentVertexArrayObject===t.defaultVertexArrayObject?null:t.currentVertexArrayObject:r.getParameter.apply(this,arguments)},e.enableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var i=n.attribs[e];return i.enabled=!0,r.enableVertexAttribArray.apply(this,arguments)},e.disableVertexAttribArray=function(e){var n=t.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,e);var i=n.attribs[e];return i.enabled=!1,r.disableVertexAttribArray.apply(this,arguments)},e.bindBuffer=function(e,n){switch(e){case 34962:t.currentArrayBuffer=n;break;case 34963:t.currentVertexArrayObject.elementArrayBuffer=n}return r.bindBuffer.apply(this,arguments)},e.getVertexAttrib=function(e,n){var i=t.currentVertexArrayObject,a=i.attribs[e];switch(n){case 34975:return a.buffer;case 34338:return a.enabled;case 34339:return a.size;case 34340:return a.stride;case 34341:return a.type;case 34922:return a.normalized;default:return r.getVertexAttrib.apply(this,arguments)}},e.vertexAttribPointer=function(e,n,i,a,o,s){var u=t.currentVertexArrayObject;u.maxAttrib=Math.max(u.maxAttrib,e);var c=u.attribs[e];return c.buffer=t.currentArrayBuffer,c.size=n,c.type=i,c.normalized=a,c.stride=o,c.offset=s,c.recache(),r.vertexAttribPointer.apply(this,arguments)},e.instrumentExtension&&e.instrumentExtension(this,"OES_vertex_array_object"),e.canvas&&e.canvas.addEventListener("webglcontextrestored",(function(){var e;e="OESVertexArrayObject emulation library context restored",globalThis.console&&globalThis.console.log&&globalThis.console.log(e),t.reset_()}),!0),this.reset_()};Y.prototype.VERTEX_ARRAY_BINDING_OES=34229,Y.prototype.reset_=function(){if(void 0!==this.vertexArrayObjects)for(var e=0;e<this.vertexArrayObjects.length;++e)this.vertexArrayObjects.isAlive=!1;var t=this.gl;this.maxVertexAttribs=t.getParameter(34921),this.defaultVertexArrayObject=new Q(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)},Y.prototype.createVertexArrayOES=function(){var e=new Q(this);return this.vertexArrayObjects.push(e),e},Y.prototype.deleteVertexArrayOES=function(e){e.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(e),1),this.currentVertexArrayObject===e&&this.bindVertexArrayOES(null)},Y.prototype.isVertexArrayOES=function(e){return!!(e&&e instanceof Q&&e.hasBeenBound&&e.ext===this)},Y.prototype.bindVertexArrayOES=function(e){var t=this.gl;if(!e||e.isAlive){var r=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=e||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;var i=this.currentVertexArrayObject;if(n!==i){n&&i.elementArrayBuffer===n.elementArrayBuffer||r.bindBuffer.call(t,34963,i.elementArrayBuffer);for(var a=this.currentArrayBuffer,o=Math.max(n?n.maxAttrib:0,i.maxAttrib),s=0;s<=o;s++){var u=i.attribs[s],c=n?n.attribs[s]:null;if(n&&u.enabled===c.enabled||(u.enabled?r.enableVertexAttribArray.call(t,s):r.disableVertexAttribArray.call(t,s)),u.enabled){var l=!1;n&&u.buffer===c.buffer||(a!==u.buffer&&(r.bindBuffer.call(t,34962,u.buffer),a=u.buffer),l=!0),(l||u.cached!==c.cached)&&r.vertexAttribPointer.call(t,s,u.size,u.type,u.normalized,u.stride,u.offset)}}this.currentArrayBuffer!==a&&r.bindBuffer.call(t,34962,this.currentArrayBuffer)}}else q(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject")};var K,J=function(e){return G(e)?void 0:0},Z=($={},y()($,3074,(function(e){return G(e)?void 0:36064})),y()($,35723,(function(e){return G(e)?void 0:4352})),y()($,35977,J),y()($,32937,J),y()($,36795,(function(e,t){var r=G(e)?e.getExtension("EXT_disjoint_timer_query_webgl2"):e.getExtension("EXT_disjoint_timer_query");return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0})),y()($,37445,(function(e,t){var r=e.getExtension("WEBGL_debug_renderer_info");return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)})),y()($,37446,(function(e,t){var r=e.getExtension("WEBGL_debug_renderer_info");return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)})),y()($,34047,(function(e,t){var r=e.luma.extensions.EXT_texture_filter_anisotropic;return r?t(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1})),y()($,32883,J),y()($,35071,J),y()($,37447,J),y()($,36063,(function(e,t){if(!G(e)){var r=e.getExtension("WEBGL_draw_buffers");return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}})),y()($,35379,J),y()($,35374,J),y()($,35377,J),y()($,34852,(function(e){if(!G(e)){var t=e.getExtension("WEBGL_draw_buffers");return t?t.MAX_DRAW_BUFFERS_WEBGL:0}})),y()($,36203,(function(e){return e.getExtension("OES_element_index")?2147483647:65535})),y()($,33001,(function(e){return e.getExtension("OES_element_index")?16777216:65535})),y()($,33e3,(function(e){return 16777216})),y()($,37157,J),y()($,35373,J),y()($,35657,J),y()($,36183,J),y()($,37137,J),y()($,34045,J),y()($,35978,J),y()($,35979,J),y()($,35968,J),y()($,35376,J),y()($,35375,J),y()($,35659,J),y()($,37154,J),y()($,35371,J),y()($,35658,J),y()($,35076,J),y()($,35077,J),y()($,35380,J),$);var ee=(K={},y()(K,"OES_vertex_array_object",{meta:{suffix:"OES"},createVertexArray:function(){z(!1,"VertexArray requires WebGL2 or OES_vertex_array_object extension")},deleteVertexArray:function(){},bindVertexArray:function(){},isVertexArray:function(){return!1}}),y()(K,"ANGLE_instanced_arrays",{meta:{suffix:"ANGLE"},vertexAttribDivisor:function(e,t){z(0===t,"WebGL instanced rendering not supported")},drawElementsInstanced:function(){},drawArraysInstanced:function(){}}),y()(K,"WEBGL_draw_buffers",{meta:{suffix:"WEBGL"},drawBuffers:function(){z(!1)}}),y()(K,"EXT_disjoint_timer_query",{meta:{suffix:"EXT"},createQuery:function(){z(!1)},deleteQuery:function(){z(!1)},beginQuery:function(){z(!1)},endQuery:function(){},getQuery:function(e,t){return this.getQueryObject(e,t)},getQueryParameter:function(e,t){return this.getQueryObject(e,t)},getQueryObject:function(){}}),K),te={readBuffer:function(e,t,r){G(e)&&t(r)},getVertexAttrib:function(e,t,r,n){var i,a=function(e,t){return{webgl2:G(e),ext:e.getExtension(t)}}(e,"ANGLE_instanced_arrays"),o=a.webgl2,s=a.ext;switch(n){case 35069:i=!!o&&void 0;break;case 35070:i=o||s?void 0:0}return void 0!==i?i:t(r,n)},getProgramParameter:function(e,t,r,n){if(!G(e))switch(n){case 35967:return 35981;case 35971:case 35382:return 0}return t(r,n)},getInternalformatParameter:function(e,t,r,n,i){if(!G(e))switch(i){case 32937:return new Int32Array([0])}return e.getInternalformatParameter(r,n,i)},getTexParameter:function(e,t,r,n){switch(n){case 34046:var i=e.luma.extensions.EXT_texture_filter_anisotropic;n=i&&i.TEXTURE_MAX_ANISOTROPY_EXT||34046}return t(r,n)},getParameter:function(e,t,r){var n=Z[r],i="function"==typeof n?n(e,t,r):n;return void 0!==i?i:t(r)},hint:function(e,t,r,n){return t(r,n)}};function re(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ne(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ne(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ie(e,t){var r=t.extension,n=t.target,i=t.target2,a=ee[r];z(a);for(var o=a.meta,s=(void 0===o?{}:o).suffix,u=void 0===s?"":s,c=e.getExtension(r),l=function(){var t=h[f],r="".concat(t).concat(u),o=null;"meta"===t||"function"==typeof e[t]||(c&&"function"==typeof c[r]?o=function(){return c[r].apply(c,arguments)}:"function"==typeof a[t]&&(o=a[t].bind(n))),o&&(n[t]=o,i[t]=o)},f=0,h=Object.keys(a);f<h.length;f++)l()}globalThis.polyfillContext=function(e){e.luma=e.luma||{};var t=e.luma;return t.polyfilled||(!function(e){if("function"!=typeof e.createVertexArray){var t=e.getSupportedExtensions;e.getSupportedExtensions=function(){var e=t.call(this)||[];return e.indexOf("OES_vertex_array_object")<0&&e.push("OES_vertex_array_object"),e};var r=e.getExtension;e.getExtension=function(t){var n=r.call(this,t);return n||("OES_vertex_array_object"!==t?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Y(this)),this.__OESVertexArrayObject))}}}(e),function(e){e.luma.extensions={};var t,r=re(e.getSupportedExtensions()||[]);try{for(r.s();!(t=r.n()).done;){var n=t.value;e.luma[n]=e.getExtension(n)}}catch(e){r.e(e)}finally{r.f()}}(e),function(e,t){var r,n=re(Object.getOwnPropertyNames(t));try{for(n.s();!(r=n.n()).done;){var i=r.value;"overrides"!==i&&ie(e,{extension:i,target:e.luma,target2:e})}}catch(e){n.e(e)}finally{n.f()}}(e,ee),function(e,t){var r=t.target,n=t.target2;Object.keys(te).forEach((function(t){if("function"==typeof te[t]){var i=e[t]?e[t].bind(e):function(){},a=te[t].bind(null,e,i);r[t]=a,n[t]=a}}))}(e,{target:t,target2:e}),t.polyfilled=!0),e};var ae,oe,se,ue=r(9),ce=r.n(ue),le=(ae={},y()(ae,3042,!1),y()(ae,32773,new Float32Array([0,0,0,0])),y()(ae,32777,32774),y()(ae,34877,32774),y()(ae,32969,1),y()(ae,32968,0),y()(ae,32971,1),y()(ae,32970,0),y()(ae,3106,new Float32Array([0,0,0,0])),y()(ae,3107,[!0,!0,!0,!0]),y()(ae,2884,!1),y()(ae,2885,1029),y()(ae,2929,!1),y()(ae,2931,1),y()(ae,2932,513),y()(ae,2928,new Float32Array([0,1])),y()(ae,2930,!0),y()(ae,3024,!0),y()(ae,36006,null),y()(ae,2886,2305),y()(ae,33170,4352),y()(ae,2849,1),y()(ae,32823,!1),y()(ae,32824,0),y()(ae,10752,0),y()(ae,32938,1),y()(ae,32939,!1),y()(ae,3089,!1),y()(ae,3088,new Int32Array([0,0,1024,1024])),y()(ae,2960,!1),y()(ae,2961,0),y()(ae,2968,4294967295),y()(ae,36005,4294967295),y()(ae,2962,519),y()(ae,2967,0),y()(ae,2963,4294967295),y()(ae,34816,519),y()(ae,36003,0),y()(ae,36004,4294967295),y()(ae,2964,7680),y()(ae,2965,7680),y()(ae,2966,7680),y()(ae,34817,7680),y()(ae,34818,7680),y()(ae,34819,7680),y()(ae,2978,[0,0,1024,1024]),y()(ae,3333,4),y()(ae,3317,4),y()(ae,37440,!1),y()(ae,37441,!1),y()(ae,37443,37444),y()(ae,35723,4352),y()(ae,36010,null),y()(ae,35977,!1),y()(ae,3330,0),y()(ae,3332,0),y()(ae,3331,0),y()(ae,3314,0),y()(ae,32878,0),y()(ae,3316,0),y()(ae,3315,0),y()(ae,32877,0),ae),fe=function(e,t,r){return t?e.enable(r):e.disable(r)},he=function(e,t,r){return e.hint(r,t)},de=function(e,t,r){return e.pixelStorei(r,t)};function ve(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var ge=(oe={},y()(oe,3042,fe),y()(oe,32773,(function(e,t){return e.blendColor.apply(e,v()(t))})),y()(oe,32777,"blendEquation"),y()(oe,34877,"blendEquation"),y()(oe,32969,"blendFunc"),y()(oe,32968,"blendFunc"),y()(oe,32971,"blendFunc"),y()(oe,32970,"blendFunc"),y()(oe,3106,(function(e,t){return e.clearColor.apply(e,v()(t))})),y()(oe,3107,(function(e,t){return e.colorMask.apply(e,v()(t))})),y()(oe,2884,fe),y()(oe,2885,(function(e,t){return e.cullFace(t)})),y()(oe,2929,fe),y()(oe,2931,(function(e,t){return e.clearDepth(t)})),y()(oe,2932,(function(e,t){return e.depthFunc(t)})),y()(oe,2928,(function(e,t){return e.depthRange.apply(e,v()(t))})),y()(oe,2930,(function(e,t){return e.depthMask(t)})),y()(oe,3024,fe),y()(oe,35723,he),y()(oe,36006,(function(e,t){var r=G(e)?36009:36160;return e.bindFramebuffer(r,t)})),y()(oe,2886,(function(e,t){return e.frontFace(t)})),y()(oe,33170,he),y()(oe,2849,(function(e,t){return e.lineWidth(t)})),y()(oe,32823,fe),y()(oe,32824,"polygonOffset"),y()(oe,10752,"polygonOffset"),y()(oe,35977,fe),y()(oe,32938,"sampleCoverage"),y()(oe,32939,"sampleCoverage"),y()(oe,3089,fe),y()(oe,3088,(function(e,t){return e.scissor.apply(e,v()(t))})),y()(oe,2960,fe),y()(oe,2961,(function(e,t){return e.clearStencil(t)})),y()(oe,2968,(function(e,t){return e.stencilMaskSeparate(1028,t)})),y()(oe,36005,(function(e,t){return e.stencilMaskSeparate(1029,t)})),y()(oe,2962,"stencilFuncFront"),y()(oe,2967,"stencilFuncFront"),y()(oe,2963,"stencilFuncFront"),y()(oe,34816,"stencilFuncBack"),y()(oe,36003,"stencilFuncBack"),y()(oe,36004,"stencilFuncBack"),y()(oe,2964,"stencilOpFront"),y()(oe,2965,"stencilOpFront"),y()(oe,2966,"stencilOpFront"),y()(oe,34817,"stencilOpBack"),y()(oe,34818,"stencilOpBack"),y()(oe,34819,"stencilOpBack"),y()(oe,2978,(function(e,t){return e.viewport.apply(e,v()(t))})),y()(oe,3333,de),y()(oe,3317,de),y()(oe,37440,de),y()(oe,37441,de),y()(oe,37443,de),y()(oe,3330,de),y()(oe,3332,de),y()(oe,3331,de),y()(oe,36010,(function(e,t){return e.bindFramebuffer(36008,t)})),y()(oe,3314,de),y()(oe,32878,de),y()(oe,3316,de),y()(oe,3315,de),y()(oe,32877,de),y()(oe,"framebuffer",(function(e,t){var r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)})),y()(oe,"blend",(function(e,t){return t?e.enable(3042):e.disable(3042)})),y()(oe,"blendColor",(function(e,t){return e.blendColor.apply(e,v()(t))})),y()(oe,"blendEquation",(function(e,t){t=ve(t)?t:[t,t],e.blendEquationSeparate.apply(e,v()(t))})),y()(oe,"blendFunc",(function(e,t){t=ve(t)&&2===t.length?[].concat(v()(t),v()(t)):t,e.blendFuncSeparate.apply(e,v()(t))})),y()(oe,"clearColor",(function(e,t){return e.clearColor.apply(e,v()(t))})),y()(oe,"clearDepth",(function(e,t){return e.clearDepth(t)})),y()(oe,"clearStencil",(function(e,t){return e.clearStencil(t)})),y()(oe,"colorMask",(function(e,t){return e.colorMask.apply(e,v()(t))})),y()(oe,"cull",(function(e,t){return t?e.enable(2884):e.disable(2884)})),y()(oe,"cullFace",(function(e,t){return e.cullFace(t)})),y()(oe,"depthTest",(function(e,t){return t?e.enable(2929):e.disable(2929)})),y()(oe,"depthFunc",(function(e,t){return e.depthFunc(t)})),y()(oe,"depthMask",(function(e,t){return e.depthMask(t)})),y()(oe,"depthRange",(function(e,t){return e.depthRange.apply(e,v()(t))})),y()(oe,"dither",(function(e,t){return t?e.enable(3024):e.disable(3024)})),y()(oe,"derivativeHint",(function(e,t){e.hint(35723,t)})),y()(oe,"frontFace",(function(e,t){return e.frontFace(t)})),y()(oe,"mipmapHint",(function(e,t){return e.hint(33170,t)})),y()(oe,"lineWidth",(function(e,t){return e.lineWidth(t)})),y()(oe,"polygonOffsetFill",(function(e,t){return t?e.enable(32823):e.disable(32823)})),y()(oe,"polygonOffset",(function(e,t){return e.polygonOffset.apply(e,v()(t))})),y()(oe,"sampleCoverage",(function(e,t){return e.sampleCoverage.apply(e,v()(t))})),y()(oe,"scissorTest",(function(e,t){return t?e.enable(3089):e.disable(3089)})),y()(oe,"scissor",(function(e,t){return e.scissor.apply(e,v()(t))})),y()(oe,"stencilTest",(function(e,t){return t?e.enable(2960):e.disable(2960)})),y()(oe,"stencilMask",(function(e,t){var r=t=ve(t)?t:[t,t],n=ce()(r,2),i=n[0],a=n[1];e.stencilMaskSeparate(1028,i),e.stencilMaskSeparate(1029,a)})),y()(oe,"stencilFunc",(function(e,t){var r=t=ve(t)&&3===t.length?[].concat(v()(t),v()(t)):t,n=ce()(r,6),i=n[0],a=n[1],o=n[2],s=n[3],u=n[4],c=n[5];e.stencilFuncSeparate(1028,i,a,o),e.stencilFuncSeparate(1029,s,u,c)})),y()(oe,"stencilOp",(function(e,t){var r=t=ve(t)&&3===t.length?[].concat(v()(t),v()(t)):t,n=ce()(r,6),i=n[0],a=n[1],o=n[2],s=n[3],u=n[4],c=n[5];e.stencilOpSeparate(1028,i,a,o),e.stencilOpSeparate(1029,s,u,c)})),y()(oe,"viewport",(function(e,t){return e.viewport.apply(e,v()(t))})),oe);function ye(e,t,r){return void 0!==t[e]?t[e]:r[e]}var me={blendEquation:function(e,t,r){return e.blendEquationSeparate(ye(32777,t,r),ye(34877,t,r))},blendFunc:function(e,t,r){return e.blendFuncSeparate(ye(32969,t,r),ye(32968,t,r),ye(32971,t,r),ye(32970,t,r))},polygonOffset:function(e,t,r){return e.polygonOffset(ye(32824,t,r),ye(10752,t,r))},sampleCoverage:function(e,t,r){return e.sampleCoverage(ye(32938,t,r),ye(32939,t,r))},stencilFuncFront:function(e,t,r){return e.stencilFuncSeparate(1028,ye(2962,t,r),ye(2967,t,r),ye(2963,t,r))},stencilFuncBack:function(e,t,r){return e.stencilFuncSeparate(1029,ye(34816,t,r),ye(36003,t,r),ye(36004,t,r))},stencilOpFront:function(e,t,r){return e.stencilOpSeparate(1028,ye(2964,t,r),ye(2965,t,r),ye(2966,t,r))},stencilOpBack:function(e,t,r){return e.stencilOpSeparate(1029,ye(34817,t,r),ye(34818,t,r),ye(34819,t,r))}},pe={enable:function(e,t){return e(y()({},t,!0))},disable:function(e,t){return e(y()({},t,!1))},pixelStorei:function(e,t,r){return e(y()({},t,r))},hint:function(e,t,r){return e(y()({},t,r))},bindFramebuffer:function(e,t,r){var n;switch(t){case 36160:return e((n={},y()(n,36006,r),y()(n,36010,r),n));case 36009:return e(y()({},36006,r));case 36008:return e(y()({},36010,r));default:return null}},blendColor:function(e,t,r,n,i){return e(y()({},32773,new Float32Array([t,r,n,i])))},blendEquation:function(e,t){var r;return e((r={},y()(r,32777,t),y()(r,34877,t),r))},blendEquationSeparate:function(e,t,r){var n;return e((n={},y()(n,32777,t),y()(n,34877,r),n))},blendFunc:function(e,t,r){var n;return e((n={},y()(n,32969,t),y()(n,32968,r),y()(n,32971,t),y()(n,32970,r),n))},blendFuncSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,32969,t),y()(a,32968,r),y()(a,32971,n),y()(a,32970,i),a))},clearColor:function(e,t,r,n,i){return e(y()({},3106,new Float32Array([t,r,n,i])))},clearDepth:function(e,t){return e(y()({},2931,t))},clearStencil:function(e,t){return e(y()({},2961,t))},colorMask:function(e,t,r,n,i){return e(y()({},3107,[t,r,n,i]))},cullFace:function(e,t){return e(y()({},2885,t))},depthFunc:function(e,t){return e(y()({},2932,t))},depthRange:function(e,t,r){return e(y()({},2928,new Float32Array([t,r])))},depthMask:function(e,t){return e(y()({},2930,t))},frontFace:function(e,t){return e(y()({},2886,t))},lineWidth:function(e,t){return e(y()({},2849,t))},polygonOffset:function(e,t,r){var n;return e((n={},y()(n,32824,t),y()(n,10752,r),n))},sampleCoverage:function(e,t,r){var n;return e((n={},y()(n,32938,t),y()(n,32939,r),n))},scissor:function(e,t,r,n,i){return e(y()({},3088,new Int32Array([t,r,n,i])))},stencilMask:function(e,t){var r;return e((r={},y()(r,2968,t),y()(r,36005,t),r))},stencilMaskSeparate:function(e,t,r){return e(y()({},1028===t?2968:36005,r))},stencilFunc:function(e,t,r,n){var i;return e((i={},y()(i,2962,t),y()(i,2967,r),y()(i,2963,n),y()(i,34816,t),y()(i,36003,r),y()(i,36004,n),i))},stencilFuncSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,1028===t?2962:34816,r),y()(a,1028===t?2967:36003,n),y()(a,1028===t?2963:36004,i),a))},stencilOp:function(e,t,r,n){var i;return e((i={},y()(i,2964,t),y()(i,2965,r),y()(i,2966,n),y()(i,34817,t),y()(i,34818,r),y()(i,34819,n),i))},stencilOpSeparate:function(e,t,r,n,i){var a;return e((a={},y()(a,1028===t?2964:34817,r),y()(a,1028===t?2965:34818,n),y()(a,1028===t?2966:34819,i),a))},viewport:function(e,t,r,n,i){return e(y()({},2978,[t,r,n,i]))}},be=function(e,t){return e.isEnabled(t)},_e=(se={},y()(se,3042,be),y()(se,2884,be),y()(se,2929,be),y()(se,3024,be),y()(se,32823,be),y()(se,32926,be),y()(se,32928,be),y()(se,3089,be),y()(se,2960,be),y()(se,35977,be),se);function xe(e){for(var t in e)return!1;return!0}function we(e,t){if(e===t)return!0;var r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(var i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}return!1}function Ae(e,t){var r=e[t].bind(e);e[t]=function(){var t=arguments.length<=0?void 0:arguments[0];return t in e.state.cache&&e.state.enable?e.state.cache[t]:r.apply(void 0,arguments)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function ke(e,t,r){var n=e[t].bind(e);e[t]=function(){for(var t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];var o=r.apply(void 0,[e.state._updateCache].concat(i)),s=o.valueChanged,u=o.oldValue;return s&&n.apply(void 0,i),u},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}function Te(e){var t=e.useProgram.bind(e);e.useProgram=function(r){e.state.program!==r&&(t(r),e.state.program=r)}}var Ee=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.copyState,i=void 0!==n&&n,a=r.log,o=void 0===a?function(){}:a;l()(this,e),this.gl=t,this.program=null,this.stateStack=[],this.enable=!0,this.cache=i?Re(t):Object.assign({},le),this.log=o,this._updateCache=this._updateCache.bind(this),Object.seal(this)}return h()(e,[{key:"push",value:function(){this.stateStack.push({})}},{key:"pop",value:function(){z(this.stateStack.length>0);var e=this.stateStack[this.stateStack.length-1];Le(this.gl,e),this.stateStack.pop()}},{key:"_updateCache",value:function(e){var t,r=!1,n=this.stateStack.length>0&&this.stateStack[this.stateStack.length-1];for(var i in e){z(void 0!==i);var a=e[i],o=this.cache[i];we(a,o)||(r=!0,t=o,n&&!(i in n)&&(n[i]=o),this.cache[i]=a)}return{valueChanged:r,oldValue:t}}}]),e}();function Oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.enable,n=void 0===r||r,i=t.copyState;if(z(void 0!==i),!e.state){var a=globalThis.polyfillContext;for(var o in a&&a(e),e.state=new Ee(e,{copyState:i}),Te(e),pe){var s=pe[o];ke(e,o,s)}Ae(e,"getParameter"),Ae(e,"isEnabled")}return e.state.enable=n,e}function Se(e){z(e.state),e.state.pop()}function Pe(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Ie(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ie(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Le(e,t){if(z(V(e),"setParameters requires a WebGL context"),!xe(t)){var r={};for(var n in t){var i=Number(n),a=ge[n];a&&("string"==typeof a?r[a]=!0:a(e,t[n],i))}var o=e.state&&e.state.cache;if(o)for(var s in r){(0,me[s])(e,t,o)}}}function Re(e,t){if("number"==typeof(t=t||le)){var r=t,n=_e[r];return n?n(e,r):e.getParameter(r)}var i,a={},o=Pe(Array.isArray(t)?t:Object.keys(t));try{for(o.s();!(i=o.n()).done;){var s=i.value,u=_e[s];a[s]=u?u(e,Number(s)):e.getParameter(Number(s))}}catch(e){o.e(e)}finally{o.f()}return a}function Me(e,t,r){if(xe(t))return r(e);var n,i=t.nocatch,a=void 0===i||i;if(function(e){e.state||Oe(e,{copyState:!1}),e.state.push()}(e),Le(e,t),a)n=r(e),Se(e);else try{n=r(e)}finally{Se(e)}return n}var De=r(44);function Fe(e){var t="undefined"==typeof window?1:window.devicePixelRatio||1;return Number.isFinite(e)?e<=0?1:e:e?t:1}var je=Object(De.a)(),Be=je&&"undefined"!=typeof document,Ce={webgl2:!0,webgl1:!0,throwOnError:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function Ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};z(je,"createGLContext only available in the browser.\nCreate your own headless context or use 'createHeadlessContext' from @luma.gl/test-utils");var t,r=e=Object.assign({},Ce,e),n=r.width,i=r.height;function a(t){if(e.throwOnError)throw new Error(t);return console.error(t),null}e.onError=a;var o=e,s=o.canvas,u=Ve({canvas:s,width:n,height:i,onError:a});return(t=ze(u,e))?(Ge(t=Ue(t,e)),t):null}function Ue(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||e._instrumented)return e;e._version=e._version||He(e),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var r=t=Object.assign({},Ce,t),n=r.manageState,i=r.debug;return n&&Oe(e,{copyState:!1,log:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return U.log.apply(U,[1].concat(t))()}}),je&&i&&(globalThis.makeDebugContext?(e=globalThis.makeDebugContext(e,t),U.level=Math.max(U.level,1)):U.warn('WebGL debug mode not activated. import "@luma.gl/debug" to enable.')()),e._instrumented=!0,e}function ze(e,t){var r=t.onError,n=null,i=function(e){return n=e.statusMessage||n};e.addEventListener("webglcontextcreationerror",i,!1);var a=t.webgl1,o=void 0===a||a,s=t.webgl2,u=void 0===s||s,c=null;return u&&(c=(c=c||e.getContext("webgl2",t))||e.getContext("experimental-webgl2",t)),o&&(c=(c=c||e.getContext("webgl",t))||e.getContext("experimental-webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),c?(t.onContextLost&&e.addEventListener("webglcontextlost",t.onContextLost,!1),t.onContextRestored&&e.addEventListener("webglcontextrestored",t.onContextRestored,!1),c):r("Failed to create ".concat(u&&!o?"WebGL2":"WebGL"," context: ").concat(n||"Unknown error"))}function Ve(e){var t,r=e.canvas,n=e.width,i=void 0===n?800:n,a=e.height,o=void 0===a?600:a,s=e.onError;"string"==typeof r?(Be&&"complete"===document.readyState||s("createGLContext called on canvas '".concat(r,"' before page was loaded")),t=document.getElementById(r)):r?t=r:((t=document.createElement("canvas")).id="lumagl-canvas",t.style.width=Number.isFinite(i)?"".concat(i,"px"):"100%",t.style.height=Number.isFinite(o)?"".concat(o,"px"):"100%",document.body.insertBefore(t,document.body.firstChild));return t}function Ge(e){var t=G(e)?"WebGL2":"WebGL1",r=function(e){var t=e.getParameter(7936),r=e.getParameter(7937),n=e.getExtension("WEBGL_debug_renderer_info");return{vendor:n&&e.getParameter(n.UNMASKED_VENDOR_WEBGL||7936)||t,renderer:n&&e.getParameter(n.UNMASKED_RENDERER_WEBGL||7937)||r,vendorMasked:t,rendererMasked:r,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e),n=r?"(".concat(r.vendor,",").concat(r.renderer,")"):"",i=e.debug?" debug":"";U.info(1,"".concat(t).concat(i," context ").concat(n))()}function He(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext?2:1}function We(e,t,r){var n="width"in r?r.width:e.canvas.clientWidth,i="height"in r?r.height:e.canvas.clientHeight;n&&i||(U.log(1,"Canvas clientWidth/clientHeight is 0")(),t=1,n=e.canvas.width||1,i=e.canvas.height||1),e.luma=e.luma||{},e.luma.canvasSizeInfo=e.luma.canvasSizeInfo||{};var a=e.luma.canvasSizeInfo;if(a.clientWidth!==n||a.clientHeight!==i||a.devicePixelRatio!==t){var o=t,s=Math.floor(n*o),u=Math.floor(i*o);e.canvas.width=s,e.canvas.height=u,e.drawingBufferWidth===s&&e.drawingBufferHeight===u||(U.warn("Device pixel ratio clamped")(),o=Math.min(e.drawingBufferWidth/n,e.drawingBufferHeight/i),e.canvas.width=Math.floor(n*o),e.canvas.height=Math.floor(i*o)),Object.assign(e.luma.canvasSizeInfo,{clientWidth:n,clientHeight:i,devicePixelRatio:t})}}var Xe=r(15),qe=function(){function e(t,r){l()(this,e),this.name=t,this.type=r,this.sampleSize=1,this.reset()}return h()(e,[{key:"setSampleSize",value:function(e){return this.sampleSize=e,this}},{key:"incrementCount",value:function(){return this.addCount(1),this}},{key:"decrementCount",value:function(){return this.subtractCount(1),this}},{key:"addCount",value:function(e){return this._count+=e,this._samples++,this._checkSampling(),this}},{key:"subtractCount",value:function(e){return this._count-=e,this._samples++,this._checkSampling(),this}},{key:"addTime",value:function(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}},{key:"timeStart",value:function(){return this._startTime=Object(Xe.a)(),this._timerPending=!0,this}},{key:"timeEnd",value:function(){return this._timerPending?(this.addTime(Object(Xe.a)()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}},{key:"getSampleAverageCount",value:function(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}},{key:"getSampleAverageTime",value:function(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}},{key:"getSampleHz",value:function(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}},{key:"getAverageCount",value:function(){return this.samples>0?this.count/this.samples:0}},{key:"getAverageTime",value:function(){return this.samples>0?this.time/this.samples:0}},{key:"getHz",value:function(){return this.time>0?this.samples/(this.time/1e3):0}},{key:"reset",value:function(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}},{key:"_checkSampling",value:function(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}]),e}(),Qe=function(){function e(t){var r=t.id,n=t.stats;l()(this,e),this.id=r,this.stats={},this._initializeStats(n),Object.seal(this)}return h()(e,[{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"count";return this._getOrCreate({name:e,type:t})}},{key:"reset",value:function(){for(var e in this.stats)this.stats[e].reset();return this}},{key:"forEach",value:function(e){for(var t in this.stats)e(this.stats[t])}},{key:"getTable",value:function(){var e={};return this.forEach((function(t){e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}})),e}},{key:"_initializeStats",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){return e._getOrCreate(t)}))}},{key:"_getOrCreate",value:function(e){if(!e||!e.name)return null;var t=e.name,r=e.type;return this.stats[t]||(this.stats[t]=e instanceof qe?e:new qe(t,r)),this.stats[t]}},{key:"size",get:function(){return Object.keys(this.stats).length}}]),e}(),$e=new(function(){function e(){l()(this,e),this.stats=new Map}return h()(e,[{key:"get",value:function(e){return this.stats.has(e)||this.stats.set(e,new Qe({id:e})),this.stats.get(e)}}]),e}());if(globalThis.luma&&"8.5.12"!==globalThis.luma.VERSION)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat("8.5.12"));globalThis.luma||(Object(De.a)()&&U.log(1,"luma.gl ".concat("8.5.12"," - ").concat("set luma.log.level=1 (or higher) to trace rendering"))(),globalThis.luma=globalThis.luma||{VERSION:"8.5.12",version:"8.5.12",log:U,stats:$e,globals:{modules:{},nodeIO:{}}});globalThis.luma;function Ye(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}var Ke=r(8),Je=r.n(Ke),Ze=r(4),et=r.n(Ze),tt=r(5),rt=r.n(tt),nt=r(3),it=r.n(nt);function at(e,t){if("string"!=typeof t)return t;var r=Number(t);if(!isNaN(r))return r;var n=e[t=t.replace(/^.*\./,"")];return Ye(void 0!==n,"Accessing undefined constant GL.".concat(t)),n}function ot(e,t){for(var r in t=Number(t),e)if(e[r]===t)return"GL.".concat(r);return String(t)}var st={};function ut(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"id";st[e]=st[e]||1;var t=st[e]++;return"".concat(e,"-").concat(t)}function ct(e){return Ye("number"==typeof e,"Input must be a number"),e&&0==(e&e-1)}function lt(e){var t=!0;for(var r in e){t=!1;break}return t}function ft(e,t,r,n){var i="See luma.gl ".concat(r," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),a=Object.getPrototypeOf(e);n.forEach((function(e){a.methodName||(a[e]=function(){throw U.removed("Calling removed method ".concat(t,".").concat(e,": "),i)(),new Error(e)})}))}function ht(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return dt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return dt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var vt="Resource subclass must define virtual methods",gt=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),H(t);var n=r.id,i=r.userData,a=void 0===i?{}:i;this.gl=t,this.gl2=t,this.id=n||ut(this[Symbol.toStringTag]),this.userData=a,this._bound=!1,this._handle=r.handle,void 0===this._handle&&(this._handle=this._createHandle()),this.byteLength=0,this._addStats()}return h()(e,[{key:Symbol.toStringTag,get:function(){return"Resource"}}]),h()(e,[{key:"toString",value:function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.deleteChildren,r=void 0!==t&&t,n=this._handle&&this._deleteHandle(this._handle);return this._handle&&this._removeStats(),this._handle=null,n&&r&&n.filter(Boolean).forEach((function(e){return e.delete()})),this}},{key:"bind",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.handle;return"function"!=typeof t?(this._bindHandle(t),this):(this._bound?e=t():(this._bindHandle(this.handle),this._bound=!0,e=t(),this._bound=!1,this._bindHandle(null)),e)}},{key:"unbind",value:function(){this.bind(null)}},{key:"getParameter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ye(e=at(this.gl,e));var r=this.constructor.PARAMETERS||{},n=r[e];if(n){var i=G(this.gl),a=(!("webgl2"in n)||i)&&(!("extension"in n)||this.gl.getExtension(n.extension));if(!a){var o=n.webgl1,s="webgl2"in n?n.webgl2:n.webgl1,u=i?s:o;return u}}return this._getParameter(e,t)}},{key:"getParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.parameters,n=t.keys,i=this.constructor.PARAMETERS||{},a=G(this.gl),o={},s=r||Object.keys(i),u=ht(s);try{for(u.s();!(e=u.n()).done;){var c=e.value,l=i[c],f=l&&(!("webgl2"in l)||a)&&(!("extension"in l)||this.gl.getExtension(l.extension));if(f){var h=n?ot(this.gl,c):c;o[h]=this.getParameter(c,t),n&&"GLenum"===l.type&&(o[h]=ot(this.gl,o[h]))}}}catch(e){u.e(e)}finally{u.f()}return o}},{key:"setParameter",value:function(e,t){Ye(e=at(this.gl,e));var r=(this.constructor.PARAMETERS||{})[e];if(r){var n=G(this.gl);if(!((!("webgl2"in r)||n)&&(!("extension"in r)||this.gl.getExtension(r.extension))))throw new Error("Parameter not available on this platform");"GLenum"===r.type&&(t=at(t))}return this._setParameter(e,t),this}},{key:"setParameters",value:function(e){for(var t in e)this.setParameter(t,e[t]);return this}},{key:"stubRemovedMethods",value:function(e,t,r){return ft(this,e,t,r)}},{key:"initialize",value:function(e){}},{key:"_createHandle",value:function(){throw new Error(vt)}},{key:"_deleteHandle",value:function(){throw new Error(vt)}},{key:"_bindHandle",value:function(e){throw new Error(vt)}},{key:"_getOptsFromHandle",value:function(){throw new Error(vt)}},{key:"_getParameter",value:function(e,t){throw new Error(vt)}},{key:"_setParameter",value:function(e,t){throw new Error(vt)}},{key:"_context",value:function(){return this.gl.luma=this.gl.luma||{},this.gl.luma}},{key:"_addStats",value:function(){var e=this[Symbol.toStringTag],t=$e.get("Resource Counts");t.get("Resources Created").incrementCount(),t.get("".concat(e,"s Created")).incrementCount(),t.get("".concat(e,"s Active")).incrementCount()}},{key:"_removeStats",value:function(){var e=this[Symbol.toStringTag];$e.get("Resource Counts").get("".concat(e,"s Active")).decrementCount()}},{key:"_trackAllocatedMemory",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this[Symbol.toStringTag],r=$e.get("Memory Usage");r.get("GPU Memory").addCount(e),r.get("".concat(t," Memory")).addCount(e),this.byteLength=e}},{key:"_trackDeallocatedMemory",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this[Symbol.toStringTag],t=$e.get("Memory Usage");t.get("GPU Memory").subtractCount(this.byteLength),t.get("".concat(e," Memory")).subtractCount(this.byteLength),this.byteLength=0}},{key:"handle",get:function(){return this._handle}}]),e}(),yt=r(13),mt=r.n(yt),pt=r(20),bt=r.n(pt);function _t(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error("Failed to deduce GL constant from typed array")}}function xt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.clamped,n=void 0===r||r;switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return n?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function wt(e){var t=e.data,r=e.width,n=e.height,i=e.bytesPerPixel,a=void 0===i?4:i,o=e.temp,s=r*a;o=o||new Uint8Array(s);for(var u=0;u<n/2;++u){var c=u*s,l=(n-u-1)*s;o.set(t.subarray(c,c+s)),t.copyWithin(c,l,l+s),t.set(o,l)}}function At(e){for(var t=e.data,r=e.width,n=e.height,i=Math.round(r/2),a=Math.round(n/2),o=new Uint8Array(i*a*4),s=0;s<a;s++)for(var u=0;u<i;u++)for(var c=0;c<4;c++)o[4*(s*i+u)+c]=t[4*(2*s*r+2*u)+c];return{data:o,width:i,height:a}}function kt(e,t,r){var n=r.removedProps,i=void 0===n?{}:n,a=r.deprecatedProps,o=void 0===a?{}:a,s=r.replacedProps,u=void 0===s?{}:s;for(var c in i)if(c in t){var l=i[c]?"".concat(e,".").concat(i[c]):"N/A";U.removed("".concat(e,".").concat(c),l)()}for(var f in o)if(f in t){var h=o[f];U.deprecated("".concat(e,".").concat(f),"".concat(e,".").concat(h))()}var d=null;for(var v in u)if(v in t){var g=u[v];U.deprecated("".concat(e,".").concat(v),"".concat(e,".").concat(g))(),(d=d||Object.assign({},t))[g]=t[v],delete d[v]}return d||t}var Tt={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Et={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Ot=function(){function e(){var t=this;l()(this,e);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];n.forEach((function(e){return t._assign(e)})),Object.freeze(this)}return h()(e,null,[{key:"getBytesPerElement",value:function(e){return xt(e.type||5126).BYTES_PER_ELEMENT}},{key:"getBytesPerVertex",value:function(e){return Ye(e.size),xt(e.type||5126).BYTES_PER_ELEMENT*e.size}},{key:"resolve",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return bt()(e,[Tt].concat(r))}}]),h()(e,[{key:"toString",value:function(){return JSON.stringify(this)}},{key:"_assign",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return void 0!==(e=kt("Accessor",e,Et)).type&&(this.type=e.type,5124!==e.type&&5125!==e.type||(this.integer=!0)),void 0!==e.size&&(this.size=e.size),void 0!==e.offset&&(this.offset=e.offset),void 0!==e.stride&&(this.stride=e.stride),void 0!==e.normalized&&(this.normalized=e.normalized),void 0!==e.integer&&(this.integer=e.integer),void 0!==e.divisor&&(this.divisor=e.divisor),void 0!==e.buffer&&(this.buffer=e.buffer),void 0!==e.index&&("boolean"==typeof e.index?this.index=e.index?1:0:this.index=e.index),void 0!==e.instanced&&(this.divisor=e.instanced?1:0),void 0!==e.isInstanced&&(this.divisor=e.isInstanced?1:0),this}},{key:"BYTES_PER_ELEMENT",get:function(){return e.getBytesPerElement(this)}},{key:"BYTES_PER_VERTEX",get:function(){return e.getBytesPerVertex(this)}}]),e}();function St(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Pt,It,Lt,Rt={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Mt={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Rt},Dt={removedProps:Rt},Ft=function(e){et()(r,e);var t=St(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).stubRemovedMethods("Buffer","v6.0",["layout","setLayout","getIndexedParameter"]),n.target=i.target||(n.gl.webgl2?36662:34962),n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Buffer"}}]),h()(r,[{key:"getElementCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/Ot.getBytesPerElement(e))}},{key:"getVertexCount",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.accessor;return Math.round(this.byteLength/Ot.getBytesPerVertex(e))}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ArrayBuffer.isView(e)&&(e={data:e}),Number.isFinite(e)&&(e={byteLength:e}),e=kt("Buffer",e,Mt),this.usage=e.usage||35044,this.debugData=null,this.setAccessor(Object.assign({},e,e.accessor)),e.data?this._setData(e.data,e.offset,e.byteLength):this._setByteLength(e.byteLength||0),this}},{key:"setProps",value:function(e){return"accessor"in(e=kt("Buffer",e,Dt))&&this.setAccessor(e.accessor),this}},{key:"setAccessor",value:function(e){return delete(e=Object.assign({},e)).buffer,this.accessor=new Ot(e),this}},{key:"reallocate",value:function(e){return e>this.byteLength?(this._setByteLength(e),!0):(this.bytesUsed=e,!1)}},{key:"setData",value:function(e){return this.initialize(e)}},{key:"subData",value:function(e){ArrayBuffer.isView(e)&&(e={data:e});var t=e,r=t.data,n=t.offset,i=void 0===n?0:n,a=t.srcOffset,o=void 0===a?0:a,s=e.byteLength||e.length;Ye(r);var u=this.gl.webgl2?36663:this.target;return this.gl.bindBuffer(u,this.handle),0!==o||void 0!==s?(W(this.gl),this.gl.bufferSubData(this.target,i,r,o,s)):this.gl.bufferSubData(u,i,r),this.gl.bindBuffer(u,null),this.debugData=null,this._inferType(r),this}},{key:"copyData",value:function(e){var t=e.sourceBuffer,r=e.readOffset,n=void 0===r?0:r,i=e.writeOffset,a=void 0===i?0:i,o=e.size,s=this.gl;return W(s),s.bindBuffer(36662,t.handle),s.bindBuffer(36663,this.handle),s.copyBufferSubData(36662,36663,n,a,o),s.bindBuffer(36662,null),s.bindBuffer(36663,null),this.debugData=null,this}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dstData,r=void 0===t?null:t,n=e.srcByteOffset,i=void 0===n?0:n,a=e.dstOffset,o=void 0===a?0:a,s=e.length,u=void 0===s?0:s;W(this.gl);var c,l,f=xt(this.accessor.type||5126,{clamped:!1}),h=this._getAvailableElementCount(i),d=o;r?c=(l=r.length)-d:l=d+(c=Math.min(h,u||h));var v=Math.min(h,c);return Ye((u=u||v)<=v),r=r||new f(l),this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,i,r,o,u),this.gl.bindBuffer(36662,null),r}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?this.target:t,n=e.index,i=void 0===n?this.accessor&&this.accessor.index:n,a=e.offset,o=void 0===a?0:a,s=e.size;return 35345===r||35982===r?void 0!==s?this.gl.bindBufferRange(r,i,this.handle,o,s):(Ye(0===o),this.gl.bindBufferBase(r,i,this.handle)):this.gl.bindBuffer(r,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?this.target:t,n=e.index,i=void 0===n?this.accessor&&this.accessor.index:n,a=35345===r||35982===r;return a?this.gl.bindBufferBase(r,i,null):this.gl.bindBuffer(r,null),this}},{key:"getDebugData",value:function(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(10,this.byteLength)}),{data:this.debugData,changed:!0})}},{key:"invalidateDebugData",value:function(){this.debugData=null}},{key:"_setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength+t;Ye(ArrayBuffer.isView(e)),this._trackDeallocatedMemory();var n=this._getTarget();this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.usage),this.gl.bufferSubData(n,t,e),this.gl.bindBuffer(n,null),this.debugData=e.slice(0,10),this.bytesUsed=r,this._trackAllocatedMemory(r);var i=_t(e);return Ye(i),this.setAccessor(new Ot(this.accessor,{type:i})),this}},{key:"_setByteLength",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.usage;Ye(e>=0),this._trackDeallocatedMemory();var r=e;0===e&&(r=new Float32Array(0));var n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,t),this.gl.bindBuffer(n,null),this.usage=t,this.debugData=null,this.bytesUsed=e,this._trackAllocatedMemory(e),this}},{key:"_getTarget",value:function(){return this.gl.webgl2?36663:this.target}},{key:"_getAvailableElementCount",value:function(e){var t=e/xt(this.accessor.type||5126,{clamped:!1}).BYTES_PER_ELEMENT;return this.getElementCount()-t}},{key:"_inferType",value:function(e){this.accessor.type||this.setAccessor(new Ot(this.accessor,{type:_t(e)}))}},{key:"_createHandle",value:function(){return this.gl.createBuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteBuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_getParameter",value:function(e){this.gl.bindBuffer(this.target,this.handle);var t=this.gl.getBufferParameter(this.target,e);return this.gl.bindBuffer(this.target,null),t}},{key:"setByteLength",value:function(e){return U.deprecated("setByteLength","reallocate")(),this.reallocate(e)}},{key:"updateAccessor",value:function(e){return U.deprecated("updateAccessor(...)","setAccessor(new Accessor(buffer.accessor, ...)")(),this.accessor=new Ot(this.accessor,e),this}},{key:"type",get:function(){return U.deprecated("Buffer.type","Buffer.accessor.type")(),this.accessor.type}},{key:"bytes",get:function(){return U.deprecated("Buffer.bytes","Buffer.byteLength")(),this.byteLength}}]),r}(gt),jt=(Pt={},y()(Pt,6407,{dataFormat:6407,types:[5121,33635]}),y()(Pt,6408,{dataFormat:6408,types:[5121,32819,32820]}),y()(Pt,6406,{dataFormat:6406,types:[5121]}),y()(Pt,6409,{dataFormat:6409,types:[5121]}),y()(Pt,6410,{dataFormat:6410,types:[5121]}),y()(Pt,33326,{dataFormat:6403,types:[5126],gl2:!0}),y()(Pt,33328,{dataFormat:33319,types:[5126],gl2:!0}),y()(Pt,34837,{dataFormat:6407,types:[5126],gl2:!0}),y()(Pt,34836,{dataFormat:6408,types:[5126],gl2:!0}),Pt),Bt=(It={},y()(It,6403,1),y()(It,36244,1),y()(It,33319,2),y()(It,33320,2),y()(It,6407,3),y()(It,36248,3),y()(It,6408,4),y()(It,36249,4),y()(It,6402,1),y()(It,34041,1),y()(It,6406,1),y()(It,6409,1),y()(It,6410,2),It),Ct=(Lt={},y()(Lt,5126,4),y()(Lt,5125,4),y()(Lt,5124,4),y()(Lt,5123,2),y()(Lt,5122,2),y()(Lt,5131,2),y()(Lt,5120,1),y()(Lt,5121,1),Lt);function Nt(e,t){var r=jt[t];if(!r)return!1;if(void 0===r.gl1&&void 0===r.gl2)return!0;var n=G(e)&&r.gl2||r.gl1;return"string"==typeof n?e.getExtension(n):n}function Ut(e,t){var r=jt[t];switch(r&&r.types[0]){case 5126:return e.getExtension("OES_texture_float_linear");case 5131:return e.getExtension("OES_texture_half_float_linear");default:return!0}}function zt(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Gt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Ht=[9729,9728],Wt=globalThis.WebGLBuffer||function(){},Xt=function(e){et()(r,e);var t=Gt(r);function r(e,n){var i;l()(this,r);var a=n.id,o=void 0===a?ut("texture"):a,s=n.handle,u=n.target;return(i=t.call(this,e,{id:o,handle:s})).target=u,i.textureUnit=void 0,i.loaded=!1,i.width=void 0,i.height=void 0,i.depth=void 0,i.format=void 0,i.type=void 0,i.dataFormat=void 0,i.border=void 0,i.textureUnit=void 0,i.mipmaps=void 0,i}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.format,n=t.linearFiltering,i=!0;return r&&(i=(i=i&&Nt(e,r))&&(!n||Ut(e,r))),i}}]),h()(r,[{key:"toString",value:function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}},{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.data;if(r instanceof Promise)return r.then((function(r){return e.initialize(Object.assign({},t,{pixels:r,data:r}))})),this;var n="undefined"!=typeof HTMLVideoElement&&r instanceof HTMLVideoElement;if(n&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",(function(){return e.initialize(t)})),this;var i=t.pixels,a=void 0===i?null:i,o=t.format,s=void 0===o?6408:o,u=t.border,c=void 0===u?0:u,l=t.recreate,f=void 0!==l&&l,h=t.parameters,d=void 0===h?{}:h,v=t.pixelStore,g=void 0===v?{}:v,y=t.textureUnit,m=void 0===y?void 0:y;r||(r=a);var p=t.width,b=t.height,_=t.dataFormat,x=t.type,w=t.compressed,A=void 0!==w&&w,k=t.mipmaps,T=void 0===k||k,E=t.depth,O=void 0===E?0:E,S=this._deduceParameters({format:s,type:x,dataFormat:_,compressed:A,data:r,width:p,height:b});return p=S.width,b=S.height,A=S.compressed,_=S.dataFormat,x=S.type,this.width=p,this.height=b,this.depth=O,this.format=s,this.type=x,this.dataFormat=_,this.border=c,this.textureUnit=m,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),T&&this._isNPOT()&&(U.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),T=!1,this._updateForNPOT(d)),this.mipmaps=T,this.setImageData({data:r,width:p,height:b,depth:O,format:s,type:x,dataFormat:_,border:c,mipmaps:T,parameters:g,compressed:A}),T&&this.generateMipmap(),this.setParameters(d),f&&(this.data=r),n&&(this._video={video:r,parameters:d,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}},{key:"update",value:function(){if(this._video){var e=this._video,t=e.video,r=e.parameters;if(e.lastTime===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}},{key:"resize",value:function(e){var t=e.height,r=e.width,n=e.mipmaps,i=void 0!==n&&n;return r!==this.width||t!==this.height?this.initialize({width:r,height:t,format:this.format,type:this.type,dataFormat:this.dataFormat,border:this.border,mipmaps:i}):this}},{key:"generateMipmap",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isNPOT()?(U.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Me(this.gl,t,(function(){e.gl.generateMipmap(e.target)})),this.gl.bindTexture(this.target,null),this)}},{key:"setImageData",value:function(e){this._trackDeallocatedMemory("Texture");var t=e.target,r=void 0===t?this.target:t,n=e.pixels,i=void 0===n?null:n,a=e.level,o=void 0===a?0:a,s=e.format,u=void 0===s?this.format:s,c=e.border,l=void 0===c?this.border:c,f=e.offset,h=void 0===f?0:f,d=e.parameters,v=void 0===d?{}:d,g=e.data,y=void 0===g?null:g,m=e.type,p=void 0===m?this.type:m,b=e.width,_=void 0===b?this.width:b,x=e.height,w=void 0===x?this.height:x,A=e.dataFormat,k=void 0===A?this.dataFormat:A,T=e.compressed,E=void 0!==T&&T;y||(y=i);var O=this._deduceParameters({format:u,type:p,dataFormat:k,compressed:E,data:y,width:_,height:w});p=O.type,k=O.dataFormat,E=O.compressed,_=O.width,w=O.height;var S=this.gl;S.bindTexture(this.target,this.handle);var P,I,L=this._getDataType({data:y,compressed:E});y=L.data,P=L.dataType;var R=0;if(Me(this.gl,v,(function(){switch(P){case"null":S.texImage2D(r,o,u,_,w,l,k,p,y);break;case"typed-array":S.texImage2D(r,o,u,_,w,l,k,p,y,h);break;case"buffer":(I=W(S)).bindBuffer(35052,y.handle||y),I.texImage2D(r,o,u,_,w,l,k,p,h),I.bindBuffer(35052,null);break;case"browser-object":G(S)?S.texImage2D(r,o,u,_,w,l,k,p,y):S.texImage2D(r,o,u,k,p,y);break;case"compressed":var e,t=zt(y.entries());try{for(t.s();!(e=t.n()).done;){var n=ce()(e.value,2),i=n[0],a=n[1];S.compressedTexImage2D(r,i,a.format,a.width,a.height,l,a.data),R+=a.levelSize}}catch(e){t.e(e)}finally{t.f()}break;default:Ye(!1,"Unknown image data type")}})),"compressed"===P)this._trackAllocatedMemory(R,"Texture");else if(y&&y.byteLength)this._trackAllocatedMemory(y.byteLength,"Texture");else{var M=Bt[this.dataFormat]||4,D=Ct[this.type]||1;this._trackAllocatedMemory(this.width*this.height*M*D,"Texture")}return this.loaded=!0,this}},{key:"setSubImageData",value:function(e){var t=this,r=e.target,n=void 0===r?this.target:r,i=e.pixels,a=void 0===i?null:i,o=e.data,s=void 0===o?null:o,u=e.x,c=void 0===u?0:u,l=e.y,f=void 0===l?0:l,h=e.width,d=void 0===h?this.width:h,v=e.height,g=void 0===v?this.height:v,y=e.level,m=void 0===y?0:y,p=e.format,b=void 0===p?this.format:p,_=e.type,x=void 0===_?this.type:_,w=e.dataFormat,A=void 0===w?this.dataFormat:w,k=e.compressed,T=void 0!==k&&k,E=e.offset,O=void 0===E?0:E,S=e.border,P=(void 0===S&&this.border,e.parameters),I=void 0===P?{}:P,L=this._deduceParameters({format:b,type:x,dataFormat:A,compressed:T,data:s,width:d,height:g});if(x=L.type,A=L.dataFormat,T=L.compressed,d=L.width,g=L.height,Ye(0===this.depth,"texSubImage not supported for 3D textures"),s||(s=a),s&&s.data){var R=s;s=R.data,d=R.shape[0],g=R.shape[1]}s instanceof Ft&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),Me(this.gl,I,(function(){if(T)t.gl.compressedTexSubImage2D(n,m,c,f,d,g,b,s);else if(null===s)t.gl.texSubImage2D(n,m,c,f,d,g,A,x,null);else if(ArrayBuffer.isView(s))t.gl.texSubImage2D(n,m,c,f,d,g,A,x,s,O);else if(s instanceof Wt){var e=W(t.gl);e.bindBuffer(35052,s),e.texSubImage2D(n,m,c,f,d,g,A,x,O),e.bindBuffer(35052,null)}else if(G(t.gl)){W(t.gl).texSubImage2D(n,m,c,f,d,g,A,x,s)}else t.gl.texSubImage2D(n,m,c,f,A,x,s)})),this.gl.bindTexture(this.target,null)}},{key:"copyFramebuffer",value:function(){return U.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"getActiveUnit",value:function(){return this.gl.getParameter(34016)-33984}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,this.handle),e}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.textureUnit,t=this.gl;return void 0!==e&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.target,null),e}},{key:"_getDataType",value:function(e){var t=e.data,r=e.compressed;return void 0!==r&&r?{data:t,dataType:"compressed"}:null===t?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof Ft?{data:t.handle,dataType:"buffer"}:t instanceof Wt?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}},{key:"_deduceParameters",value:function(e){var t=e.format,r=e.data,n=e.width,i=e.height,a=e.dataFormat,o=e.type,s=e.compressed,u=jt[t];a=a||u&&u.dataFormat,o=o||u&&u.types[0],s=s||u&&u.compressed;var c=this._deduceImageSize(r,n,i);return{dataFormat:a,type:o,compressed:s,width:n=c.width,height:i=c.height,format:t,data:r}}},{key:"_deduceImageSize",value:function(e,t,r){var n;return Ye(n="undefined"!=typeof ImageData&&e instanceof ImageData?{width:e.width,height:e.height}:"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement?{width:e.naturalWidth,height:e.naturalHeight}:"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap?{width:e.width,height:e.height}:"undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement?{width:e.videoWidth,height:e.videoHeight}:e?{width:t,height:r}:{width:t>=0?t:1,height:r>=0?r:1},"Could not deduced texture size"),Ye(void 0===t||n.width===t,"Deduced texture width does not match supplied width"),Ye(void 0===r||n.height===r,"Deduced texture height does not match supplied height"),n}},{key:"_createHandle",value:function(){return this.gl.createTexture()}},{key:"_deleteHandle",value:function(){this.gl.deleteTexture(this.handle),this._trackDeallocatedMemory("Texture")}},{key:"_getParameter",value:function(e){switch(e){case 4096:return this.width;case 4097:return this.height;default:this.gl.bindTexture(this.target,this.handle);var t=this.gl.getTexParameter(this.target,e);return this.gl.bindTexture(this.target,null),t}}},{key:"_setParameter",value:function(e,t){switch(this.gl.bindTexture(this.target,this.handle),t=this._getNPOTParam(e,t),e){case 33082:case 33083:this.gl.texParameterf(this.handle,e,t);break;case 4096:case 4097:Ye(!1);break;default:this.gl.texParameteri(this.target,e,t)}return this.gl.bindTexture(this.target,null),this}},{key:"_isNPOT",value:function(){return!G(this.gl)&&(!(!this.width||!this.height)&&(!ct(this.width)||!ct(this.height)))}},{key:"_updateForNPOT",value:function(e){void 0===e[this.gl.TEXTURE_MIN_FILTER]&&(e[this.gl.TEXTURE_MIN_FILTER]=this.gl.LINEAR),void 0===e[this.gl.TEXTURE_WRAP_S]&&(e[this.gl.TEXTURE_WRAP_S]=this.gl.CLAMP_TO_EDGE),void 0===e[this.gl.TEXTURE_WRAP_T]&&(e[this.gl.TEXTURE_WRAP_T]=this.gl.CLAMP_TO_EDGE)}},{key:"_getNPOTParam",value:function(e,t){if(this._isNPOT())switch(e){case 10241:-1===Ht.indexOf(t)&&(t=9729);break;case 10242:case 10243:33071!==t&&(t=33071)}return t}}]),r}(gt),qt="";function Qt(e,t){return Ye("string"==typeof e),e=qt+e,new Promise((function(r,n){try{var i=new Image;i.onload=function(){return r(i)},i.onerror=function(){return n(new Error("Could not load image ".concat(e,".")))},i.crossOrigin=t&&t.crossOrigin||"anonymous",i.src=e}catch(e){n(e)}}))}function $t(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Yt,Kt=function(e){et()(r,e);var t=$t(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),H(e),(i instanceof Promise||"string"==typeof i)&&(i={data:i}),"string"==typeof i.data&&(i=Object.assign({},i,{data:Qt(i.data)})),(n=t.call(this,e,Object.assign({},i,{target:3553}))).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture2D"}}],[{key:"isSupported",value:function(e,t){return Xt.isSupported(e,t)}}]),r}(Xt),Jt="EXT_color_buffer_float",Zt=(Yt={},y()(Yt,33189,{bpp:2}),y()(Yt,33190,{gl2:!0,bpp:3}),y()(Yt,36012,{gl2:!0,bpp:4}),y()(Yt,36168,{bpp:1}),y()(Yt,34041,{bpp:4}),y()(Yt,35056,{gl2:!0,bpp:4}),y()(Yt,36013,{gl2:!0,bpp:5}),y()(Yt,32854,{bpp:2}),y()(Yt,36194,{bpp:2}),y()(Yt,32855,{bpp:2}),y()(Yt,33321,{gl2:!0,bpp:1}),y()(Yt,33330,{gl2:!0,bpp:1}),y()(Yt,33329,{gl2:!0,bpp:1}),y()(Yt,33332,{gl2:!0,bpp:2}),y()(Yt,33331,{gl2:!0,bpp:2}),y()(Yt,33334,{gl2:!0,bpp:4}),y()(Yt,33333,{gl2:!0,bpp:4}),y()(Yt,33323,{gl2:!0,bpp:2}),y()(Yt,33336,{gl2:!0,bpp:2}),y()(Yt,33335,{gl2:!0,bpp:2}),y()(Yt,33338,{gl2:!0,bpp:4}),y()(Yt,33337,{gl2:!0,bpp:4}),y()(Yt,33340,{gl2:!0,bpp:8}),y()(Yt,33339,{gl2:!0,bpp:8}),y()(Yt,32849,{gl2:!0,bpp:3}),y()(Yt,32856,{gl2:!0,bpp:4}),y()(Yt,32857,{gl2:!0,bpp:4}),y()(Yt,36220,{gl2:!0,bpp:4}),y()(Yt,36238,{gl2:!0,bpp:4}),y()(Yt,36975,{gl2:!0,bpp:4}),y()(Yt,36214,{gl2:!0,bpp:8}),y()(Yt,36232,{gl2:!0,bpp:8}),y()(Yt,36226,{gl2:!0,bpp:16}),y()(Yt,36208,{gl2:!0,bpp:16}),y()(Yt,33325,{gl2:Jt,bpp:2}),y()(Yt,33327,{gl2:Jt,bpp:4}),y()(Yt,34842,{gl2:Jt,bpp:8}),y()(Yt,33326,{gl2:Jt,bpp:4}),y()(Yt,33328,{gl2:Jt,bpp:8}),y()(Yt,34836,{gl2:Jt,bpp:16}),y()(Yt,35898,{gl2:Jt,bpp:4}),Yt);function er(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}function tr(e,t,r){var n=r[t];if(!n)return!1;var i=G(e)&&n.gl2||n.gl1;return"string"==typeof i?e.getExtension(i):i}var rr=function(e){et()(r,e);var t=er(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Renderbuffer"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{format:null},r=t.format;return!r||tr(e,r,Zt)}},{key:"getSamplesForFormat",value:function(e,t){var r=t.format;return e.getInternalformatParameter(36161,r,32937)}}]),h()(r,[{key:"initialize",value:function(e){var t=e.format,r=e.width,n=void 0===r?1:r,i=e.height,a=void 0===i?1:i,o=e.samples,s=void 0===o?0:o;return Ye(t,"Needs format"),this._trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),0!==s&&G(this.gl)?this.gl.renderbufferStorageMultisample(36161,s,t,n,a):this.gl.renderbufferStorage(36161,t,n,a),this.format=t,this.width=n,this.height=a,this.samples=s,this._trackAllocatedMemory(this.width*this.height*(this.samples||1)*Zt[this.format].bpp),this}},{key:"resize",value:function(e){var t=e.width,r=e.height;return t!==this.width||r!==this.height?this.initialize({width:t,height:r,format:this.format,samples:this.samples}):this}},{key:"_createHandle",value:function(){return this.gl.createRenderbuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteRenderbuffer(this.handle),this._trackDeallocatedMemory()}},{key:"_bindHandle",value:function(e){this.gl.bindRenderbuffer(36161,e)}},{key:"_syncHandle",value:function(e){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}},{key:"_getParameter",value:function(e){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,e)}}]),r}(gt);function nr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.framebuffer,n=void 0===r?null:r,i=t.color,a=void 0===i?null:i,o=t.depth,s=void 0===o?null:o,u=t.stencil,c=void 0===u?null:u,l={};n&&(l.framebuffer=n);var f=0;a&&(f|=16384,!0!==a&&(l.clearColor=a)),s&&(f|=256,!0!==s&&(l.clearDepth=s)),c&&(f|=1024,!0!==s&&(l.clearStencil=s)),Ye(0!==f,"clear: bad arguments"),Me(e,l,(function(){e.clear(f)}))}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.framebuffer,n=void 0===r?null:r,i=t.buffer,a=void 0===i?6144:i,o=t.drawBuffer,s=void 0===o?0:o,u=t.value,c=void 0===u?[0,0,0,0]:u;W(e),Me(e,{framebuffer:n},(function(){switch(a){case 6144:switch(c.constructor){case Int32Array:e.clearBufferiv(a,s,c);break;case Uint32Array:e.clearBufferuiv(a,s,c);break;case Float32Array:default:e.clearBufferfv(a,s,c)}break;case 6145:e.clearBufferfv(6145,0,[c]);break;case 6146:e.clearBufferiv(6146,0,[c]);break;case 34041:var t=ce()(c,2),r=t[0],n=t[1];e.clearBufferfi(34041,0,r,n);break;default:Ye(!1,"clear: bad arguments")}}))}function ar(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Ye(!1),0}}function or(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var sr=[34069,34070,34071,34072,34073,34074],ur=function(e){et()(n,e);var t,r=or(n);function n(e){var t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,n),H(e),(t=r.call(this,e,Object.assign({},i,{target:34067}))).initialize(i),Object.seal(Je()(t)),t}return h()(n,[{key:Symbol.toStringTag,get:function(){return"TextureCube"}}]),h()(n,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.mipmaps,n=void 0===r||r,i=t.parameters,a=void 0===i?{}:i;return this.opts=t,this.setCubeMapImageData(t).then((function(){e.loaded=!0,n&&e.generateMipmap(t),e.setParameters(a)})),this}},{key:"subImage",value:function(e){var t=e.face,r=e.data,n=e.x,i=void 0===n?0:n,a=e.y,o=void 0===a?0:a,s=e.mipmapLevel,u=void 0===s?0:s;return this._subImage({target:t,data:r,x:i,y:o,mipmapLevel:u})}},{key:"setCubeMapImageData",value:(t=u()(o.a.mark((function e(t){var r,n,i,a,s,u,c,l,f,h,d,v,g,y=this;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.width,n=t.height,i=t.pixels,a=t.data,s=t.border,u=void 0===s?0:s,c=t.format,l=void 0===c?6408:c,f=t.type,h=void 0===f?5121:f,d=this.gl,v=i||a,e.next=5,Promise.all(sr.map((function(e){var t=v[e];return Promise.all(Array.isArray(t)?t:[t])})));case 5:g=e.sent,this.bind(),sr.forEach((function(e,t){g[t].length>1&&!1!==y.opts.mipmaps&&U.warn("".concat(y.id," has mipmap and multiple LODs."))(),g[t].forEach((function(t,i){r&&n?d.texImage2D(e,i,l,r,n,u,l,h,t):d.texImage2D(e,i,l,l,h,t)}))})),this.unbind();case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"setImageDataForFace",value:function(e){var t=this,r=e.face,n=e.width,i=e.height,a=e.pixels,o=e.data,s=e.border,u=void 0===s?0:s,c=e.format,l=void 0===c?6408:c,f=e.type,h=void 0===f?5121:f,d=this.gl,v=a||o;return this.bind(),v instanceof Promise?v.then((function(n){return t.setImageDataForFace(Object.assign({},e,{face:r,data:n,pixels:n}))})):this.width||this.height?d.texImage2D(r,0,l,n,i,u,l,h,v):d.texImage2D(r,0,l,l,h,v),this}}]),n}(Xt);function cr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}ur.FACES=sr;var lr=function(e){et()(r,e);var t=cr(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),W(e),i=Object.assign({depth:1},i,{target:32879,unpackFlipY:!1}),(n=t.call(this,e,i)).initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Texture3D"}}],[{key:"isSupported",value:function(e){return G(e)}}]),h()(r,[{key:"setImageData",value:function(e){var t=this,r=e.level,n=void 0===r?0:r,i=e.dataFormat,a=void 0===i?6408:i,o=e.width,s=e.height,u=e.depth,c=void 0===u?1:u,l=e.border,f=void 0===l?0:l,h=e.format,d=e.type,v=void 0===d?5121:d,g=e.offset,y=void 0===g?0:g,m=e.data,p=e.parameters,b=void 0===p?{}:p;if(this._trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle),Me(this.gl,b,(function(){ArrayBuffer.isView(m)&&t.gl.texImage3D(t.target,n,a,o,s,c,f,h,v,m),m instanceof Ft&&(t.gl.bindBuffer(35052,m.handle),t.gl.texImage3D(t.target,n,a,o,s,c,f,h,v,y))})),m&&m.byteLength)this._trackAllocatedMemory(m.byteLength,"Texture");else{var _=Bt[this.dataFormat]||4,x=Ct[this.type]||1;this._trackAllocatedMemory(this.width*this.height*this.depth*_*x,"Texture")}return this.loaded=!0,this}}]),r}(Xt);function fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.sourceX,n=void 0===r?0:r,i=t.sourceY,a=void 0===i?0:i,o=t.sourceFormat,s=void 0===o?6408:o,u=t.sourceAttachment,c=void 0===u?36064:u,l=t.target,f=void 0===l?null:l,h=t.sourceWidth,d=t.sourceHeight,v=t.sourceType,g=dr(e),y=g.framebuffer,m=g.deleteFramebuffer;Ye(y);var p=y.gl,b=y.handle,_=y.attachments;h=h||y.width,d=d||y.height,36064===c&&null===b&&(c=1028),Ye(_[c]),f=vr(f,v=v||_[c].type,s,h,d),v=v||_t(f);var x=p.bindFramebuffer(36160,b);return p.readPixels(n,a,h,d,s,v,f),p.bindFramebuffer(36160,x||null),m&&y.delete(),f}function hr(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.sourceAttachment,n=void 0===r?36064:r,i=t.targetMaxHeight,a=void 0===i?Number.MAX_SAFE_INTEGER:i,o=fr(e,{sourceAttachment:n}),s=e.width,u=e.height;u>a;){var c=At({data:o,width:s,height:u});o=c.data,s=c.width,u=c.height}wt({data:o,width:s,height:u});var l=document.createElement("canvas");l.width=s,l.height=u;var f=l.getContext("2d"),h=f.createImageData(s,u);return h.data.set(o),f.putImageData(h,0,0),l.toDataURL()}function dr(e){return e instanceof pr?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:(t=e,n=t.gl,i=t.width,a=t.height,o=t.id,new pr(n,Object.assign({},r,{id:"framebuffer-for-".concat(o),width:i,height:a,attachments:y()({},36064,t)}))),deleteFramebuffer:!0};var t,r,n,i,a,o}function vr(e,t,r,n,i){return e||new(xt(t=t||5121,{clamped:!1}))(n*i*ar(r))}function gr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return yr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return yr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function yr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var pr=function(e){et()(r,e);var t=mr(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).width=null,n.height=null,n.attachments={},n.readBuffer=36064,n.drawBuffers=[36064],n.ownResources=[],n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Framebuffer"}},{key:"MAX_COLOR_ATTACHMENTS",get:function(){var e=W(this.gl);return e.getParameter(e.MAX_COLOR_ATTACHMENTS)}},{key:"MAX_DRAW_BUFFERS",get:function(){var e=W(this.gl);return e.getParameter(e.MAX_DRAW_BUFFERS)}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.colorBufferFloat,n=t.colorBufferHalfFloat,i=!0;return r&&(i=Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float")||e.getExtension("OES_texture_float"))),n&&(i=i&&Boolean(e.getExtension("EXT_color_buffer_float")||e.getExtension("EXT_color_buffer_half_float"))),i}},{key:"getDefaultFramebuffer",value:function(e){return e.luma=e.luma||{},e.luma.defaultFramebuffer=e.luma.defaultFramebuffer||new r(e,{id:"default-framebuffer",handle:null,attachments:{}}),e.luma.defaultFramebuffer}}]),h()(r,[{key:"initialize",value:function(e){var t=e.width,r=void 0===t?1:t,n=e.height,i=void 0===n?1:n,a=e.attachments,o=void 0===a?null:a,s=e.color,u=void 0===s||s,c=e.depth,l=void 0===c||c,f=e.stencil,h=void 0!==f&&f,d=e.check,v=void 0===d||d,g=e.readBuffer,y=void 0===g?void 0:g,m=e.drawBuffers,p=void 0===m?void 0:m;if(Ye(r>=0&&i>=0,"Width and height need to be integers"),this.width=r,this.height=i,o)for(var b in o){var _=o[b];(Array.isArray(_)?_[0]:_).resize({width:r,height:i})}else o=this._createDefaultAttachments(u,l,h,r,i);this.update({clearAttachments:!0,attachments:o,readBuffer:y,drawBuffers:p}),o&&v&&this.checkStatus()}},{key:"delete",value:function(){var e,t=gr(this.ownResources);try{for(t.s();!(e=t.n()).done;){e.value.delete()}}catch(e){t.e(e)}finally{t.f()}return mt()(it()(r.prototype),"delete",this).call(this),this}},{key:"update",value:function(e){var t=e.attachments,r=void 0===t?{}:t,n=e.readBuffer,i=e.drawBuffers,a=e.clearAttachments,o=void 0!==a&&a,s=e.resizeAttachments,u=void 0===s||s;this.attach(r,{clearAttachments:o,resizeAttachments:u});var c=this.gl,l=c.bindFramebuffer(36160,this.handle);return n&&this._setReadBuffer(n),i&&this._setDrawBuffers(i),c.bindFramebuffer(36160,l||null),this}},{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.width,r=e.height;if(null===this.handle)return Ye(void 0===t&&void 0===r),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;for(var n in void 0===t&&(t=this.gl.drawingBufferWidth),void 0===r&&(r=this.gl.drawingBufferHeight),t!==this.width&&r!==this.height&&U.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(r))(),this.attachments)this.attachments[n].resize({width:t,height:r});return this.width=t,this.height=r,this}},{key:"attach",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.clearAttachments,i=void 0!==n&&n,a=r.resizeAttachments,o=void 0===a||a,s={};i&&Object.keys(this.attachments).forEach((function(e){s[e]=null})),Object.assign(s,e);var u=this.gl.bindFramebuffer(36160,this.handle);for(var c in s){Ye(void 0!==c,"Misspelled framebuffer binding point?");var l=Number(c),f=s[l],h=f;if(h)if(h instanceof rr)this._attachRenderbuffer({attachment:l,renderbuffer:h});else if(Array.isArray(f)){var d=ce()(f,3),v=d[0],g=d[1],y=void 0===g?0:g,m=d[2],p=void 0===m?0:m;h=v,this._attachTexture({attachment:l,texture:v,layer:y,level:p})}else this._attachTexture({attachment:l,texture:h,layer:0,level:0});else this._unattach(l);o&&h&&h.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,u||null),Object.assign(this.attachments,e),Object.keys(this.attachments).filter((function(e){return!t.attachments[e]})).forEach((function(e){delete t.attachments[e]}))}},{key:"checkStatus",value:function(){this.gl;var e=this.getStatus();if(36053!==e)throw new Error(function(e){return(pr.STATUS||{})[e]||"Framebuffer error ".concat(e)}(e));return this}},{key:"getStatus",value:function(){var e=this.gl,t=e.bindFramebuffer(36160,this.handle),r=e.checkFramebufferStatus(36160);return e.bindFramebuffer(36160,t||null),r}},{key:"clear",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.color,n=t.depth,i=t.stencil,a=t.drawBuffers,o=void 0===a?[]:a,s=this.gl.bindFramebuffer(36160,this.handle);return(r||n||i)&&nr(this.gl,{color:r,depth:n,stencil:i}),o.forEach((function(t,r){ir(e.gl,{drawBuffer:r,value:t})})),this.gl.bindFramebuffer(36160,s||null),this}},{key:"readPixels",value:function(){return U.error("Framebuffer.readPixels() is no logner supported, use readPixelsToArray(framebuffer)")(),null}},{key:"readPixelsToBuffer",value:function(){return U.error("Framebuffer.readPixelsToBuffer()is no logner supported, use readPixelsToBuffer(framebuffer)")(),null}},{key:"copyToDataUrl",value:function(){return U.error("Framebuffer.copyToDataUrl() is no logner supported, use copyToDataUrl(framebuffer)")(),null}},{key:"copyToImage",value:function(){return U.error("Framebuffer.copyToImage() is no logner supported, use copyToImage(framebuffer)")(),null}},{key:"copyToTexture",value:function(){return U.error("Framebuffer.copyToTexture({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"blit",value:function(){return U.error("Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)")(),null}},{key:"invalidate",value:function(e){var t=e.attachments,r=void 0===t?[]:t,n=e.x,i=void 0===n?0:n,a=e.y,o=void 0===a?0:a,s=e.width,u=e.height,c=W(this.gl),l=c.bindFramebuffer(36008,this.handle);return 0===i&&0===o&&void 0===s&&void 0===u?c.invalidateFramebuffer(36008,r):c.invalidateFramebuffer(36008,r,i,o,s,u),c.bindFramebuffer(36008,l),this}},{key:"getAttachmentParameter",value:function(e,t,r){var n=this._getAttachmentParameterFallback(t);return null===n&&(this.gl.bindFramebuffer(36160,this.handle),n=this.gl.getFramebufferAttachmentParameter(36160,e,t),this.gl.bindFramebuffer(36160,null)),r&&n>1e3&&(n=ot(this.gl,n)),n}},{key:"getAttachmentParameters",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:36064,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],i={},a=gr(n);try{for(a.s();!(e=a.n()).done;){var o=e.value,s=r?ot(this.gl,o):o;i[s]=this.getAttachmentParameter(t,o,r)}}catch(e){a.e(e)}finally{a.f()}return i}},{key:"getParameters",value:function(){for(var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Object.keys(this.attachments),r={},n=0,i=t;n<i.length;n++){var a=i[n],o=Number(a),s=e?ot(this.gl,o):o;r[s]=this.getAttachmentParameters(o,e)}return r}},{key:"show",value:function(){return"undefined"!=typeof window&&window.open(hr(this),"luma-debug-texture"),this}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(e>U.level||"undefined"==typeof window)return this;t=t||"Framebuffer ".concat(this.id);var r=hr(this,{targetMaxHeight:100});return U.image({logLevel:e,message:t,image:r},t)(),this}},{key:"bind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?36160:t;return this.gl.bindFramebuffer(r,this.handle),this}},{key:"unbind",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,r=void 0===t?36160:t;return this.gl.bindFramebuffer(r,null),this}},{key:"_createDefaultAttachments",value:function(e,t,r,n,i){var a,o=null;e&&((o=o||{})[36064]=new Kt(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:n,height:i,mipmaps:!1,parameters:(a={},y()(a,10241,9729),y()(a,10240,9729),y()(a,10242,33071),y()(a,10243,33071),a)}),this.ownResources.push(o[36064]));return t&&r?((o=o||{})[33306]=new rr(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:n,height:111}),this.ownResources.push(o[33306])):t?((o=o||{})[36096]=new rr(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:n,height:i}),this.ownResources.push(o[36096])):r&&Ye(!1),o}},{key:"_unattach",value:function(e){var t=this.attachments[e];t&&(t instanceof rr?this.gl.framebufferRenderbuffer(36160,e,36161,null):this.gl.framebufferTexture2D(36160,e,3553,null,0),delete this.attachments[e])}},{key:"_attachRenderbuffer",value:function(e){var t=e.attachment,r=void 0===t?36064:t,n=e.renderbuffer;this.gl.framebufferRenderbuffer(36160,r,36161,n.handle),this.attachments[r]=n}},{key:"_attachTexture",value:function(e){var t=e.attachment,r=void 0===t?36064:t,n=e.texture,i=e.layer,a=e.level,o=this.gl;switch(o.bindTexture(n.target,n.handle),n.target){case 35866:case 32879:W(o).framebufferTextureLayer(36160,r,n.target,a,i);break;case 34067:var s=function(e){return e<34069?e+34069:e}(i);o.framebufferTexture2D(36160,r,s,n.handle,a);break;case 3553:o.framebufferTexture2D(36160,r,3553,n.handle,a);break;default:Ye(!1,"Illegal texture type")}o.bindTexture(n.target,null),this.attachments[r]=n}},{key:"_setReadBuffer",value:function(e){var t,r=G(t=this.gl)?t:null;r?r.readBuffer(e):Ye(36064===e||1029===e,"Multiple render targets not supported"),this.readBuffer=e}},{key:"_setDrawBuffers",value:function(e){var t=this.gl,r=W(t);if(r)r.drawBuffers(e);else{var n=t.getExtension("WEBGL_draw_buffers");n?n.drawBuffersWEBGL(e):Ye(1===e.length&&(36064===e[0]||1029===e[0]),"Multiple render targets not supported")}this.drawBuffers=e}},{key:"_getAttachmentParameterFallback",value:function(e){var t=function(e){for(var t in e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},Vr)void 0===e.luma.caps[t]&&(e.luma.caps[t]=Xr(e,t));return e.luma.caps}(this.gl);switch(e){case 36052:return t.WEBGL2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.WEBGL2?null:8;case 33297:return t.WEBGL2?null:5125;case 33296:return t.WEBGL2||t.EXT_sRGB?null:9729;default:return null}}},{key:"_createHandle",value:function(){return this.gl.createFramebuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteFramebuffer(this.handle)}},{key:"_bindHandle",value:function(e){return this.gl.bindFramebuffer(36160,e)}},{key:"color",get:function(){return this.attachments[36064]||null}},{key:"texture",get:function(){return this.attachments[36064]||null}},{key:"depth",get:function(){return this.attachments[36096]||this.attachments[33306]||null}},{key:"stencil",get:function(){return this.attachments[36128]||this.attachments[33306]||null}}]),r}(gt);var br;pr.ATTACHMENT_PARAMETERS=[36049,36048,33296,33298,33299,33300,33301,33302,33303];var _r="WEBGL2",xr="VERTEX_ARRAY_OBJECT",wr="TIMER_QUERY",Ar="INSTANCED_RENDERING",kr="MULTIPLE_RENDER_TARGETS",Tr="ELEMENT_INDEX_UINT32",Er="BLEND_EQUATION_MINMAX",Or="FLOAT_BLEND",Sr="COLOR_ENCODING_SRGB",Pr="TEXTURE_DEPTH",Ir="TEXTURE_FLOAT",Lr="TEXTURE_HALF_FLOAT",Rr="TEXTURE_FILTER_LINEAR_FLOAT",Mr="TEXTURE_FILTER_LINEAR_HALF_FLOAT",Dr="TEXTURE_FILTER_ANISOTROPIC",Fr="COLOR_ATTACHMENT_RGBA32F",jr="COLOR_ATTACHMENT_FLOAT",Br="COLOR_ATTACHMENT_HALF_FLOAT",Cr="GLSL_FRAG_DATA",Nr="GLSL_FRAG_DEPTH",Ur="GLSL_DERIVATIVES",zr="GLSL_TEXTURE_LOD";var Vr=(br={},y()(br,_r,[!1,!0]),y()(br,xr,["OES_vertex_array_object",!0]),y()(br,wr,["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"]),y()(br,Ar,["ANGLE_instanced_arrays",!0]),y()(br,kr,["WEBGL_draw_buffers",!0]),y()(br,Tr,["OES_element_index_uint",!0]),y()(br,Er,["EXT_blend_minmax",!0]),y()(br,Or,["EXT_float_blend"]),y()(br,Sr,["EXT_sRGB",!0]),y()(br,Pr,["WEBGL_depth_texture",!0]),y()(br,Ir,["OES_texture_float",!0]),y()(br,Lr,["OES_texture_half_float",!0]),y()(br,Rr,["OES_texture_float_linear"]),y()(br,Mr,["OES_texture_half_float_linear"]),y()(br,Dr,["EXT_texture_filter_anisotropic"]),y()(br,Fr,[function(e){var t=new Kt(e,{format:6408,type:5126,dataFormat:6408}),r=new pr(e,{id:"test-framebuffer",check:!1,attachments:y()({},36064,t)}),n=r.getStatus();return t.delete(),r.delete(),36053===n},"EXT_color_buffer_float"]),y()(br,jr,[!1,"EXT_color_buffer_float"]),y()(br,Br,["EXT_color_buffer_half_float"]),y()(br,Cr,["WEBGL_draw_buffers",!0]),y()(br,Nr,["EXT_frag_depth",!0]),y()(br,Ur,["OES_standard_derivatives",!0]),y()(br,zr,["EXT_shader_texture_lod",!0]),br);function Gr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Hr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Hr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Hr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Wr(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return Xr(e,t)}))}function Xr(e,t){return e.luma=e.luma||{},e.luma.caps=e.luma.caps||{},void 0===e.luma.caps[t]&&(e.luma.caps[t]=function(e,t){var r,n=Vr[t];Ye(n,t);var i=G(e)&&n[1]||n[0];if("function"==typeof i)r=i(e);else if(Array.isArray(i)){r=!0;var a,o=Gr(i);try{for(o.s();!(a=o.n()).done;){var s=a.value;r=r&&Boolean(e.getExtension(s))}}catch(e){o.e(e)}finally{o.f()}}else"string"==typeof i?r=Boolean(e.getExtension(i)):"boolean"==typeof i?r=i:Ye(!1);return r}(e,t)),e.luma.caps[t]||U.log(2,"Feature: ".concat(t," not supported"))(),e.luma.caps[t]}function qr(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Qr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Qr(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Qr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function $r(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Yr=function(e){et()(r,e);var t=$r(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).target=null,n._queryPending=!1,n._pollingPromise=null,Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Query"}}],[{key:"isSupported",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=G(e),i=Wr(e,wr),a=n||i,o=qr(r);try{for(o.s();!(t=o.n()).done;){var s=t.value;switch(s){case"queries":a=a&&n;break;case"timers":a=a&&i;break;default:Ye(!1)}}}catch(e){o.e(e)}finally{o.f()}return a}}]),h()(r,[{key:"beginTimeElapsedQuery",value:function(){return this.begin(35007)}},{key:"beginOcclusionQuery",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.conservative,r=void 0!==t&&t;return this.begin(r?36202:35887)}},{key:"beginTransformFeedbackQuery",value:function(){return this.begin(35976)}},{key:"begin",value:function(e){return this._queryPending||(this.target=e,this.gl2.beginQuery(this.target,this.handle)),this}},{key:"end",value:function(){return this._queryPending||this.target&&(this.gl2.endQuery(this.target),this.target=null,this._queryPending=!0),this}},{key:"isResultAvailable",value:function(){if(!this._queryPending)return!1;var e=this.gl2.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}},{key:"isTimerDisjoint",value:function(){return this.gl2.getParameter(36795)}},{key:"getResult",value:function(){return this.gl2.getQueryParameter(this.handle,34918)}},{key:"getTimerMilliseconds",value:function(){return this.getResult()/1e6}},{key:"createPoll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.POSITIVE_INFINITY;if(this._pollingPromise)return this._pollingPromise;var r=0;return this._pollingPromise=new Promise((function(n,i){requestAnimationFrame((function a(){e.isResultAvailable()?(n(e.getResult()),e._pollingPromise=null):r++>t?(i("Timed out"),e._pollingPromise=null):requestAnimationFrame(a)}))})),this._pollingPromise}},{key:"_createHandle",value:function(){return r.isSupported(this.gl)?this.gl2.createQuery():null}},{key:"_deleteHandle",value:function(){this.gl2.deleteQuery(this.handle)}}]),r}(gt);var Kr=Object(De.a)()&&"undefined"!=typeof document,Jr=0,Zr=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,e);var r=t.onCreateContext,n=void 0===r?function(e){return Ne(e)}:r,i=t.onAddHTML,a=void 0===i?null:i,o=t.onInitialize,s=void 0===o?function(){}:o,u=t.onRender,c=void 0===u?function(){}:u,f=t.onFinalize,h=void 0===f?function(){}:f,d=t.onError,v=t.gl,g=void 0===v?null:v,y=t.glOptions,m=void 0===y?{}:y,p=t.debug,b=void 0!==p&&p,_=t.createFramebuffer,x=void 0!==_&&_,w=t.autoResizeViewport,A=void 0===w||w,k=t.autoResizeDrawingBuffer,T=void 0===k||k,E=t.stats,O=void 0===E?$e.get("animation-loop-".concat(Jr++)):E,S=t.useDevicePixels,P=void 0===S||S;"useDevicePixelRatio"in t&&(U.deprecated("useDevicePixelRatio","useDevicePixels")(),P=t.useDevicePixelRatio),this.props={onCreateContext:n,onAddHTML:a,onInitialize:s,onRender:c,onFinalize:h,onError:d,gl:g,glOptions:m,debug:b,createFramebuffer:x},this.gl=g,this.needsRedraw=null,this.timeline=null,this.stats=O,this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this._initialized=!1,this._running=!1,this._animationFrameId=null,this._nextFramePromise=null,this._resolveNextFrame=null,this._cpuStartTime=0,this.setProps({autoResizeViewport:A,autoResizeDrawingBuffer:T,useDevicePixels:P}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._pageLoadPromise=null,this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}var t;return h()(e,[{key:"delete",value:function(){this.stop(),this._setDisplay(null)}},{key:"setNeedsRedraw",value:function(e){return Ye("string"==typeof e),this.needsRedraw=this.needsRedraw||e,this}},{key:"setProps",value:function(e){return"autoResizeViewport"in e&&(this.autoResizeViewport=e.autoResizeViewport),"autoResizeDrawingBuffer"in e&&(this.autoResizeDrawingBuffer=e.autoResizeDrawingBuffer),"useDevicePixels"in e&&(this.useDevicePixels=e.useDevicePixels),this}},{key:"start",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._running)return this;this._running=!0;var r=this._getPageLoadPromise().then((function(){return!e._running||e._initialized?null:(e._createWebGLContext(t),e._createFramebuffer(),e._startEventHandling(),e._initializeCallbackData(),e._updateCallbackData(),e._resizeCanvasDrawingBuffer(),e._resizeViewport(),e._gpuTimeQuery=Yr.isSupported(e.gl,["timers"])?new Yr(e.gl):null,e._initialized=!0,e.onInitialize(e.animationProps))})).then((function(t){e._running&&(e._addCallbackData(t||{}),!1!==t&&e._startLoop())}));return this.props.onError&&r.catch(this.props.onError),this}},{key:"redraw",value:function(){return this.isContextLost()||(this._beginTimers(),this._setupFrame(),this._updateCallbackData(),this._renderFrame(this.animationProps),this._clearNeedsRedraw(),this.offScreen&&this.gl.commit&&this.gl.commit(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endTimers()),this}},{key:"stop",value:function(){return this._running&&(this._finalizeCallbackData(),this._cancelAnimationFrame(this._animationFrameId),this._nextFramePromise=null,this._resolveNextFrame=null,this._animationFrameId=null,this._running=!1),this}},{key:"attachTimeline",value:function(e){return this.timeline=e,this.timeline}},{key:"detachTimeline",value:function(){this.timeline=null}},{key:"waitForRender",value:function(){var e=this;return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise((function(t){e._resolveNextFrame=t}))),this._nextFramePromise}},{key:"toDataURL",value:(t=u()(o.a.mark((function e(){return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setNeedsRedraw("toDataURL"),e.next=3,this.waitForRender();case 3:return e.abrupt("return",this.gl.canvas.toDataURL());case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"isContextLost",value:function(){return this.gl.isContextLost()}},{key:"onCreateContext",value:function(){var e;return(e=this.props).onCreateContext.apply(e,arguments)}},{key:"onInitialize",value:function(){var e;return(e=this.props).onInitialize.apply(e,arguments)}},{key:"onRender",value:function(){var e;return(e=this.props).onRender.apply(e,arguments)}},{key:"onFinalize",value:function(){var e;return(e=this.props).onFinalize.apply(e,arguments)}},{key:"getHTMLControlValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=document.getElementById(e);return r?Number(r.value):t}},{key:"setViewParameters",value:function(){return U.removed("AnimationLoop.setViewParameters","AnimationLoop.setProps")(),this}},{key:"_startLoop",value:function(){var e=this;this._cancelAnimationFrame(this._animationFrameId),this._animationFrameId=this._requestAnimationFrame((function t(){e._running&&(e.redraw(),e._animationFrameId=e._requestAnimationFrame(t))}))}},{key:"_getPageLoadPromise",value:function(){return this._pageLoadPromise||(this._pageLoadPromise=Kr?new Promise((function(e,t){Kr&&"complete"===document.readyState?e(document):window.addEventListener("load",(function(){e(document)}))})):Promise.resolve({})),this._pageLoadPromise}},{key:"_setDisplay",value:function(e){this.display&&(this.display.delete(),this.display.animationLoop=null),e&&(e.animationLoop=this),this.display=e}},{key:"_cancelAnimationFrame",value:function(e){return this.display&&this.display.cancelAnimationFrame?this.display.cancelAnimationFrame(e):(t=e,"undefined"!=typeof window&&window.cancelAnimationFrame?window.cancelAnimationFrame(t):clearTimeout(t));var t}},{key:"_requestAnimationFrame",value:function(e){if(this._running)return this.display&&this.display.requestAnimationFrame?this.display.requestAnimationFrame(e):(t=e,"undefined"!=typeof window&&window.requestAnimationFrame?window.requestAnimationFrame(t):setTimeout(t,1e3/60));var t}},{key:"_renderFrame",value:function(){var e;this.display?(e=this.display)._renderFrame.apply(e,arguments):this.onRender.apply(this,arguments)}},{key:"_clearNeedsRedraw",value:function(){this.needsRedraw=null}},{key:"_setupFrame",value:function(){this._resizeCanvasDrawingBuffer(),this._resizeViewport(),this._resizeFramebuffer()}},{key:"_initializeCallbackData",value:function(){this.animationProps={gl:this.gl,stop:this.stop,canvas:this.gl.canvas,framebuffer:this.framebuffer,useDevicePixels:this.useDevicePixels,needsRedraw:null,startTime:Date.now(),engineTime:0,tick:0,tock:0,time:0,_timeline:this.timeline,_loop:this,_animationLoop:this,_mousePosition:null}}},{key:"_updateCallbackData",value:function(){var e=this._getSizeAndAspect(),t=e.width,r=e.height,n=e.aspect;t===this.animationProps.width&&r===this.animationProps.height||this.setNeedsRedraw("drawing buffer resized"),n!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=t,this.animationProps.height=r,this.animationProps.aspect=n,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime,this.animationProps._offScreen=this.offScreen}},{key:"_finalizeCallbackData",value:function(){this.onFinalize(this.animationProps)}},{key:"_addCallbackData",value:function(e){"object"===i()(e)&&null!==e&&(this.animationProps=Object.assign({},this.animationProps,e))}},{key:"_createWebGLContext",value:function(e){if(this.offScreen=e.canvas&&"undefined"!=typeof OffscreenCanvas&&e.canvas instanceof OffscreenCanvas,e=Object.assign({},e,this.props.glOptions),this.gl=this.props.gl?Ue(this.props.gl,e):this.onCreateContext(e),!V(this.gl))throw new Error("AnimationLoop.onCreateContext - illegal context returned");Le(this.gl,le),this._createInfoDiv()}},{key:"_createInfoDiv",value:function(){if(this.gl.canvas&&this.props.onAddHTML){var e=document.createElement("div");document.body.appendChild(e),e.style.position="relative";var t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",e.appendChild(this.gl.canvas),e.appendChild(t);var r=this.props.onAddHTML(t);r&&(t.innerHTML=r)}}},{key:"_getSizeAndAspect",value:function(){var e=this.gl.drawingBufferWidth,t=this.gl.drawingBufferHeight,r=1,n=this.gl.canvas;return n&&n.clientHeight?r=n.clientWidth/n.clientHeight:e>0&&t>0&&(r=e/t),{width:e,height:t,aspect:r}}},{key:"_resizeViewport",value:function(){this.autoResizeViewport&&this.gl.viewport(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}},{key:"_resizeCanvasDrawingBuffer",value:function(){this.autoResizeDrawingBuffer&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.canvas){var r=Fe(t.useDevicePixels);We(e,r,t)}else{var n=e.getExtension("STACKGL_resize_drawingbuffer");n&&"width"in t&&"height"in t&&n.resize(t.width,t.height)}}(this.gl,{useDevicePixels:this.useDevicePixels})}},{key:"_createFramebuffer",value:function(){this.props.createFramebuffer&&(this.framebuffer=new pr(this.gl))}},{key:"_resizeFramebuffer",value:function(){this.framebuffer&&this.framebuffer.resize({width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight})}},{key:"_beginTimers",value:function(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this._gpuTimeQuery&&this._gpuTimeQuery.isResultAvailable()&&!this._gpuTimeQuery.isTimerDisjoint()&&this.stats.get("GPU Time").addTime(this._gpuTimeQuery.getTimerMilliseconds()),this._gpuTimeQuery&&this._gpuTimeQuery.beginTimeElapsedQuery(),this.cpuTime.timeStart()}},{key:"_endTimers",value:function(){this.cpuTime.timeEnd(),this._gpuTimeQuery&&this._gpuTimeQuery.end()}},{key:"_startEventHandling",value:function(){var e=this.gl.canvas;e&&(e.addEventListener("mousemove",this._onMousemove),e.addEventListener("mouseleave",this._onMouseleave))}},{key:"_onMousemove",value:function(e){this.animationProps._mousePosition=[e.offsetX,e.offsetY]}},{key:"_onMouseleave",value:function(e){this.animationProps._mousePosition=null}}]),e}();function en(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var tn={number:{validate:function(e,t){return Number.isFinite(e)&&(!("max"in t)||e<=t.max)&&(!("min"in t)||e>=t.min)}},array:{validate:function(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function rn(e){var t=nn(e);return"object"===t?e?"type"in e?Object.assign({},e,tn[e.type]):"value"in e?(t=nn(e.value),Object.assign({type:t},e,tn[t])):{type:"object",value:e}:{type:"object",value:null}:Object.assign({type:t,value:e},tn[t])}function nn(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":i()(e)}var an=function(){function e(t){var r=t.name,n=t.vs,i=t.fs,a=t.dependencies,o=void 0===a?[]:a,s=t.uniforms,u=t.getUniforms,c=t.deprecations,f=void 0===c?[]:c,h=t.defines,d=void 0===h?{}:h,v=t.inject,g=void 0===v?{}:v,y=t.vertexShader,m=t.fragmentShader;l()(this,e),en("string"==typeof r),this.name=r,this.vs=n||y,this.fs=i||m,this.getModuleUniforms=u,this.dependencies=o,this.deprecations=this._parseDeprecationDefinitions(f),this.defines=d,this.injections=function(e){var t={vs:{},fs:{}};for(var r in e){var n=e[r],i=r.slice(0,2);"string"==typeof n&&(n={order:0,injection:n}),t[i][r]=n}return t}(g),s&&(this.uniforms=function(e){var t={};for(var r in e){var n=rn(e[r]);t[r]=n}return t}(s))}return h()(e,[{key:"getModuleSource",value:function(e){var t;switch(e){case"vs":t=this.vs||"";break;case"fs":t=this.fs||"";break;default:en(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),"\n").concat(t,"// END MODULE_").concat(this.name,"\n\n")}},{key:"getUniforms",value:function(e,t){return this.getModuleUniforms?this.getModuleUniforms(e,t):this.uniforms?this._defaultGetUniforms(e):{}}},{key:"getDefines",value:function(){return this.defines}},{key:"checkDeprecations",value:function(e,t){this.deprecations.forEach((function(r){r.regex.test(e)&&(r.deprecated?t.deprecated(r.old,r.new)():t.removed(r.old,r.new)())}))}},{key:"_parseDeprecationDefinitions",value:function(e){return e.forEach((function(e){switch(e.type){case"function":e.regex=new RegExp("\\b".concat(e.old,"\\("));break;default:e.regex=new RegExp("".concat(e.type," ").concat(e.old,";"))}})),e}},{key:"_defaultGetUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={},r=this.uniforms;for(var n in r){var i=r[n];n in e&&!i.private?(i.validate&&en(i.validate(e[n],i),"".concat(this.name,": invalid ").concat(n)),t[n]=e[n]):t[n]=i.value}return t}}]),e}();function on(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return sn(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return sn(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function un(e){return cn(function e(t,r){return t.map((function(t){return t instanceof an||(en("string"!=typeof t,"Shader module use by name is deprecated. Import shader module '".concat(t,"' and use it directly.")),en(t.name,"shader module has no name"),(t=new an(t)).dependencies=e(t.dependencies)),t}))}(e))}function cn(e){var t={},r={};return ln({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((function(e,t){return r[t]-r[e]})).map((function(e){return t[e]}))}function ln(e){var t=e.modules,r=e.level,n=e.moduleMap,i=e.moduleDepth;if(r>=5)throw new Error("Possible loop in shader dependency graph");var a,o=on(t);try{for(o.s();!(a=o.n()).done;){var s=a.value;n[s.name]=s,(void 0===i[s.name]||i[s.name]<r)&&(i[s.name]=r)}}catch(e){o.e(e)}finally{o.f()}var u,c=on(t);try{for(c.s();!(u=c.n()).done;){var l=u.value;l.dependencies&&ln({modules:l.dependencies,level:r+1,moduleMap:n,moduleDepth:i})}}catch(e){c.e(e)}finally{c.f()}}function fn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t="undefined"!=typeof window&&window.navigator||{},r=e.userAgent||t.userAgent||"",n=-1!==r.indexOf("MSIE "),i=-1!==r.indexOf("Trident/");return n||i}var hn={GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},dn={};Object.keys(hn).forEach((function(e){dn[e]=e}));var vn={};function gn(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=hn[t];if(en(n,t),!fn(r))return!0;if(t in vn)return vn[t];var i=n[0],a=r.behavior||"enable",o="#extension GL_".concat(i," : ").concat(a,"\nvoid main(void) {}"),s=e.createShader(35633);e.shaderSource(s,o),e.compileShader(s);var u=e.getShaderParameter(s,35713);return e.deleteShader(s),vn[t]=u,u}function yn(e,t){var r=hn[t];en(r,t);var n=function(e){return"undefined"!=typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||Boolean(e&&2===e._version)}(e)&&r[1]||r[0],i="string"==typeof n?Boolean(e.getExtension(n)):n;return en(!1===i||!0===i),i}function mn(e,t){return(t=Array.isArray(t)?t:[t]).every((function(t){return yn(e,t)}))}var pn,bn=(pn={},y()(pn,"vs","#ifdef MODULE_LOGDEPTH\n logdepth_adjustPosition(gl_Position);\n#endif\n"),y()(pn,"fs","#ifdef MODULE_MATERIAL\n gl_FragColor = material_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LIGHTING\n gl_FragColor = lighting_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_FOG\n gl_FragColor = fog_filterColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_PICKING\n gl_FragColor = picking_filterHighlightColor(gl_FragColor);\n gl_FragColor = picking_filterPickingColor(gl_FragColor);\n#endif\n\n#ifdef MODULE_LOGDEPTH\n logdepth_setFragDepth();\n#endif\n"),pn),_n=/void\s+main\s*\([^)]*\)\s*\{\n?/,xn=/}\n?[^{}]*$/,wn=[];function An(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i="vs"===t,a=function(t){var n=r[t];n.sort((function(e,t){return e.order-t.order})),wn.length=n.length;for(var a=0,o=n.length;a<o;++a)wn[a]=n[a].injection;var s="".concat(wn.join("\n"),"\n");switch(t){case"vs:#decl":i&&(e=e.replace("__LUMA_INJECT_DECLARATIONS__",s));break;case"vs:#main-start":i&&(e=e.replace(_n,(function(e){return e+s})));break;case"vs:#main-end":i&&(e=e.replace(xn,(function(e){return s+e})));break;case"fs:#decl":i||(e=e.replace("__LUMA_INJECT_DECLARATIONS__",s));break;case"fs:#main-start":i||(e=e.replace(_n,(function(e){return e+s})));break;case"fs:#main-end":i||(e=e.replace(xn,(function(e){return s+e})));break;default:e=e.replace(t,(function(e){return e+s}))}};for(var o in r)a(o);return e=e.replace("__LUMA_INJECT_DECLARATIONS__",""),n&&(e=e.replace(/\}\s*$/,(function(e){return e+bn[t]}))),e}function kn(e){var t={};return en(Array.isArray(e)&&e.length>1),e.forEach((function(e){for(var r in e)t[r]=t[r]?"".concat(t[r],"\n").concat(e[r]):e[r]})),t}function Tn(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return En(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return En(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function En(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function On(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}var Sn,Pn=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,"#version 300 es\n"],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],In=[].concat(Pn,[[On("attribute"),"in $1"],[On("varying"),"out $1"]]),Ln=[].concat(Pn,[[On("varying"),"in $1"]]),Rn=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Mn=[].concat(Rn,[[On("in"),"attribute $1"],[On("out"),"varying $1"]]),Dn=[].concat(Rn,[[On("in"),"varying $1"]]),Fn=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,jn=/void\s+main\s*\([^)]*\)\s*\{\n?/;function Bn(e,t,r){switch(t){case 300:return r?Cn(e,In):function(e){var t=(e=Cn(e,Ln)).match(Fn);if(t){var r=t[1];e=e.replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),r)}else{e=e.replace(jn,(function(e){return"out vec4 ".concat("fragmentColor",";\n").concat(e)})).replace(new RegExp("\\b".concat("gl_FragColor","\\b"),"g"),"fragmentColor")}return e}(e);case 100:return r?Cn(e,Mn):function(e){var t=(e=Cn(e,Dn)).match(Fn);if(t){var r=t[1];e=e.replace(Fn,"").replace(new RegExp("\\b".concat(r,"\\b"),"g"),"gl_FragColor")}return e}(e);default:throw new Error("unknown GLSL version ".concat(t))}}function Cn(e,t){var r,n=Tn(t);try{for(n.s();!(r=n.n()).done;){var i=ce()(r.value,2),a=i[0],o=i[1];e=e.replace(a,o)}}catch(e){n.e(e)}finally{n.f()}return e}function Nn(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Un(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Un(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Un(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var zn,Vn="\n\n".concat("__LUMA_INJECT_DECLARATIONS__","\n\n"),Gn=(Sn={},y()(Sn,"vs","vertex"),y()(Sn,"fs","fragment"),Sn);function Hn(e,t){var r=t.vs,n=t.fs,i=un(t.modules||[]);return{gl:e,vs:Wn(e,Object.assign({},t,{source:r,type:"vs",modules:i})),fs:Wn(e,Object.assign({},t,{source:n,type:"fs",modules:i})),getUniforms:Xn(i)}}function Wn(e,t){var r=t.id,n=t.source,i=t.type,a=t.modules,o=t.defines,s=void 0===o?{}:o,u=t.hookFunctions,c=void 0===u?[]:u,l=t.inject,f=void 0===l?{}:l,h=t.transpileToGLSL100,d=void 0!==h&&h,v=t.prologue,g=void 0===v||v,y=t.log;en("string"==typeof n,"shader source must be a string");var m="vs"===i,p=n.split("\n"),b=100,_="",x=n;0===p[0].indexOf("#version ")?(b=300,_=p[0],x=p.slice(1).join("\n")):_="#version ".concat(b);var w={};a.forEach((function(e){Object.assign(w,e.getDefines())})),Object.assign(w,s);var A=g?"".concat(_,"\n").concat(function(e){var t=e.id,r=e.source,n=e.type;return t&&"string"==typeof t&&-1===r.indexOf("SHADER_NAME")?"\n#define SHADER_NAME ".concat(t,"_").concat(Gn[n],"\n\n"):""}({id:r,source:n,type:i}),"\n").concat(function(e){var t=e.type;return"\n#define SHADER_TYPE_".concat(Gn[t].toUpperCase(),"\n")}({type:i}),"\n").concat(function(e){switch(function(e){var t=e.getExtension("WEBGL_debug_renderer_info"),r=e.getParameter(t&&t.UNMASKED_VENDOR_WEBGL||7936),n=e.getParameter(t&&t.UNMASKED_RENDERER_WEBGL||7937);return{gpuVendor:function(e,t){if(e.match(/NVIDIA/i)||t.match(/NVIDIA/i))return"NVIDIA";if(e.match(/INTEL/i)||t.match(/INTEL/i))return"INTEL";if(e.match(/AMD/i)||t.match(/AMD/i)||e.match(/ATI/i)||t.match(/ATI/i))return"AMD";return"UNKNOWN GPU"}(r,n),vendor:r,renderer:n,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e).gpuVendor.toLowerCase()){case"nvidia":return"#define NVIDIA_GPU\n// Nvidia optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n";case"intel":return"#define INTEL_GPU\n// Intel optimizes away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n";case"amd":return"#define AMD_GPU\n";default:return"#define DEFAULT_GPU\n// Prevent driver from optimizing away the calculation necessary for emulated fp64\n#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1\n// Intel's built-in 'tan' function doesn't have acceptable precision\n#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1\n// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow\n#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1\n"}}(e),"\n").concat(function(e,t,r){var n="#if (__VERSION__ > 120)\n\n# define FEATURE_GLSL_DERIVATIVES\n# define FEATURE_GLSL_DRAW_BUFFERS\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FEATURE_GLSL_TEXTURE_LOD\n\n// DEPRECATED FLAGS, remove in v9\n# define FRAG_DEPTH\n# define DERIVATIVES\n# define DRAW_BUFFERS\n# define TEXTURE_LOD\n\n#endif // __VERSION\n";return mn(e,dn.GLSL_FRAG_DEPTH)&&(n+="\n// FRAG_DEPTH => gl_FragDepth is available\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n# define FEATURE_GLSL_FRAG_DEPTH\n# define FRAG_DEPTH\n# define gl_FragDepth gl_FragDepthEXT\n#endif\n"),mn(e,dn.GLSL_DERIVATIVES)&&gn(e,dn.GLSL_DERIVATIVES)&&(n+="\n// DERIVATIVES => dxdF, dxdY and fwidth are available\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n# define FEATURE_GLSL_DERIVATIVES\n# define DERIVATIVES\n#endif\n"),mn(e,dn.GLSL_FRAG_DATA)&&gn(e,dn.GLSL_FRAG_DATA,{behavior:"require"})&&(n+="\n// DRAW_BUFFERS => gl_FragData[] is available\n#ifdef GL_EXT_draw_buffers\n#extension GL_EXT_draw_buffers : require\n#define FEATURE_GLSL_DRAW_BUFFERS\n#define DRAW_BUFFERS\n#endif\n"),mn(e,dn.GLSL_TEXTURE_LOD)&&(n+="// TEXTURE_LOD => texture2DLod etc are available\n#ifdef GL_EXT_shader_texture_lod\n#extension GL_EXT_shader_texture_lod : enable\n\n# define FEATURE_GLSL_TEXTURE_LOD\n# define TEXTURE_LOD\n\n#endif\n"),n}(e),"\n").concat(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=0,r="";for(var n in e){0===t&&(r+="\n// APPLICATION DEFINES\n"),t++;var i=e[n];(i||Number.isFinite(i))&&(r+="#define ".concat(n.toUpperCase()," ").concat(e[n],"\n"))}0===t&&(r+="\n");return r}(w),"\n").concat(m?"":"precision highp float;\n\n","\n"):"".concat(_,"\n"),k=function(e){var t={vs:{},fs:{}};return e.forEach((function(e){var r;"string"!=typeof e?e=(r=e).hook:r={};var n=(e=e.trim()).split(":"),i=ce()(n,2),a=i[0],o=i[1],s=e.replace(/\(.+/,"");t[a][s]=Object.assign(r,{signature:o})})),t}(c),T={},E={},O={};for(var S in f){var P="string"==typeof f[S]?{injection:f[S],order:0}:f[S],I=S.match(/^(v|f)s:(#)?([\w-]+)$/);if(I){var L=I[2],R=I[3];L?"decl"===R?E[S]=[P]:O[S]=[P]:T[S]=[P]}else O[S]=[P]}var M,D=Nn(a);try{for(D.s();!(M=D.n()).done;){var F=M.value;y&&F.checkDeprecations(x,y),A+=F.getModuleSource(i,b);var j=F.injections[i];for(var B in j){var C=B.match(/^(v|f)s:#([\w-]+)$/);if(C){var N="decl"===C[2]?E:O;N[B]=N[B]||[],N[B].push(j[B])}else T[B]=T[B]||[],T[B].push(j[B])}}}catch(e){D.e(e)}finally{D.f()}return A=An(A+=Vn,i,E),A+=function(e,t){var r="";for(var n in e){var i=e[n];if(r+="void ".concat(i.signature," {\n"),i.header&&(r+=" ".concat(i.header)),t[n]){var a=t[n];a.sort((function(e,t){return e.order-t.order}));var o,s=Nn(a);try{for(s.s();!(o=s.n()).done;){var u=o.value;r+=" ".concat(u.injection,"\n")}}catch(e){s.e(e)}finally{s.f()}}i.footer&&(r+=" ".concat(i.footer)),r+="}\n"}return r}(k[i],T),A=Bn(A=An(A+=x,i,O),d?100:b,m)}function Xn(e){return function(t){var r,n={},i=Nn(e);try{for(i.s();!(r=i.n()).done;){var a=r.value.getUniforms(t,n);Object.assign(n,a)}}catch(e){i.e(e)}finally{i.f()}return n}}var qn=(zn={},y()(zn,5126,ui.bind(null,"uniform1fv",Zn,1,ci)),y()(zn,35664,ui.bind(null,"uniform2fv",Zn,2,ci)),y()(zn,35665,ui.bind(null,"uniform3fv",Zn,3,ci)),y()(zn,35666,ui.bind(null,"uniform4fv",Zn,4,ci)),y()(zn,5124,ui.bind(null,"uniform1iv",ei,1,ci)),y()(zn,35667,ui.bind(null,"uniform2iv",ei,2,ci)),y()(zn,35668,ui.bind(null,"uniform3iv",ei,3,ci)),y()(zn,35669,ui.bind(null,"uniform4iv",ei,4,ci)),y()(zn,35670,ui.bind(null,"uniform1iv",ei,1,ci)),y()(zn,35671,ui.bind(null,"uniform2iv",ei,2,ci)),y()(zn,35672,ui.bind(null,"uniform3iv",ei,3,ci)),y()(zn,35673,ui.bind(null,"uniform4iv",ei,4,ci)),y()(zn,35674,ui.bind(null,"uniformMatrix2fv",Zn,4,li)),y()(zn,35675,ui.bind(null,"uniformMatrix3fv",Zn,9,li)),y()(zn,35676,ui.bind(null,"uniformMatrix4fv",Zn,16,li)),y()(zn,35678,si),y()(zn,35680,si),y()(zn,5125,ui.bind(null,"uniform1uiv",ti,1,ci)),y()(zn,36294,ui.bind(null,"uniform2uiv",ti,2,ci)),y()(zn,36295,ui.bind(null,"uniform3uiv",ti,3,ci)),y()(zn,36296,ui.bind(null,"uniform4uiv",ti,4,ci)),y()(zn,35685,ui.bind(null,"uniformMatrix2x3fv",Zn,6,li)),y()(zn,35686,ui.bind(null,"uniformMatrix2x4fv",Zn,8,li)),y()(zn,35687,ui.bind(null,"uniformMatrix3x2fv",Zn,6,li)),y()(zn,35688,ui.bind(null,"uniformMatrix3x4fv",Zn,12,li)),y()(zn,35689,ui.bind(null,"uniformMatrix4x2fv",Zn,8,li)),y()(zn,35690,ui.bind(null,"uniformMatrix4x3fv",Zn,12,li)),y()(zn,35678,si),y()(zn,35680,si),y()(zn,35679,si),y()(zn,35682,si),y()(zn,36289,si),y()(zn,36292,si),y()(zn,36293,si),y()(zn,36298,si),y()(zn,36299,si),y()(zn,36300,si),y()(zn,36303,si),y()(zn,36306,si),y()(zn,36307,si),y()(zn,36308,si),y()(zn,36311,si),zn),Qn={},$n={},Yn={},Kn=[0];function Jn(e,t,r,n){1===t&&"boolean"==typeof e&&(e=e?1:0),Number.isFinite(e)&&(Kn[0]=e,e=Kn);var i=e.length;if(i%t&&U.warn("Uniform size should be multiples of ".concat(t),e)(),e instanceof r)return e;var a=n[i];a||(a=new r(i),n[i]=a);for(var o=0;o<i;o++)a[o]=e[o];return a}function Zn(e,t){return Jn(e,t,Float32Array,Qn)}function ei(e,t){return Jn(e,t,Int32Array,$n)}function ti(e,t){return Jn(e,t,Uint32Array,Yn)}function ri(e,t,r){var n=qn[r.type];if(!n)throw new Error("Unknown GLSL uniform type ".concat(r.type));return n().bind(null,e,t)}function ni(e){if("]"!==e[e.length-1])return{name:e,length:1,isArray:!1};var t=e.match(/([^[]*)(\[[0-9]+\])?/);if(!t||t.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:t[1],length:t[2]||1,isArray:Boolean(t[2])}}function ii(e,t,r){for(var n in e){var i=e[n];if((!r||Boolean(r[n]))&&!ai(i))throw t=t?"".concat(t," "):"",console.error("".concat(t," Bad uniform ").concat(n),i),new Error("".concat(t," Bad uniform ").concat(n))}return!0}function ai(e){return Array.isArray(e)||ArrayBuffer.isView(e)?function(e){if(0===e.length)return!1;for(var t=Math.min(e.length,16),r=0;r<t;++r)if(!Number.isFinite(e[r]))return!1;return!0}(e):!!isFinite(e)||(!0===e||!1===e||(e instanceof Xt||(e instanceof rr||e instanceof pr&&Boolean(e.texture))))}function oi(e,t,r){if(Array.isArray(r)||ArrayBuffer.isView(r))if(e[t])for(var n=e[t],i=0,a=r.length;i<a;++i)n[i]=r[i];else e[t]=r.slice();else e[t]=r}function si(){var e=null;return function(t,r,n){var i=e!==n;return i&&(t.uniform1i(r,n),e=n),i}}function ui(e,t,r,n){var i=null,a=null;return function(o,s,u){var c=t(u,r),l=c.length,f=!1;if(null===i)i=new Float32Array(l),a=l,f=!0;else{Ye(a===l,"Uniform length cannot change.");for(var h=0;h<l;++h)if(c[h]!==i[h]){f=!0;break}}return f&&(n(o,e,s,c),i.set(c)),f}}function ci(e,t,r,n){e[t](r,n)}function li(e,t,r,n){e[t](r,!1,n)}function fi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unnamed",r=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,n=e.match(r);return n?n[1]:t}function hi(e,t,r,n){for(var i=e.split(/\r?\n/),a={},o={},s=n||fi(t)||"(unnamed)",u="".concat(function(e){switch(e){case 35632:return"fragment";case 35633:return"vertex";default:return"unknown type"}}(r)," shader ").concat(s),c=0;c<i.length;c++){var l=i[c];if(!(l.length<=1)){var f=l.split(":"),h=f[0],d=parseInt(f[2],10);if(isNaN(d))throw new Error("GLSL compilation error in ".concat(u,": ").concat(e));"WARNING"!==h?a[d]=l:o[d]=l}}var v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:": ",n=e.split(/\r?\n/),i=String(n.length+t-1).length;return n.map((function(e,n){var a=String(n+t),o=a.length;return vi(a,i-o)+r+e}))}(t);return{shaderName:u,errors:di(a,v),warnings:di(o,v)}}function di(e,t){for(var r="",n=0;n<t.length;n++){var i=t[n];if((e[n+3]||e[n+2]||e[n+1])&&(r+="".concat(i,"\n"),e[n+1])){var a=e[n+1],o=a.split(":",3),s=o[0],u=parseInt(o[1],10)||0,c=a.substring(o.join(":").length+1).trim();r+=vi("^^^ ".concat(s,": ").concat(c,"\n\n"),u)}}return r}function vi(e,t){for(var r="",n=0;n<t;++n)r+=" ";return"".concat(r).concat(e)}function gi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var yi,mi=function(e){et()(r,e);var t=gi(r);function r(e,n){var i;l()(this,r),H(e),Ye("string"==typeof n.source,"Shader: GLSL source code must be a JavaScript string");var a=fi(n.source,null)||n.id||ut("unnamed ".concat(r.getTypeName(n.shaderType)));return(i=t.call(this,e,{id:a})).shaderType=n.shaderType,i.source=n.source,i.initialize(n),i}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Shader"}}],[{key:"getTypeName",value:function(e){switch(e){case 35633:return"vertex-shader";case 35632:return"fragment-shader";default:return Ye(!1),"unknown"}}}]),h()(r,[{key:"initialize",value:function(e){var t=e.source,r=fi(t,null);r&&(this.id=ut(r)),this._compile(t)}},{key:"getParameter",value:function(e){return this.gl.getShaderParameter(this.handle,e)}},{key:"toString",value:function(){return"".concat(r.getTypeName(this.shaderType),":").concat(this.id)}},{key:"getName",value:function(){return fi(this.source)||"unnamed-shader"}},{key:"getSource",value:function(){return this.gl.getShaderSource(this.handle)}},{key:"getTranslatedSource",value:function(){var e=this.gl.getExtension("WEBGL_debug_shaders");return e?e.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}},{key:"_compile",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.source;e.startsWith("#version ")||(e="#version 100\n".concat(e)),this.source=e,this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle);var t=this.getParameter(35713);if(!t){var r=this.gl.getShaderInfoLog(this.handle),n=hi(r,this.source,this.shaderType,this.id),i=n.shaderName,a=n.errors,o=n.warnings;throw U.error("GLSL compilation errors in ".concat(i,"\n").concat(a))(),U.warn("GLSL compilation warnings in ".concat(i,"\n").concat(o))(),new Error("GLSL compilation errors in ".concat(i))}}},{key:"_deleteHandle",value:function(){this.gl.deleteShader(this.handle)}},{key:"_getOptsFromHandle",value:function(){return{type:this.getParameter(35663),source:this.getSource()}}}]),r}(gt),pi=function(e){et()(r,e);var t=gi(r);function r(e,n){return l()(this,r),"string"==typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35633}))}return h()(r,[{key:Symbol.toStringTag,get:function(){return"VertexShader"}}]),h()(r,[{key:"_createHandle",value:function(){return this.gl.createShader(35633)}}]),r}(mi),bi=function(e){et()(r,e);var t=gi(r);function r(e,n){return l()(this,r),"string"==typeof n&&(n={source:n}),t.call(this,e,Object.assign({},n,{shaderType:35632}))}return h()(r,[{key:Symbol.toStringTag,get:function(){return"FragmentShader"}}]),h()(r,[{key:"_createHandle",value:function(){return this.gl.createShader(35632)}}]),r}(mi),_i=(yi={},y()(yi,5126,[5126,1,"float"]),y()(yi,35664,[5126,2,"vec2"]),y()(yi,35665,[5126,3,"vec3"]),y()(yi,35666,[5126,4,"vec4"]),y()(yi,5124,[5124,1,"int"]),y()(yi,35667,[5124,2,"ivec2"]),y()(yi,35668,[5124,3,"ivec3"]),y()(yi,35669,[5124,4,"ivec4"]),y()(yi,5125,[5125,1,"uint"]),y()(yi,36294,[5125,2,"uvec2"]),y()(yi,36295,[5125,3,"uvec3"]),y()(yi,36296,[5125,4,"uvec4"]),y()(yi,35670,[5126,1,"bool"]),y()(yi,35671,[5126,2,"bvec2"]),y()(yi,35672,[5126,3,"bvec3"]),y()(yi,35673,[5126,4,"bvec4"]),y()(yi,35674,[5126,8,"mat2"]),y()(yi,35685,[5126,8,"mat2x3"]),y()(yi,35686,[5126,8,"mat2x4"]),y()(yi,35675,[5126,12,"mat3"]),y()(yi,35687,[5126,12,"mat3x2"]),y()(yi,35688,[5126,12,"mat3x4"]),y()(yi,35676,[5126,16,"mat4"]),y()(yi,35689,[5126,16,"mat4x2"]),y()(yi,35690,[5126,16,"mat4x3"]),yi);function xi(e){switch(e){case 0:return 0;case 1:case 3:case 2:return 1;case 4:case 5:case 6:return 4;default:return Ye(!1),0}}function wi(e){var t=_i[e];if(!t)return null;var r=ce()(t,2);return{type:r[0],components:r[1]}}function Ai(e,t){switch(e){case 5120:case 5121:case 5122:case 5123:e=5126}for(var r in _i){var n=ce()(_i[r],3),i=n[0],a=n[1],o=n[2];if(i===e&&a===t)return{glType:r,name:o}}return null}var ki=function(){function e(t){l()(this,e),this.id=t.id,this.attributeInfos=[],this.attributeInfosByName={},this.attributeInfosByLocation=[],this.varyingInfos=[],this.varyingInfosByName={},Object.seal(this),this._readAttributesFromProgram(t),this._readVaryingsFromProgram(t)}return h()(e,[{key:"getAttributeInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.attributeInfosByLocation[t]:this.attributeInfosByName[e]||null}},{key:"getAttributeLocation",value:function(e){var t=this.getAttributeInfo(e);return t?t.location:-1}},{key:"getAttributeAccessor",value:function(e){var t=this.getAttributeInfo(e);return t?t.accessor:null}},{key:"getVaryingInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.varyingInfos[t]:this.varyingInfosByName[e]||null}},{key:"getVaryingIndex",value:function(e){var t=this.getVaryingInfo();return t?t.location:-1}},{key:"getVaryingAccessor",value:function(e){var t=this.getVaryingInfo();return t?t.accessor:null}},{key:"_readAttributesFromProgram",value:function(e){for(var t=e.gl,r=t.getProgramParameter(e.handle,35721),n=0;n<r;n++){var i=t.getActiveAttrib(e.handle,n),a=i.name,o=i.type,s=i.size,u=t.getAttribLocation(e.handle,a);u>=0&&this._addAttribute(u,a,o,s)}this.attributeInfos.sort((function(e,t){return e.location-t.location}))}},{key:"_readVaryingsFromProgram",value:function(e){var t=e.gl;if(G(t)){for(var r=t.getProgramParameter(e.handle,35971),n=0;n<r;n++){var i=t.getTransformFeedbackVarying(e.handle,n),a=i.name,o=i.type,s=i.size;this._addVarying(n,a,o,s)}this.varyingInfos.sort((function(e,t){return e.location-t.location}))}}},{key:"_addAttribute",value:function(e,t,r,n){var i=wi(r),a={type:i.type,size:n*i.components};this._inferProperties(e,t,a);var o={location:e,name:t,accessor:new Ot(a)};this.attributeInfos.push(o),this.attributeInfosByLocation[e]=o,this.attributeInfosByName[o.name]=o}},{key:"_inferProperties",value:function(e,t,r){/instance/i.test(t)&&(r.divisor=1)}},{key:"_addVarying",value:function(e,t,r,n){var i=wi(r),a=i.type,o=i.components,s={location:e,name:t,accessor:new Ot({type:a,size:n*o})};this.varyingInfos.push(s),this.varyingInfosByName[s.name]=s}}]),e}();function Ti(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Ei(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ei(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Ei(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Oi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Si=["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"],Pi=function(e){et()(r,e);var t=Oi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),(n=t.call(this,e,i)).stubRemovedMethods("Program","v6.0",Si),n._isCached=!1,n.initialize(i),Object.seal(Je()(n)),n._setId(i.id),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"Program"}}]),h()(r,[{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hash,r=e.vs,n=e.fs,i=e.varyings,a=e.bufferMode,o=void 0===a?35981:a;return this.hash=t||"",this.vs="string"==typeof r?new pi(this.gl,{id:"".concat(e.id,"-vs"),source:r}):r,this.fs="string"==typeof n?new bi(this.gl,{id:"".concat(e.id,"-fs"),source:n}):n,Ye(this.vs instanceof pi),Ye(this.fs instanceof bi),this.uniforms={},this._textureUniforms={},i&&i.length>0&&(W(this.gl),this.varyings=i,this.gl2.transformFeedbackVaryings(this.handle,i,o)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new ki(this),this.setProps(e)}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isCached?this:mt()(it()(r.prototype),"delete",this).call(this,e)}},{key:"setProps",value:function(e){return"uniforms"in e&&this.setUniforms(e.uniforms),this}},{key:"draw",value:function(e){var t=this,r=e.logPriority,n=e.drawMode,i=void 0===n?4:n,a=e.vertexCount,o=e.offset,s=void 0===o?0:o,u=e.start,c=e.end,l=e.isIndexed,f=void 0!==l&&l,h=e.indexType,d=void 0===h?5123:h,v=e.instanceCount,g=void 0===v?0:v,y=e.isInstanced,m=void 0===y?g>0:y,p=e.vertexArray,b=void 0===p?null:p,_=e.transformFeedback,x=e.framebuffer,w=e.parameters,A=void 0===w?{}:w,k=e.uniforms,T=e.samplers;if((k||T)&&(U.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)")(),this.setUniforms(k||{})),U.priority>=r){var E=x?x.id:"default",O="mode=".concat(ot(this.gl,i)," verts=").concat(a," ")+"instances=".concat(g," indexType=").concat(ot(this.gl,d)," ")+"isInstanced=".concat(m," isIndexed=").concat(f," ")+"Framebuffer=".concat(E);U.log(r,O)()}return Ye(b),this.gl.useProgram(this.handle),!(!this._areTexturesRenderable()||0===a||m&&0===g)&&(b.bindForDraw(a,g,(function(){if(void 0!==x&&(A=Object.assign({},A,{framebuffer:x})),_){var e=xi(i);_.begin(e)}t._bindTextures(),Me(t.gl,A,(function(){f&&m?t.gl2.drawElementsInstanced(i,a,d,s,g):f&&G(t.gl)&&!isNaN(u)&&!isNaN(c)?t.gl2.drawRangeElements(i,u,c,a,d,s):f?t.gl.drawElements(i,a,d,s):m?t.gl2.drawArraysInstanced(i,s,a,g):t.gl.drawArrays(i,s,a)})),_&&_.end()})),!0)}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in U.priority>=2&&ii(e,this.id,this._uniformSetters),this.gl.useProgram(this.handle),e){var r=e[t],n=this._uniformSetters[t];if(n){var i=r,a=!1;if(i instanceof pr&&(i=i.texture),i instanceof Xt)if(a=this.uniforms[t]!==r){void 0===n.textureIndex&&(n.textureIndex=this._textureIndexCounter++);var o=i,s=n.textureIndex;o.bind(s),i=s,this._textureUniforms[t]=o}else i=n.textureIndex;else this._textureUniforms[t]&&delete this._textureUniforms[t];(n(i)||a)&&oi(this.uniforms,t,r)}}return this}},{key:"_areTexturesRenderable",value:function(){var e=!0;for(var t in this._textureUniforms){var r=this._textureUniforms[t];r.update(),e=e&&r.loaded}return e}},{key:"_bindTextures",value:function(){for(var e in this._textureUniforms){var t=this._uniformSetters[e].textureIndex;this._textureUniforms[e].bind(t)}}},{key:"_createHandle",value:function(){return this.gl.createProgram()}},{key:"_deleteHandle",value:function(){this.gl.deleteProgram(this.handle)}},{key:"_getOptionsFromHandle",value:function(e){var t,r={},n=Ti(this.gl.getAttachedShaders(e));try{for(n.s();!(t=n.n()).done;){var i=t.value;switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:r.vs=new pi({handle:i});break;case 35632:r.fs=new bi({handle:i})}}}catch(e){n.e(e)}finally{n.f()}return r}},{key:"_getParameter",value:function(e){return this.gl.getProgramParameter(this.handle,e)}},{key:"_setId",value:function(e){if(!e){var t=this._getName();this.id=ut(t)}}},{key:"_getName",value:function(){var e=this.vs.getName()||this.fs.getName();return e=(e=e.replace(/shader/i,""))?"".concat(e,"-program"):"program"}},{key:"_compileAndLink",value:function(){var e=this.gl;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),U.time(4,"linkProgram for ".concat(this._getName()))(),e.linkProgram(this.handle),U.timeEnd(4,"linkProgram for ".concat(this._getName()))(),e.debug||U.level>0){if(!e.getProgramParameter(this.handle,35714))throw new Error("Error linking: ".concat(e.getProgramInfoLog(this.handle)));if(e.validateProgram(this.handle),!e.getProgramParameter(this.handle,35715))throw new Error("Error validating: ".concat(e.getProgramInfoLog(this.handle)))}}},{key:"_readUniformLocationsFromLinkedProgram",value:function(){var e=this.gl;this._uniformSetters={},this._uniformCount=this._getParameter(35718);for(var t=0;t<this._uniformCount;t++){var r=this.gl.getActiveUniform(this.handle,t),n=ni(r.name).name,i=e.getUniformLocation(this.handle,n);if(this._uniformSetters[n]=ri(e,i,r),r.size>1)for(var a=0;a<r.size;a++)i=e.getUniformLocation(this.handle,"".concat(n,"[").concat(a,"]")),this._uniformSetters["".concat(n,"[").concat(a,"]")]=ri(e,i,r)}this._textureIndexCounter=0}},{key:"getActiveUniforms",value:function(e,t){return this.gl2.getActiveUniforms(this.handle,e,t)}},{key:"getUniformBlockIndex",value:function(e){return this.gl2.getUniformBlockIndex(this.handle,e)}},{key:"getActiveUniformBlockParameter",value:function(e,t){return this.gl2.getActiveUniformBlockParameter(this.handle,e,t)}},{key:"uniformBlockBinding",value:function(e,t){this.gl2.uniformBlockBinding(this.handle,e,t)}}]),r}(gt);function Ii(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Li(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Li(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Li(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Ri=function(){function e(t){l()(this,e),this.gl=t,this._programCache={},this._getUniforms={},this._registeredModules={},this._hookFunctions=[],this._defaultModules=[],this._hashes={},this._hashCounter=0,this.stateHash=0,this._useCounts={}}return h()(e,null,[{key:"getDefaultProgramManager",value:function(t){return t.luma=t.luma||{},t.luma.defaultProgramManager=t.luma.defaultProgramManager||new e(t),t.luma.defaultProgramManager}}]),h()(e,[{key:"addDefaultModule",value:function(e){this._defaultModules.find((function(t){return t.name===e.name}))||this._defaultModules.push(e),this.stateHash++}},{key:"removeDefaultModule",value:function(e){var t="string"==typeof e?e:e.name;this._defaultModules=this._defaultModules.filter((function(e){return e.name!==t})),this.stateHash++}},{key:"addShaderHook",value:function(e,t){t&&(e=Object.assign(t,{hook:e})),this._hookFunctions.push(e),this.stateHash++}},{key:"get",value:function(){var e,t=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.vs,i=void 0===n?"":n,a=r.fs,o=void 0===a?"":a,s=r.defines,u=void 0===s?{}:s,c=r.inject,l=void 0===c?{}:c,f=r.varyings,h=void 0===f?[]:f,d=r.bufferMode,v=void 0===d?35981:d,g=r.transpileToGLSL100,y=void 0!==g&&g,m=this._getModuleList(r.modules),p=this._getHash(i),b=this._getHash(o),_=m.map((function(e){return t._getHash(e.name)})).sort(),x=h.map((function(e){return t._getHash(e)})),w=Object.keys(u).sort(),A=Object.keys(l).sort(),k=[],T=[],E=Ii(w);try{for(E.s();!(e=E.n()).done;){var O=e.value;k.push(this._getHash(O)),k.push(this._getHash(u[O]))}}catch(e){E.e(e)}finally{E.f()}var S,P=Ii(A);try{for(P.s();!(S=P.n()).done;){var I=S.value;T.push(this._getHash(I)),T.push(this._getHash(l[I]))}}catch(e){P.e(e)}finally{P.f()}var L="".concat(p,"/").concat(b,"D").concat(k.join("/"),"M").concat(_.join("/"),"I").concat(T.join("/"),"V").concat(x.join("/"),"H").concat(this.stateHash,"B").concat(v).concat(y?"T":"");if(!this._programCache[L]){var R=Hn(this.gl,{vs:i,fs:o,modules:m,inject:l,defines:u,hookFunctions:this._hookFunctions,transpileToGLSL100:y});this._programCache[L]=new Pi(this.gl,{hash:L,vs:R.vs,fs:R.fs,varyings:h,bufferMode:v}),this._getUniforms[L]=R.getUniforms||function(e){},this._useCounts[L]=0}return this._useCounts[L]++,this._programCache[L]}},{key:"getUniforms",value:function(e){return this._getUniforms[e.hash]||null}},{key:"release",value:function(e){var t=e.hash;this._useCounts[t]--,0===this._useCounts[t]&&(this._programCache[t].delete(),delete this._programCache[t],delete this._getUniforms[t],delete this._useCounts[t])}},{key:"_getHash",value:function(e){return void 0===this._hashes[e]&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}},{key:"_getModuleList",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Array(this._defaultModules.length+e.length),r={},n=0,i=0,a=this._defaultModules.length;i<a;++i){var o=this._defaultModules[i],s=o.name;t[n++]=o,r[s]=!0}for(var u=0,c=e.length;u<c;++u){var l=e[u],f=l.name;r[f]||(t[n++]=l,r[f]=!0)}return t.length=n,t}}]),e}(),Mi=null;function Di(e,t){var r;return new e((r=e.BYTES_PER_ELEMENT*t,(!Mi||Mi.byteLength<r)&&(Mi=new ArrayBuffer(r)),Mi),0,t)}var Fi=r(19);function ji(e){if(!e&&!Object(m.a)())return"Node";if(Object(Fi.a)(e))return"Electron";var t="undefined"!=typeof navigator?navigator:{},r=e||t.userAgent||"";if(r.indexOf("Edge")>-1)return"Edge";var n=-1!==r.indexOf("MSIE "),i=-1!==r.indexOf("Trident/");return n||i?"IE":S.b.chrome?"Chrome":S.b.safari?"Safari":S.b.mozInnerScreenX?"Firefox":"Unknown"}function Bi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Ci="elements must be GL.ELEMENT_ARRAY_BUFFER",Ni=function(e){et()(r,e);var t=Bi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,r);var a=i.id||i.program&&i.program.id;return(n=t.call(this,e,Object.assign({},i,{id:a}))).buffer=null,n.bufferValue=null,n.isDefaultArray=i.isDefaultArray||!1,n.gl2=e,n.initialize(i),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"VertexArrayObject"}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!t.constantAttributeZero||(G(e)||"Chrome"===ji())}},{key:"getDefaultArray",value:function(e){return e.luma=e.luma||{},e.luma.defaultVertexArray||(e.luma.defaultVertexArray=new r(e,{handle:null,isDefaultArray:!0})),e.luma.defaultVertexArray}},{key:"getMaxAttributes",value:function(e){return r.MAX_ATTRIBUTES=r.MAX_ATTRIBUTES||e.getParameter(34921),r.MAX_ATTRIBUTES}},{key:"setConstant",value:function(e,t,n){switch(n.constructor){case Float32Array:r._setConstantFloatArray(e,t,n);break;case Int32Array:r._setConstantIntArray(e,t,n);break;case Uint32Array:r._setConstantUintArray(e,t,n);break;default:Ye(!1)}}}]),h()(r,[{key:"delete",value:function(){return mt()(it()(r.prototype),"delete",this).call(this),this.buffer&&this.buffer.delete(),this}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.setProps(e)}},{key:"setProps",value:function(e){return this}},{key:"setElementBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return Ye(!t||34963===t.target,Ci),this.bind((function(){e.gl.bindBuffer(34963,t?t.handle:null)})),this}},{key:"setBuffer",value:function(e,t,r){if(34963===t.target)return this.setElementBuffer(t,r);var n=r.size,i=r.type,a=r.stride,o=r.offset,s=r.normalized,u=r.integer,c=r.divisor,l=this.gl,f=this.gl2;return e=Number(e),this.bind((function(){l.bindBuffer(34962,t.handle),u?(Ye(G(l)),f.vertexAttribIPointer(e,n,i,a,o)):l.vertexAttribPointer(e,n,i,s,a,o),l.enableVertexAttribArray(e),f.vertexAttribDivisor(e,c||0)})),this}},{key:"enable",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!n&&0===e&&!r.isSupported(this.gl,{constantAttributeZero:!0});return i||(e=Number(e),this.bind((function(){return n?t.gl.enableVertexAttribArray(e):t.gl.disableVertexAttribArray(e)}))),this}},{key:"getConstantBuffer",value:function(e,t){var r=this._normalizeConstantArrayValue(t),n=r.byteLength*e,i=r.length*e,a=!this.buffer;if(this.buffer=this.buffer||new Ft(this.gl,n),a=(a=a||this.buffer.reallocate(n))||!this._compareConstantArrayValues(r,this.bufferValue)){var o=Di(t.constructor,i);!function(e){for(var t=e.target,r=e.source,n=e.start,i=void 0===n?0:n,a=e.count,o=void 0===a?1:a,s=r.length,u=o*s,c=0,l=i;c<s;c++)t[l++]=r[c];for(;c<u;)c<u-c?(t.copyWithin(i+c,i,i+c),c*=2):(t.copyWithin(i+c,i,i+u-c),c=u)}({target:o,source:r,start:0,count:i}),this.buffer.subData(o),this.bufferValue=t}return this.buffer}},{key:"_normalizeConstantArrayValue",value:function(e){return Array.isArray(e)?new Float32Array(e):e}},{key:"_compareConstantArrayValues",value:function(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}},{key:"_createHandle",value:function(){return this.gl.createVertexArray()}},{key:"_deleteHandle",value:function(e){return this.gl2.deleteVertexArray(e),[this.elements]}},{key:"_bindHandle",value:function(e){this.gl2.bindVertexArray(e)}},{key:"_getParameter",value:function(e,t){var r=this,n=t.location;return Ye(Number.isFinite(n)),this.bind((function(){switch(e){case 34373:return r.gl.getVertexAttribOffset(n,e);default:return r.gl.getVertexAttrib(n,e)}}))}},{key:"MAX_ATTRIBUTES",get:function(){return r.getMaxAttributes(this.gl)}}],[{key:"_setConstantFloatArray",value:function(e,t,r){switch(r.length){case 1:e.vertexAttrib1fv(t,r);break;case 2:e.vertexAttrib2fv(t,r);break;case 3:e.vertexAttrib3fv(t,r);break;case 4:e.vertexAttrib4fv(t,r);break;default:Ye(!1)}}},{key:"_setConstantIntArray",value:function(e,t,r){switch(Ye(G(e)),r.length){case 1:e.vertexAttribI1iv(t,r);break;case 2:e.vertexAttribI2iv(t,r);break;case 3:e.vertexAttribI3iv(t,r);break;case 4:e.vertexAttribI4iv(t,r);break;default:Ye(!1)}}},{key:"_setConstantUintArray",value:function(e,t,r){switch(Ye(G(e)),r.length){case 1:e.vertexAttribI1uiv(t,r);break;case 2:e.vertexAttribI2uiv(t,r);break;case 3:e.vertexAttribI3uiv(t,r);break;case 4:e.vertexAttribI4uiv(t,r);break;default:Ye(!1)}}}]),r}(gt),Ui=/^(.+)__LOCATION_([0-9]+)$/,zi=["setBuffers","setGeneric","clearBindings","setLocations","setGenericValues","setDivisor","enable","disable"],Vi=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e);var n=r.id||r.program&&r.program.id;this.id=n,this.gl=t,this.configuration=null,this.elements=null,this.elementsAccessor=null,this.values=null,this.accessors=null,this.unused=null,this.drawParams=null,this.buffer=null,this.attributes={},this.vertexArrayObject=new Ni(t),ft(this,"VertexArray","v6.0",zi),this.initialize(r),Object.seal(this)}return h()(e,[{key:"delete",value:function(){this.buffer&&this.buffer.delete(),this.vertexArrayObject.delete()}},{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.reset(),this.configuration=null,this.bindOnUse=!1,this.setProps(e)}},{key:"reset",value:function(){this.elements=null,this.elementsAccessor=null;var e=this.vertexArrayObject.MAX_ATTRIBUTES;return this.values=new Array(e).fill(null),this.accessors=new Array(e).fill(null),this.unused={},this.drawParams=null,this}},{key:"setProps",value:function(e){return"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"attributes"in e&&this.setAttributes(e.attributes),"elements"in e&&this.setElementBuffer(e.elements),"bindOnUse"in e&&(e=e.bindOnUse),this}},{key:"clearDrawParams",value:function(){this.drawParams=null}},{key:"getDrawParams",value:function(){return this.drawParams=this.drawParams||this._updateDrawParams(),this.drawParams}},{key:"setAttributes",value:function(e){var t=this;return Object.assign(this.attributes,e),this.vertexArrayObject.bind((function(){for(var r in e){var n=e[r];t._setAttribute(r,n)}t.gl.bindBuffer(34962,null)})),this}},{key:"setElementBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.elements=e,this.elementsAccessor=t,this.clearDrawParams(),this.vertexArrayObject.setElementBuffer(e,t),this}},{key:"setBuffer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(34963===t.target)return this.setElementBuffer(t,r);var n=this._resolveLocationAndAccessor(e,t,t.accessor,r),i=n.location,a=n.accessor;return i>=0&&(this.values[i]=t,this.accessors[i]=a,this.clearDrawParams(),this.vertexArrayObject.setBuffer(i,t,a)),this}},{key:"setConstant",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this._resolveLocationAndAccessor(e,t,Object.assign({size:t.length},r)),i=n.location,a=n.accessor;return i>=0&&(t=this.vertexArrayObject._normalizeConstantArrayValue(t),this.values[i]=t,this.accessors[i]=a,this.clearDrawParams(),this.vertexArrayObject.enable(i,!1)),this}},{key:"unbindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.vertexArrayObject.setElementBuffer(null),e.buffer=e.buffer||new Ft(e.gl,{accessor:{size:4}});for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++)e.values[t]instanceof Ft&&(e.gl.disableVertexAttribArray(t),e.gl.bindBuffer(34962,e.buffer.handle),e.gl.vertexAttribPointer(t,1,5126,!1,0,0))})),this}},{key:"bindBuffers",value:function(){var e=this;return this.vertexArrayObject.bind((function(){e.elements&&e.setElementBuffer(e.elements);for(var t=0;t<e.vertexArrayObject.MAX_ATTRIBUTES;t++){var r=e.values[t];r instanceof Ft&&e.setBuffer(t,r)}})),this}},{key:"bindForDraw",value:function(e,t,r){var n,i=this;return this.vertexArrayObject.bind((function(){i._setConstantAttributes(e,t),n=r()})),n}},{key:"_resolveLocationAndAccessor",value:function(e,t,r,n){var i=this,a={location:-1,accessor:null},o=this._getAttributeIndex(e),s=o.location,u=o.name;if(!Number.isFinite(s)||s<0)return this.unused[e]=t,U.once(3,(function(){return"unused value ".concat(e," in ").concat(i.id)}))(),a;var c=this._getAttributeInfo(u||s);if(!c)return a;var l=this.accessors[s]||{},f=Ot.resolve(c.accessor,l,r,n),h=f.size,d=f.type;return Ye(Number.isFinite(h)&&Number.isFinite(d)),{location:s,accessor:f}}},{key:"_getAttributeInfo",value:function(e){return this.configuration&&this.configuration.getAttributeInfo(e)}},{key:"_getAttributeIndex",value:function(e){var t=Number(e);if(Number.isFinite(t))return{location:t};var r=Ui.exec(e),n=r?r[1]:e,i=r?Number(r[2]):0;return this.configuration?{location:this.configuration.getAttributeLocation(n)+i,name:n}:{location:-1}}},{key:"_setAttribute",value:function(e,t){if(t instanceof Ft)this.setBuffer(e,t);else if(Array.isArray(t)&&t.length&&t[0]instanceof Ft){var r=t[0],n=t[1];this.setBuffer(e,r,n)}else if(ArrayBuffer.isView(t)||Array.isArray(t)){var i=t;this.setConstant(e,i)}else{if(!(t.buffer instanceof Ft))throw new Error("VertexArray: attributes must be Buffers or constants (i.e. typed array)");var a=t;this.setBuffer(e,a.buffer,a)}}},{key:"_setConstantAttributes",value:function(e,t){var r=Math.max(0|e,0|t),n=this.values[0];ArrayBuffer.isView(n)&&this._setConstantAttributeZero(n,r);for(var i=1;i<this.vertexArrayObject.MAX_ATTRIBUTES;i++)n=this.values[i],ArrayBuffer.isView(n)&&this._setConstantAttribute(i,n)}},{key:"_setConstantAttributeZero",value:function(e,t){if(Ni.isSupported(this.gl,{constantAttributeZero:!0}))this._setConstantAttribute(0,e);else{var r=this.vertexArrayObject.getConstantBuffer(t,e);this.vertexArrayObject.setBuffer(0,r,this.accessors[0])}}},{key:"_setConstantAttribute",value:function(e,t){Ni.setConstant(this.gl,e,t)}},{key:"_updateDrawParams",value:function(){for(var e={isIndexed:!1,isInstanced:!1,indexCount:1/0,vertexCount:1/0,instanceCount:1/0},t=0;t<this.vertexArrayObject.MAX_ATTRIBUTES;t++)this._updateDrawParamsForLocation(e,t);return this.elements&&(e.elementCount=this.elements.getElementCount(this.elements.accessor),e.isIndexed=!0,e.indexType=this.elementsAccessor.type||this.elements.accessor.type,e.indexOffset=this.elementsAccessor.offset||0),e.indexCount===1/0&&(e.indexCount=0),e.vertexCount===1/0&&(e.vertexCount=0),e.instanceCount===1/0&&(e.instanceCount=0),e}},{key:"_updateDrawParamsForLocation",value:function(e,t){var r=this.values[t],n=this.accessors[t];if(r){var i=n.divisor>0;if(e.isInstanced=e.isInstanced||i,r instanceof Ft){var a=r;if(i){var o=a.getVertexCount(n);e.instanceCount=Math.min(e.instanceCount,o)}else{var s=a.getVertexCount(n);e.vertexCount=Math.min(e.vertexCount,s)}}}}},{key:"setElements",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return U.deprecated("setElements","setElementBuffer")(),this.setElementBuffer(e,t)}}]),e}();function Gi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Hi=function(e){et()(r,e);var t=Gi(r);function r(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l()(this,r),W(e),(n=t.call(this,e,i)).initialize(i),n.stubRemovedMethods("TransformFeedback","v6.0",["pause","resume"]),Object.seal(Je()(n)),n}return h()(r,[{key:Symbol.toStringTag,get:function(){return"TransformFeedback"}}],[{key:"isSupported",value:function(e){return G(e)}}]),h()(r,[{key:"initialize",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.buffers={},this.unused={},this.configuration=null,this.bindOnUse=!0,lt(this.buffers)||this.bind((function(){return e._unbindBuffers()})),this.setProps(t),this}},{key:"setProps",value:function(e){"program"in e&&(this.configuration=e.program&&e.program.configuration),"configuration"in e&&(this.configuration=e.configuration),"bindOnUse"in e&&(e=e.bindOnUse),"buffers"in e&&this.setBuffers(e.buffers)}},{key:"setBuffers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.bind((function(){for(var r in t)e.setBuffer(r,t[r])})),this}},{key:"setBuffer",value:function(e,t){var r=this,n=this._getVaryingIndex(e),i=this._getBufferParams(t),a=i.buffer,o=i.byteSize,s=i.byteOffset;return n<0?(this.unused[e]=a,U.warn((function(){return"".concat(r.id," unused varying buffer ").concat(e)}))(),this):(this.buffers[n]=t,this.bindOnUse||this._bindBuffer(n,a,s,o),this)}},{key:"begin",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.gl.bindTransformFeedback(36386,this.handle),this._bindBuffers(),this.gl.beginTransformFeedback(e),this}},{key:"end",value:function(){return this.gl.endTransformFeedback(),this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null),this}},{key:"_getBufferParams",value:function(e){var t,r,n;return e instanceof Ft==!1?(n=e.buffer,r=e.byteSize,t=e.byteOffset):n=e,void 0===t&&void 0===r||(t=t||0,r=r||n.byteLength-t),{buffer:n,byteOffset:t,byteSize:r}}},{key:"_getVaryingInfo",value:function(e){return this.configuration&&this.configuration.getVaryingInfo(e)}},{key:"_getVaryingIndex",value:function(e){if(this.configuration)return this.configuration.getVaryingInfo(e).location;var t=Number(e);return Number.isFinite(t)?t:-1}},{key:"_bindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers){var t=this._getBufferParams(this.buffers[e]),r=t.buffer,n=t.byteSize,i=t.byteOffset;this._bindBuffer(e,r,i,n)}}},{key:"_unbindBuffers",value:function(){if(this.bindOnUse)for(var e in this.buffers)this._bindBuffer(e,null)}},{key:"_bindBuffer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,i=t&&t.handle;return i&&void 0!==n?this.gl.bindBufferRange(35982,e,i,r,n):this.gl.bindBufferBase(35982,e,i),this}},{key:"_createHandle",value:function(){return this.gl.createTransformFeedback()}},{key:"_deleteHandle",value:function(){this.gl.deleteTransformFeedback(this.handle)}},{key:"_bindHandle",value:function(e){this.gl.bindTransformFeedback(36386,this.handle)}}]),r}(gt);function Wi(e,t){for(var r=t.maxElts,n=void 0===r?16:r,i=t.size,a=void 0===i?1:i,o="[",s=0;s<e.length&&s<n;++s)s>0&&(o+=",".concat(s%a==0?" ":"")),o+=Xi(e[s],t);var u=e.length>n?"...":"]";return"".concat(o).concat(u)}function Xi(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=1e-16,n=t.isInteger,i=void 0!==n&&n;if(Array.isArray(e)||ArrayBuffer.isView(e))return Wi(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)<r)return i?"0":"0.";if(i)return e.toFixed(0);if(Math.abs(e)>100&&Math.abs(e)<1e4)return e.toFixed(0);var a=e.toPrecision(2),o=a.indexOf(".0");return o===a.length-2?a.slice(0,-1):a}function qi(e,t,r,n){var i,a,o=e.gl;if(!t)return a={},y()(a,n,"null"),y()(a,"Format ","N/A"),a;var s,u,c,l="NOT PROVIDED",f=1,h=0,d=0;if(r&&(l=r.type,f=r.size,s=-1!==(l=String(l).replace("Array","")).indexOf("nt")),t instanceof Ft){var v,g,m=t,p=m.getDebugData(),b=p.data;if(u=p.changed?"*":"",c=b,h=(d=m.byteLength)/b.BYTES_PER_ELEMENT/f,r){var _=r.divisor>0;g="".concat(_?"I ":"P "," ").concat(h," (x").concat(f,"=").concat(d," bytes ").concat(ot(o,l),")")}else s=!0,g="".concat(d," bytes");return v={},y()(v,n,"".concat(u).concat(Xi(c,{size:f,isInteger:s}))),y()(v,"Format ",g),v}return c=t,f=t.length,s=-1!==(l=String(t.constructor.name).replace("Array","")).indexOf("nt"),i={},y()(i,n,"".concat(Xi(c,{size:f,isInteger:s})," (constant)")),y()(i,"Format ","".concat(f,"x").concat(l," (constant)")),i}function Qi(e,t){var r=Ai(t.type,t.size);return r?"".concat(e," (").concat(r.name,")"):e}function $i(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Yi(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Yi(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Yi(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ki(e){var t=e.header,r=void 0===t?"Uniforms":t,n=e.program,i=e.uniforms,a=e.undefinedOnly,o=void 0!==a&&a;Ye(n);var s,u=n._uniformSetters,c={},l=Object.keys(u).sort(),f=0,h=$i(l);try{for(h.s();!(s=h.n()).done;){var d=s.value;d.match(".*_.*")||d.match(".*Matrix")||Ji({table:c,header:r,uniforms:i,uniformName:d,undefinedOnly:o})&&f++}}catch(e){h.e(e)}finally{h.f()}var v,g=$i(l);try{for(g.s();!(v=g.n()).done;){var m=v.value;m.match(".*Matrix")&&Ji({table:c,header:r,uniforms:i,uniformName:m,undefinedOnly:o})&&f++}}catch(e){g.e(e)}finally{g.f()}var p,b=$i(l);try{for(b.s();!(p=b.n()).done;){var _=p.value;c[_]||Ji({table:c,header:r,uniforms:i,uniformName:_,undefinedOnly:o})&&f++}}catch(e){b.e(e)}finally{b.f()}var x=0,w={};if(!o)for(var A in i){var k=i[A];c[A]||(x++,w[A]=y()({Type:"NOT USED: ".concat(k)},r,Xi(k)))}return{table:c,count:f,unusedTable:w,unusedCount:x}}function Ji(e){var t,r=e.table,n=e.header,i=e.uniforms,a=e.uniformName,o=e.undefinedOnly,s=i[a],u=function(e){return null!=e}(s);return(!o||!u)&&(r[a]=(t={},y()(t,n,u?Xi(s):"N/A"),y()(t,"Uniform Type",u?s:"NOT PROVIDED"),t),!0)}function Zi(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return ea(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ea(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function ea(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ta(e){var t=e.accessor,r=Ai(t.type,t.size);return r?"".concat(r.name," ").concat(e.name):e.name}function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function na(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ra(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ia={POSITION:"positions",NORMAL:"normals",COLOR_0:"colors",TEXCOORD_0:"texCoords",TEXCOORD_1:"texCoords1",TEXCOORD_2:"texCoords2"};function aa(e,t){var r=(t||{}).attributeMap,n=void 0===r?ia:r;return n&&n[e]||e}function oa(e,t){var r;switch(e){case"texCoords":case"texCoord1":case"texCoord2":case"texCoord3":r="uvs";break;case"vertices":case"positions":case"normals":case"pickingColors":r="vectors"}switch(r){case"vectors":t.size=t.size||3;break;case"uvs":t.size=t.size||2}Ye(Number.isFinite(t.size),"attribute ".concat(e," needs size"))}var sa=function(){},ua={},ca=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e);var n=r.id,i=void 0===n?ut("model"):n;Ye(V(t)),this.id=i,this.gl=t,this.id=r.id||ut("Model"),this.lastLogTime=0,this.animated=!1,this.initialize(r)}return h()(e,[{key:"initialize",value:function(e){this.props={},this.programManager=e.programManager||Ri.getDefaultProgramManager(this.gl),this._programManagerState=-1,this._managedProgram=!1;var t=e.program,r=void 0===t?null:t,n=e.vs,i=e.fs,a=e.modules,o=e.defines,s=e.inject,u=e.varyings,c=e.bufferMode,l=e.transpileToGLSL100;this.programProps={program:r,vs:n,fs:i,modules:a,defines:o,inject:s,varyings:u,bufferMode:c,transpileToGLSL100:l},this.program=null,this.vertexArray=null,this._programDirty=!0,this.userData={},this.needsRedraw=!0,this._attributes={},this.attributes={},this.uniforms={},this.pickable=!0,this._checkProgram(),this.setUniforms(Object.assign({},this.getModuleUniforms(e.moduleSettings))),this.drawMode=void 0!==e.drawMode?e.drawMode:4,this.vertexCount=e.vertexCount||0,this.geometryBuffers={},this.isInstanced=e.isInstanced||e.instanced||e.instanceCount>0,this._setModelProps(e),this.geometry={},Ye(void 0!==this.drawMode&&Number.isFinite(this.vertexCount),"Model needs drawMode and vertexCount")}},{key:"setProps",value:function(e){this._setModelProps(e)}},{key:"delete",value:function(){for(var e in this._attributes)this._attributes[e]!==this.attributes[e]&&this._attributes[e].delete();this._managedProgram&&(this.programManager.release(this.program),this._managedProgram=!1),this.vertexArray.delete(),this._deleteGeometryBuffers()}},{key:"getDrawMode",value:function(){return this.drawMode}},{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getInstanceCount",value:function(){return this.instanceCount}},{key:"getAttributes",value:function(){return this.attributes}},{key:"getProgram",value:function(){return this.program}},{key:"setProgram",value:function(e){var t=e.program,r=e.vs,n=e.fs,i=e.modules,a=e.defines,o=e.inject,s=e.varyings,u=e.bufferMode,c=e.transpileToGLSL100;this.programProps={program:t,vs:r,fs:n,modules:i,defines:a,inject:o,varyings:s,bufferMode:u,transpileToGLSL100:c},this._programDirty=!0}},{key:"getUniforms",value:function(){return this.uniforms}},{key:"setDrawMode",value:function(e){return this.drawMode=e,this}},{key:"setVertexCount",value:function(e){return Ye(Number.isFinite(e)),this.vertexCount=e,this}},{key:"setInstanceCount",value:function(e){return Ye(Number.isFinite(e)),this.instanceCount=e,this}},{key:"setGeometry",value:function(e){return this.drawMode=e.drawMode,this.vertexCount=e.getVertexCount(),this._deleteGeometryBuffers(),this.geometryBuffers=function(e,t,r){var n={},i=t.indices;for(var a in t.attributes){var o=t.attributes[a],s=aa(a,r);if("indices"===a)i=o;else if(o.constant)n[s]=o.value;else{var u=o.value,c=na({},o);delete c.value,n[s]=[new Ft(e,u),c],oa(a,c)}}if(i){var l=i.value||i;Ye(l instanceof Uint16Array||l instanceof Uint32Array,'attribute array for "indices" must be of integer type');var f={size:1,isIndexed:void 0===i.isIndexed||i.isIndexed};n.indices=[new Ft(e,{data:l,target:34963}),f]}return n}(this.gl,e),this.vertexArray.setAttributes(this.geometryBuffers),this}},{key:"setAttributes",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(lt(e))return this;var t={};for(var r in e){var n=e[r];t[r]=n.getValue?n.getValue():n}return this.vertexArray.setAttributes(t),this}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.assign(this.uniforms,e),this}},{key:"getModuleUniforms",value:function(e){this._checkProgram();var t=this.programManager.getUniforms(this.program);return t?t(e):{}}},{key:"updateModuleSettings",value:function(e){var t=this.getModuleUniforms(e||{});return this.setUniforms(t)}},{key:"clear",value:function(e){return nr(this.program.gl,e),this}},{key:"draw",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._checkProgram();var t,r=e.moduleSettings,n=void 0===r?null:r,i=e.framebuffer,a=e.uniforms,o=void 0===a?{}:a,s=e.attributes,u=void 0===s?{}:s,c=e.transformFeedback,l=void 0===c?this.transformFeedback:c,f=e.parameters,h=void 0===f?{}:f,d=e.vertexArray,v=void 0===d?this.vertexArray:d;this.setAttributes(u),this.updateModuleSettings(n),this.setUniforms(o),U.priority>=2&&(t=this._logDrawCallStart(2));var g=this.vertexArray.getDrawParams(),y=this.props,m=y.isIndexed,p=void 0===m?g.isIndexed:m,b=y.indexType,_=void 0===b?g.indexType:b,x=y.indexOffset,w=void 0===x?g.indexOffset:x,A=y.vertexArrayInstanced,k=void 0===A?g.isInstanced:A;k&&!this.isInstanced&&U.warn("Found instanced attributes on non-instanced model",this.id)();var T=this.isInstanced,E=this.instanceCount,O=this.props,S=O.onBeforeRender,P=void 0===S?sa:S,I=O.onAfterRender,L=void 0===I?sa:I;P(),this.program.setUniforms(this.uniforms);var R=this.program.draw(Object.assign(ua,e,{logPriority:t,uniforms:null,framebuffer:i,parameters:h,drawMode:this.getDrawMode(),vertexCount:this.getVertexCount(),vertexArray:v,transformFeedback:l,isIndexed:p,indexType:_,isInstanced:T,instanceCount:E,offset:p?w:0}));return L(),U.priority>=2&&this._logDrawCallEnd(t,v,i),R}},{key:"transform",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.discard,r=void 0===t||t,n=e.feedbackBuffers,i=e.unbindModels,a=void 0===i?[]:i,o=e.parameters;n&&this._setFeedbackBuffers(n),r&&(o=Object.assign({},o,y()({},35977,r))),a.forEach((function(e){return e.vertexArray.unbindBuffers()}));try{this.draw(Object.assign({},e,{parameters:o}))}finally{a.forEach((function(e){return e.vertexArray.bindBuffers()}))}return this}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return U.warn("Model.render() is deprecated. Use Model.setUniforms() and Model.draw()")(),this.setUniforms(e).draw()}},{key:"_setModelProps",value:function(e){Object.assign(this.props,e),"uniforms"in e&&this.setUniforms(e.uniforms),"pickable"in e&&(this.pickable=e.pickable),"instanceCount"in e&&(this.instanceCount=e.instanceCount),"geometry"in e&&this.setGeometry(e.geometry),"attributes"in e&&this.setAttributes(e.attributes),"_feedbackBuffers"in e&&this._setFeedbackBuffers(e._feedbackBuffers)}},{key:"_checkProgram",value:function(){if(this._programDirty||this.programManager.stateHash!==this._programManagerState){var e=this.programProps.program;if(e)this._managedProgram=!1;else{var t=this.programProps,r=t.vs,n=t.fs,i=t.modules,a=t.inject,o=t.defines,s=t.varyings,u=t.bufferMode,c=t.transpileToGLSL100;e=this.programManager.get({vs:r,fs:n,modules:i,inject:a,defines:o,varyings:s,bufferMode:u,transpileToGLSL100:c}),this.program&&this._managedProgram&&this.programManager.release(this.program),this._programManagerState=this.programManager.stateHash,this._managedProgram=!0}Ye(e instanceof Pi,"Model needs a program"),this._programDirty=!1,e!==this.program&&(this.program=e,this.vertexArray?this.vertexArray.setProps({program:this.program,attributes:this.vertexArray.attributes}):this.vertexArray=new Vi(this.gl,{program:this.program}),this.setUniforms(Object.assign({},this.getModuleUniforms())))}}},{key:"_deleteGeometryBuffers",value:function(){for(var e in this.geometryBuffers){var t=this.geometryBuffers[e][0]||this.geometryBuffers[e];t instanceof Ft&&t.delete()}}},{key:"_setAnimationProps",value:function(e){this.animated&&Ye(e,"Model.draw(): animated uniforms but no animationProps")}},{key:"_setFeedbackBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(lt(e))return this;var t=this.program.gl;return this.transformFeedback=this.transformFeedback||new Hi(t,{program:this.program}),this.transformFeedback.setBuffers(e),this}},{key:"_logDrawCallStart",value:function(e){var t=e>3?0:1e4;if(!(Date.now()-this.lastLogTime<t))return this.lastLogTime=Date.now(),U.group(2,">>> DRAWING MODEL ".concat(this.id),{collapsed:U.level<=2})(),e}},{key:"_logDrawCallEnd",value:function(e,t,r,n){if(void 0!==e){var i=function(e){var t=e.vertexArray,r=e.header,n=void 0===r?"Attributes":r;if(!t.configuration)return{};var i={};t.elements&&(i.ELEMENT_ARRAY_BUFFER=qi(t,t.elements,null,n));var a=t.values;for(var o in a){var s=t._getAttributeInfo(o);if(s){var u="".concat(o,": ").concat(s.name),c=t.accessors[s.location];c&&(u="".concat(o,": ").concat(Qi(s.name,c))),i[u]=qi(t,a[o],c,n)}}return i}({vertexArray:t,header:"".concat(this.id," attributes"),attributes:this._attributes}),a=Ki({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,r)}),o=a.table,s=a.unusedTable,u=a.unusedCount,c=Ki({header:"".concat(this.id," uniforms"),program:this.program,uniforms:Object.assign({},this.program.uniforms,r),undefinedOnly:!0}),l=c.table;c.count>0&&U.log("MISSING UNIFORMS",Object.keys(l))(),u>0&&U.log("UNUSED UNIFORMS",Object.keys(s))();var f=function(e){var t,r={},n="Accessors for ".concat(e.id),i=Zi(e.attributeInfos);try{for(i.s();!(t=i.n()).done;){var a=t.value;if(a){var o=ta(a);r["in ".concat(o)]=y()({},n,JSON.stringify(a.accessor))}}}catch(e){i.e(e)}finally{i.f()}var s,u=Zi(e.varyingInfos);try{for(u.s();!(s=u.n()).done;){var c=s.value;if(c){var l=ta(c);r["out ".concat(l)]=y()({},n,JSON.stringify(c.accessor))}}}catch(e){u.e(e)}finally{u.f()}return r}(this.vertexArray.configuration);U.table(e,i)(),U.table(e,o)(),U.table(e+1,f)(),n&&n.log({logLevel:2,message:"Rendered to ".concat(n.id)}),U.groupEnd(2,">>> DRAWING MODEL ".concat(this.id))()}}}]),e}(),la="void main() {gl_FragColor = vec4(0);}",fa="out vec4 transform_output;\nvoid main() {\n transform_output = vec4(0);\n}",ha="#version 300 es\n".concat(fa);function da(e,t){t=Array.isArray(t)?t:[t];var r=e.replace(/^\s+/,"").split(/\s+/),n=ce()(r,3),i=n[0],a=n[1],o=n[2];return t.includes(i)&&a&&o?{qualifier:i,type:a,name:o.split(";")[0]}:null}function va(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.version,r=void 0===t?100:t,n=e.input,i=e.inputType,a=e.output;if(!n)return 300===r?ha:r>300?"#version ".concat(r,"\n").concat(fa):la;var o=ya(n,i);return r>=300?"#version ".concat(r," ").concat(300===r?"es":"","\nin ").concat(i," ").concat(n,";\nout vec4 ").concat(a,";\nvoid main() {\n ").concat(a," = ").concat(o,";\n}"):"varying ".concat(i," ").concat(n,";\nvoid main() {\n gl_FragColor = ").concat(o,";\n}")}function ga(e){switch(e){case"float":return 1;case"vec2":return 2;case"vec3":return 3;case"vec4":return 4;default:return en(!1),null}}function ya(e,t){switch(t){case"float":return"vec4(".concat(e,", 0.0, 0.0, 1.0)");case"vec2":return"vec4(".concat(e,", 0.0, 1.0)");case"vec3":return"vec4(".concat(e,", 1.0)");case"vec4":return e;default:return en(!1),null}}function ma(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return pa(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return pa(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function pa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var ba=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.currentIndex=0,this.feedbackMap={},this.varyings=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}return h()(e,[{key:"setupResources",value:function(e){var t,r=ma(this.bindings);try{for(r.s();!(t=r.n()).done;){var n=t.value;this._setupTransformFeedback(n,e)}}catch(e){r.e(e)}finally{r.f()}}},{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.varyings;return t.length>0&&(e=Object.assign({},e,{varyings:t})),e}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceBuffers,n=t.transformFeedback,i=Object.assign({},r,e.attributes);return{attributes:i,transformFeedback:n}}},{key:"swap",value:function(){return!!this.feedbackMap&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e)}},{key:"getBuffer",value:function(e){var t=this.bindings[this.currentIndex].feedbackBuffers,r=e?t[e]:null;return r?r instanceof Ft?r:r.buffer:null}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.varyingName,r=this.getBuffer(t);return r?r.getData():null}},{key:"delete",value:function(){for(var e in this.resources)this.resources[e].delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupBuffers(e),this.varyings=e.varyings||Object.keys(this.bindings[this.currentIndex].feedbackBuffers),this.varyings.length>0&&Ye(G(this.gl))}},{key:"_getFeedbackBuffers",value:function(e){var t=e.sourceBuffers,r=void 0===t?{}:t,n={};if(this.bindings[this.currentIndex]&&Object.assign(n,this.bindings[this.currentIndex].feedbackBuffers),this.feedbackMap)for(var i in this.feedbackMap){var a=this.feedbackMap[i];i in r&&(n[a]=i)}for(var o in Object.assign(n,e.feedbackBuffers),n){var s=n[o];if("string"==typeof s){var u=r[s],c=u.byteLength,l=u.usage,f=u.accessor;n[o]=this._createNewBuffer(o,{byteLength:c,usage:l,accessor:f})}}return n}},{key:"_setupBuffers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,r=void 0===t?null:t;Object.assign(this.feedbackMap,e.feedbackMap);var n=this._getFeedbackBuffers(e);this._updateBindings({sourceBuffers:r,feedbackBuffers:n})}},{key:"_setupTransformFeedback",value:function(e,t){var r=t.model.program;e.transformFeedback=new Hi(this.gl,{program:r,buffers:e.feedbackBuffers})}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this.feedbackMap){var t=this._swapBuffers(this.bindings[this.currentIndex]),r=t.sourceBuffers,n=t.feedbackBuffers,i=this._getNextIndex();this.bindings[i]=this._updateBinding(this.bindings[i],{sourceBuffers:r,feedbackBuffers:n})}}},{key:"_updateBinding",value:function(e,t){return e?(Object.assign(e.sourceBuffers,t.sourceBuffers),Object.assign(e.feedbackBuffers,t.feedbackBuffers),e.transformFeedback&&e.transformFeedback.setBuffers(e.feedbackBuffers),e):{sourceBuffers:Object.assign({},t.sourceBuffers),feedbackBuffers:Object.assign({},t.feedbackBuffers)}}},{key:"_swapBuffers",value:function(e){if(!this.feedbackMap)return null;var t=Object.assign({},e.sourceBuffers),r=Object.assign({},e.feedbackBuffers);for(var n in this.feedbackMap){var i=this.feedbackMap[n];t[n]=e.feedbackBuffers[i],r[i]=e.sourceBuffers[n],Ye(r[i]instanceof Ft)}return{sourceBuffers:t,feedbackBuffers:r}}},{key:"_createNewBuffer",value:function(e,t){var r=new Ft(this.gl,t);return this.resources[e]&&this.resources[e].delete(),this.resources[e]=r,r}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}}]),e}();function _a(e){var t=100,r=e.match(/[^\s]+/g);if(r.length>=2&&"#version"===r[0]){var n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}var xa,wa={name:"transform",vs:"attribute float transform_elementID;\n\n// returns half of pixel size, used to move the pixel position to center of the pixel.\nvec2 transform_getPixelSizeHalf(vec2 size) {\n return vec2(1.) / (2. * size);\n}\n\n// returns current elements pixel indeces [x, y],\n// where x ranges in [0 to texSize-1] and y ranges in [0 to texSize-1]\nvec2 transform_getPixelIndices(vec2 texSize, vec2 pixelSizeHalf) {\n // Add safe offset (half of pixel height) before doing floor\n float yIndex = floor((transform_elementID / texSize[0]) + pixelSizeHalf[1]);\n float xIndex = transform_elementID - (yIndex * texSize[0]);\n return vec2(xIndex, yIndex);\n}\n\n// returns current elementID's texture co-ordianate\nvec2 transform_getTexCoord(vec2 size) {\n vec2 pixelSizeHalf = transform_getPixelSizeHalf(size);\n vec2 indices = transform_getPixelIndices(size, pixelSizeHalf);\n vec2 coord = indices / size + pixelSizeHalf;\n return coord;\n}\n\n// returns current elementID's position\nvec2 transform_getPos(vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n // Change from [0 1] range to [-1 1]\n vec2 pos = (texCoord * (2.0, 2.0)) - (1., 1.);\n return pos;\n}\n\n// returns current elementID's pixel value\nvec4 transform_getInput(sampler2D texSampler, vec2 size) {\n vec2 texCoord = transform_getTexCoord(size);\n vec4 textureColor = texture2D(texSampler, texCoord);\n return textureColor;\n}\n",fs:null};function Aa(e){var t=e.vs,r=e.sourceTextureMap,n=e.targetTextureVarying,i=e.targetTexture,a=Object.keys(r).length,o=null,s={},u=t,c={};if(a>0||n){var l=u.split("\n"),f=l.slice();if(l.forEach((function(e,t,i){if(a>0){var u=function(e,t){var r={},n=function(e){return da(e,["attribute","in"])}(e);if(!n)return null;var i=n.type,a=n.name;if(a&&t[a]){var o="// ".concat(e," => Replaced by Transform with a sampler"),s=function(e){var t="".concat("transform_uSampler_").concat(e),r="".concat("transform_uSize_").concat(e),n=" uniform sampler2D ".concat(t,";\n uniform vec2 ").concat(r,";");return{samplerName:t,sizeName:r,uniformDeclerations:n}}(a),u=s.samplerName,c=s.sizeName,l=s.uniformDeclerations,f=function(e){switch(e){case"float":return"x";case"vec2":return"xy";case"vec3":return"xyz";case"vec4":return"xyzw";default:return en(!1),null}}(i),h=" ".concat(i," ").concat(a," = transform_getInput(").concat(u,", ").concat(c,").").concat(f,";\n");return r[u]=a,{updatedLine:o,inject:{"vs:#decl":l,"vs:#main-start":h},samplerTextureMap:r}}return null}(e,r);if(u){var l=u.updatedLine,h=u.inject;f[t]=l,c=kn([c,h]),Object.assign(s,u.samplerTextureMap),a--}}n&&!o&&(o=function(e,t){var r=da(e,["varying","out"]);if(!r)return null;return r.name===t?r.type:null}(e,n))})),n){Ye(i);var h="".concat("transform_uSize_").concat(n),d="uniform vec2 ".concat(h,";\n"),v=" vec2 ".concat("transform_position"," = transform_getPos(").concat(h,");\n gl_Position = vec4(").concat("transform_position",", 0, 1.);\n");c=kn([c,{"vs:#decl":d,"vs:#main-start":v}])}u=f.join("\n")}return{vs:u,targetTextureType:o,inject:c,samplerTextureMap:s}}function ka(e){var t,r,n=e.sourceTextureMap,i=e.targetTextureVarying,a=e.targetTexture,o={};for(var s in i&&(t=a.width,r=a.height,o["".concat("transform_uSize_").concat(i)]=[t,r]),n){var u=n[s];t=u.width,r=u.height,o["".concat("transform_uSize_").concat(s)]=[t,r]}return o}var Ta=(xa={},y()(xa,10241,9728),y()(xa,10240,9728),y()(xa,10242,33071),y()(xa,10243,33071),xa),Ea=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.id=this.currentIndex=0,this._swapTexture=null,this.targetTextureVarying=null,this.targetTextureType=null,this.samplerTextureMap=null,this.bindings=[],this.resources={},this._initialize(r),Object.seal(this)}return h()(e,[{key:"updateModelProps",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._processVertexShader(e);return Object.assign({},e,t)}},{key:"getDrawOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceBuffers,n=t.sourceTextures,i=t.framebuffer,a=t.targetTexture,o=Object.assign({},r,e.attributes),s=Object.assign({},e.uniforms),u=Object.assign({},e.parameters),c=e.discard;if(this.hasSourceTextures||this.hasTargetTexture){for(var l in o.transform_elementID=this.elementIDBuffer,this.samplerTextureMap){var f=this.samplerTextureMap[l];s[l]=n[f]}this._setSourceTextureParameters();var h=ka({sourceTextureMap:n,targetTextureVarying:this.targetTextureVarying,targetTexture:a});Object.assign(s,h)}return this.hasTargetTexture&&(c=!1,u.viewport=[0,0,i.width,i.height]),{attributes:o,framebuffer:i,uniforms:s,discard:c,parameters:u}}},{key:"swap",value:function(){return!!this._swapTexture&&(this.currentIndex=this._getNextIndex(),!0)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._setupTextures(e)}},{key:"getTargetTexture",value:function(){return this.bindings[this.currentIndex].targetTexture}},{key:"getData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.packed,r=void 0!==t&&t,n=this.bindings[this.currentIndex].framebuffer,i=fr(n);if(!r)return i;for(var a=i.constructor,o=ga(this.targetTextureType),s=new a(i.length*o/4),u=0,c=0;c<i.length;c+=4)for(var l=0;l<o;l++)s[u++]=i[c+l];return s}},{key:"getFramebuffer",value:function(){return this.bindings[this.currentIndex].framebuffer}},{key:"delete",value:function(){this.ownTexture&&this.ownTexture.delete(),this.elementIDBuffer&&this.elementIDBuffer.delete()}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e._targetTextureVarying,r=e._swapTexture;this._swapTexture=r,this.targetTextureVarying=t,this.hasTargetTexture=t,this._setupTextures(e)}},{key:"_createTargetTexture",value:function(e){var t=e.sourceTextures,r=e.textureOrReference;if(r instanceof Kt)return r;var n=t[r];return n?(this._targetRefTexName=r,this._createNewTexture(n)):null}},{key:"_setupTextures",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.sourceBuffers,r=e._sourceTextures,n=void 0===r?{}:r,i=e._targetTexture,a=this._createTargetTexture({sourceTextures:n,textureOrReference:i});this.hasSourceTextures=this.hasSourceTextures||n&&Object.keys(n).length>0,this._updateBindings({sourceBuffers:t,sourceTextures:n,targetTexture:a}),"elementCount"in e&&this._updateElementIDBuffer(e.elementCount)}},{key:"_updateElementIDBuffer",value:function(e){if(!("number"!=typeof e||this.elementCount>=e)){var t=new Float32Array(e);t.forEach((function(e,t,r){r[t]=t})),this.elementIDBuffer?this.elementIDBuffer.setData({data:t}):this.elementIDBuffer=new Ft(this.gl,{data:t,accessor:{size:1}}),this.elementCount=e}}},{key:"_updateBindings",value:function(e){if(this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e),this._swapTexture){var t=this._swapTextures(this.bindings[this.currentIndex]),r=t.sourceTextures,n=t.targetTexture,i=this._getNextIndex();this.bindings[i]=this._updateBinding(this.bindings[i],{sourceTextures:r,targetTexture:n})}}},{key:"_updateBinding",value:function(e,t){var r=t.sourceBuffers,n=t.sourceTextures,i=t.targetTexture;if(e||(e={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(e.sourceTextures,n),Object.assign(e.sourceBuffers,r),i){e.targetTexture=i;var a=i.width,o=i.height,s=e.framebuffer;s?(s.update({attachments:y()({},36064,i),resizeAttachments:!1}),s.resize({width:a,height:o})):e.framebuffer=new pr(this.gl,{id:"transform-framebuffer",width:a,height:o,attachments:y()({},36064,i)})}return e}},{key:"_setSourceTextureParameters",value:function(){var e=this.currentIndex,t=this.bindings[e].sourceTextures;for(var r in t)t[r].setParameters(Ta)}},{key:"_swapTextures",value:function(e){if(!this._swapTexture)return null;var t=Object.assign({},e.sourceTextures);return t[this._swapTexture]=e.targetTexture,{sourceTextures:t,targetTexture:e.sourceTextures[this._swapTexture]}}},{key:"_createNewTexture",value:function(e){var t,r=function(e,t){Ye(e instanceof Kt||e instanceof ur||e instanceof lr);var r=e.constructor,n=e.gl,i=e.width,a=e.height,o=e.format,s=e.type,u=e.dataFormat,c=e.border,l=e.mipmaps;return new r(n,Object.assign({width:i,height:a,format:o,type:s,dataFormat:u,border:c,mipmaps:l},t))}(e,{parameters:(t={},y()(t,10241,9728),y()(t,10240,9728),y()(t,10242,33071),y()(t,10243,33071),t),pixelStore:y()({},37440,!1)});return this.ownTexture&&this.ownTexture.delete(),this.ownTexture=r,r}},{key:"_getNextIndex",value:function(){return(this.currentIndex+1)%2}},{key:"_processVertexShader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.bindings[this.currentIndex],r=t.sourceTextures,n=t.targetTexture,i=Aa({vs:e.vs,sourceTextureMap:r,targetTextureVarying:this.targetTextureVarying,targetTexture:n}),a=i.vs,o=i.uniforms,s=i.targetTextureType,u=i.inject,c=i.samplerTextureMap,l=kn([e.inject||{},u]);this.targetTextureType=s,this.samplerTextureMap=c;var f=e._fs||va({version:_a(a),input:this.targetTextureVarying,inputType:s,output:"transform_output"}),h=this.hasSourceTextures||this.targetTextureVarying?[wa].concat(e.modules||[]):e.modules;return{vs:a,fs:f,modules:h,uniforms:o,inject:l}}}]),e}();function Oa(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Sa(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sa(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function Sa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Pa=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};l()(this,e),this.gl=t,this.model=null,this.elementCount=0,this.bufferTransform=null,this.textureTransform=null,this.elementIDBuffer=null,this._initialize(r),Object.seal(this)}return h()(e,null,[{key:"isSupported",value:function(e){return G(e)}}]),h()(e,[{key:"delete",value:function(){var e=this.model,t=this.bufferTransform,r=this.textureTransform;e&&e.delete(),t&&t.delete(),r&&r.delete()}},{key:"run",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.clearRenderTarget,r=void 0===t||t,n=this._updateDrawOptions(e);r&&n.framebuffer&&n.framebuffer.clear({color:!0}),this.model.transform(n)}},{key:"swap",value:function(){var e,t=!1,r=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(r.s();!(e=r.n()).done;){var n=e.value;t=t||n.swap()}}catch(e){r.e(e)}finally{r.f()}Ye(t,"Nothing to swap")}},{key:"getBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.bufferTransform&&this.bufferTransform.getBuffer(e)}},{key:"getData",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=[this.bufferTransform,this.textureTransform].filter(Boolean),n=Oa(r);try{for(n.s();!(e=n.n()).done;){var i=e.value,a=i.getData(t);if(a)return a}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"getFramebuffer",value:function(){return this.textureTransform&&this.textureTransform.getFramebuffer()}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"elementCount"in e&&this.model.setVertexCount(e.elementCount);var t,r=[this.bufferTransform,this.textureTransform].filter(Boolean),n=Oa(r);try{for(n.s();!(t=n.n()).done;){var i=t.value;i.update(e)}}catch(e){n.e(e)}finally{n.f()}}},{key:"_initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.gl;this._buildResourceTransforms(t,e),e=this._updateModelProps(e),this.model=new ca(t,Object.assign({},e,{fs:e.fs||va({version:_a(e.vs)}),id:e.id||"transform-model",drawMode:e.drawMode||0,vertexCount:e.elementCount})),this.bufferTransform&&this.bufferTransform.setupResources({model:this.model})}},{key:"_updateModelProps",value:function(e){var t,r=Object.assign({},e),n=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(n.s();!(t=n.n()).done;){r=t.value.updateModelProps(r)}}catch(e){n.e(e)}finally{n.f()}return r}},{key:"_buildResourceTransforms",value:function(e,t){(function(e){if(!lt(e.feedbackBuffers)||!lt(e.feedbackMap)||e.varyings&&e.varyings.length>0)return!0;return!1})(t)&&(this.bufferTransform=new ba(e,t)),function(e){if(!lt(e._sourceTextures)||e._targetTexture||e._targetTextureVarying)return!0;return!1}(t)&&(this.textureTransform=new Ea(e,t)),Ye(this.bufferTransform||this.textureTransform,"must provide source/feedback buffers or source/target textures")}},{key:"_updateDrawOptions",value:function(e){var t,r=Object.assign({},e),n=Oa([this.bufferTransform,this.textureTransform].filter(Boolean));try{for(n.s();!(t=n.n()).done;){var i=t.value;r=Object.assign(r,i.getDrawOptions(r))}}catch(e){n.e(e)}finally{n.f()}return r}}]),e}();function Ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var La={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Ra=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,e);var r=t.id,n=void 0===r?ut("geometry"):r,i=t.drawMode,a=void 0===i?La.TRIANGLES:i,o=t.attributes,s=void 0===o?{}:o,u=t.indices,c=void 0===u?null:u,f=t.vertexCount,h=void 0===f?null:f;this.id=n,this.drawMode=0|a,this.attributes={},this.userData={},this._setAttributes(s,c),this.vertexCount=h||this._calculateVertexCount(this.attributes,this.indices)}return h()(e,null,[{key:"DRAW_MODE",get:function(){return La}}]),h()(e,[{key:"getVertexCount",value:function(){return this.vertexCount}},{key:"getAttributes",value:function(){return this.indices?function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ia(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ia(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({indices:this.indices},this.attributes):this.attributes}},{key:"_print",value:function(e){return"Geometry ".concat(this.id," attribute ").concat(e)}},{key:"_setAttributes",value:function(e,t){for(var r in t&&(this.indices=ArrayBuffer.isView(t)?{value:t,size:1}:t),e){var n=e[r];n=ArrayBuffer.isView(n)?{value:n}:n,Ye(ArrayBuffer.isView(n.value),"".concat(this._print(r),": must be typed array or object with value as typed array")),"POSITION"!==r&&"positions"!==r||n.size||(n.size=3),"indices"===r?(Ye(!this.indices),this.indices=n):this.attributes[r]=n}return this.indices&&void 0!==this.indices.isIndexed&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this}},{key:"_calculateVertexCount",value:function(e,t){if(t)return t.value.length;var r=1/0;for(var n in e){var i=e[n],a=i.value,o=i.size;!i.constant&&a&&o>=1&&(r=Math.min(r,a.length/o))}return Ye(Number.isFinite(r)),r}},{key:"mode",get:function(){return this.drawMode}}]),e}();function Ma(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Da(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ma(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ma(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Fa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ja={x:[2,0,1],y:[0,1,2],z:[1,2,0]},Ba=function(e){et()(r,e);var t=Fa(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("truncated-code-geometry"):n,a=Ca(e),o=a.indices,s=a.attributes;return t.call(this,Da(Da({},e),{},{id:i,indices:o,attributes:Da(Da({},s),e.attributes)}))}return r}(Ra);function Ca(e){for(var t=e.bottomRadius,r=void 0===t?0:t,n=e.topRadius,i=void 0===n?0:n,a=e.height,o=void 0===a?1:a,s=e.nradial,u=void 0===s?10:s,c=e.nvertical,l=void 0===c?10:c,f=e.verticalAxis,h=void 0===f?"y":f,d=e.topCap,v=void 0!==d&&d,g=e.bottomCap,y=void 0!==g&&g,m=(v?2:0)+(y?2:0),p=(u+1)*(l+1+m),b=Math.atan2(r-i,o),_=Math.sin,x=Math.cos,w=Math.PI,A=x(b),k=_(b),T=v?-2:0,E=l+(y?2:0),O=u+1,S=new Uint16Array(u*(l+m)*6),P=ja[h],I=new Float32Array(3*p),L=new Float32Array(3*p),R=new Float32Array(2*p),M=0,D=0,F=T;F<=E;F++){var j=F/l,B=o*j,C=void 0;F<0?(B=0,j=1,C=r):F>l?(B=o,j=1,C=i):C=r+F/l*(i-r),-2!==F&&F!==l+2||(C=0,j=0),B-=o/2;for(var N=0;N<O;N++){var U=_(N*w*2/u),z=x(N*w*2/u);I[M+P[0]]=U*C,I[M+P[1]]=B,I[M+P[2]]=z*C,L[M+P[0]]=F<0||F>l?0:U*A,L[M+P[1]]=F<0?-1:F>l?1:k,L[M+P[2]]=F<0||F>l?0:z*A,R[D+0]=N/u,R[D+1]=j,D+=2,M+=3}}for(var V=0;V<l+m;V++)for(var G=0;G<u;G++){var H=6*(V*u+G);S[H+0]=O*(V+0)+0+G,S[H+1]=O*(V+0)+1+G,S[H+2]=O*(V+1)+1+G,S[H+3]=O*(V+0)+0+G,S[H+4]=O*(V+1)+1+G,S[H+5]=O*(V+1)+0+G}return{indices:S,attributes:{POSITION:{size:3,value:I},NORMAL:{size:3,value:L},TEXCOORD_0:{size:2,value:R}}}}function Na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ua(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Na(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Na(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function za(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Va=function(e){et()(r,e);var t=za(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cone-geometry"):n,a=e.radius,o=void 0===a?1:a,s=e.cap,u=void 0===s||s;return t.call(this,Ua(Ua({},e),{},{id:i,topRadius:0,topCap:Boolean(u),bottomCap:Boolean(u),bottomRadius:o}))}return r}(Ba);function Ga(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ha(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ga(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ga(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Wa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Xa=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),qa=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),Qa=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),$a=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),Ya={POSITION:{size:3,value:new Float32Array(qa)},NORMAL:{size:3,value:new Float32Array(Qa)},TEXCOORD_0:{size:2,value:new Float32Array($a)}},Ka=function(e){et()(r,e);var t=Wa(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cube-geometry"):n;return t.call(this,Ha(Ha({},e),{},{id:i,indices:{size:1,value:new Uint16Array(Xa)},attributes:Ha(Ha({},Ya),e.attributes)}))}return r}(Ra);function Ja(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Za(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ja(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ja(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function eo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var to=function(e){et()(r,e);var t=eo(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("cylinder-geometry"):n,a=e.radius,o=void 0===a?1:a;return t.call(this,Za(Za({},e),{},{id:i,bottomRadius:o,topRadius:o}))}return r}(Ba);function ro(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}Math.PI,Math.PI;var no={};function io(e){return Math.round(e/no.EPSILON)*no.EPSILON}function ao(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.precision,n=void 0===r?no.precision||4:r;return e=io(e),"".concat(parseFloat(e.toPrecision(n)))}function oo(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function so(e,t,r){var n=no.EPSILON;r&&(no.EPSILON=r);try{if(e===t)return!0;if(oo(e)&&oo(t)){if(e.length!==t.length)return!1;for(var i=0;i<e.length;++i)if(!so(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):!(!Number.isFinite(e)||!Number.isFinite(t))&&Math.abs(e-t)<=no.EPSILON*Math.max(1,Math.abs(e),Math.abs(t))}finally{no.EPSILON=n}}function uo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}no.EPSILON=1e-12,no.debug=!1,no.precision=4,no.printTypes=!1,no.printDegrees=!1,no.printRowMajor=!0;var co=function(e){et()(r,e);var t=uo(r);function r(){return l()(this,r),t.apply(this,arguments)}return h()(r,[{key:"clone",value:function(){return(new this.constructor).copy(this)}},{key:"from",value:function(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}},{key:"fromArray",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0;r<this.ELEMENTS;++r)this[r]=e[r+t];return this.check()}},{key:"to",value:function(e){return e===this?this:oo(e)?this.toArray(e):this.toObject(e)}},{key:"toTarget",value:function(e){return e?this.to(e):this}},{key:"toArray",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=0;r<this.ELEMENTS;++r)e[t+r]=this[r];return e}},{key:"toFloat32Array",value:function(){return new Float32Array(this)}},{key:"toString",value:function(){return this.formatString(no)}},{key:"formatString",value:function(e){for(var t="",r=0;r<this.ELEMENTS;++r)t+=(r>0?", ":"")+ao(this[r],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(t,"]")}},{key:"equals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(!so(this[t],e[t]))return!1;return!0}},{key:"exactEquals",value:function(e){if(!e||this.length!==e.length)return!1;for(var t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}},{key:"negate",value:function(){for(var e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}},{key:"lerp",value:function(e,t,r){void 0===r&&(r=t,t=e,e=this);for(var n=0;n<this.ELEMENTS;++n){var i=e[n];this[n]=i+r*(t[n]-i)}return this.check()}},{key:"min",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}},{key:"max",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}},{key:"clamp",value:function(e,t){for(var r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],e[r]),t[r]);return this.check()}},{key:"add",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]+=a[o];return this.check()}},{key:"subtract",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]-=a[o];return this.check()}},{key:"scale",value:function(e){if(Array.isArray(e))return this.multiply(e);for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"sub",value:function(e){return this.subtract(e)}},{key:"setScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}},{key:"addScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}},{key:"subScalar",value:function(e){return this.addScalar(-e)}},{key:"multiplyScalar",value:function(e){for(var t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}},{key:"divideScalar",value:function(e){return this.scale(1/e)}},{key:"clampScalar",value:function(e,t){for(var r=0;r<this.ELEMENTS;++r)this[r]=Math.min(Math.max(this[r],e),t);return this.check()}},{key:"multiplyByScalar",value:function(e){return this.scale(e)}},{key:"check",value:function(){if(no.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}},{key:"validate",value:function(){for(var e=this.length===this.ELEMENTS,t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}},{key:"ELEMENTS",get:function(){return ro(!1),0}},{key:"elements",get:function(){return this}}]),r}(function(e){function t(){var t=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(t,Object.getPrototypeOf(this)),t}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}(Array));function lo(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(e));return e}function fo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ho=function(e){et()(r,e);var t=fo(r);function r(){return l()(this,r),t.apply(this,arguments)}return h()(r,[{key:"copy",value:function(e){return ro(!1),this}},{key:"len",value:function(){return Math.sqrt(this.lengthSquared())}},{key:"magnitude",value:function(){return this.len()}},{key:"lengthSquared",value:function(){for(var e=0,t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}},{key:"magnitudeSquared",value:function(){return this.lengthSquared()}},{key:"distance",value:function(e){return Math.sqrt(this.distanceSquared(e))}},{key:"distanceSquared",value:function(e){for(var t=0,r=0;r<this.ELEMENTS;++r){var n=this[r]-e[r];t+=n*n}return lo(t)}},{key:"dot",value:function(e){for(var t=0,r=0;r<this.ELEMENTS;++r)t+=this[r]*e[r];return lo(t)}},{key:"normalize",value:function(){var e=this.magnitude();if(0!==e)for(var t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}},{key:"multiply",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]*=a[o];return this.check()}},{key:"divide",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];for(var n=0,i=t;n<i.length;n++)for(var a=i[n],o=0;o<this.ELEMENTS;++o)this[o]/=a[o];return this.check()}},{key:"lengthSq",value:function(){return this.lengthSquared()}},{key:"distanceTo",value:function(e){return this.distance(e)}},{key:"distanceToSquared",value:function(e){return this.distanceSquared(e)}},{key:"getComponent",value:function(e){return ro(e>=0&&e<this.ELEMENTS,"index is out of range"),lo(this[e])}},{key:"setComponent",value:function(e,t){return ro(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}},{key:"addVectors",value:function(e,t){return this.copy(e).add(t)}},{key:"subVectors",value:function(e,t){return this.copy(e).subtract(t)}},{key:"multiplyVectors",value:function(e,t){return this.copy(e).multiply(t)}},{key:"addScaledVector",value:function(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}},{key:"ELEMENTS",get:function(){return ro(!1),0}},{key:"x",get:function(){return this[0]},set:function(e){this[0]=lo(e)}},{key:"y",get:function(){return this[1]},set:function(e){this[1]=lo(e)}}]),r}(co),vo="undefined"!=typeof Float32Array?Float32Array:Array;Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var go,yo;go=new vo(3),vo!=Float32Array&&(go[0]=0,go[1]=0,go[2]=0),yo=go;function mo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var po=[0,0,0],bo={},_o=function(e){et()(r,e);var t=mo(r);function r(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return l()(this,r),e=t.call(this,-0,-0,-0),1===arguments.length&&oo(n)?e.copy(n):(no.debug&&(lo(n),lo(i),lo(a)),e[0]=n,e[1]=i,e[2]=a),e}return h()(r,null,[{key:"ZERO",get:function(){return bo.ZERO=bo.ZERO||Object.freeze(new r(0,0,0,0))}}]),h()(r,[{key:"set",value:function(e,t,r){return this[0]=e,this[1]=t,this[2]=r,this.check()}},{key:"copy",value:function(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}},{key:"fromObject",value:function(e){return no.debug&&(lo(e.x),lo(e.y),lo(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}},{key:"toObject",value:function(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}},{key:"angle",value:function(e){return r=e,n=(t=this)[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2],c=Math.sqrt(n*n+i*i+a*a)*Math.sqrt(o*o+s*s+u*u),l=c&&function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}(t,r)/c,Math.acos(Math.min(Math.max(l,-1),1));var t,r,n,i,a,o,s,u,c,l}},{key:"cross",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[0],s=r[1],u=r[2];e[0]=i*u-a*s,e[1]=a*o-n*u,e[2]=n*s-i*o}(this,this,e),this.check()}},{key:"rotateX",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"rotateY",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"rotateZ",value:function(e){var t=e.radians,r=e.origin;return function(e,t,r,n){var i=[],a=[];i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2]}(this,this,void 0===r?po:r,t),this.check()}},{key:"transform",value:function(e){return this.transformAsPoint(e)}},{key:"transformAsPoint",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o}(this,this,e),this.check()}},{key:"transformAsVector",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2],o=r[3]*n+r[7]*i+r[11]*a||1;e[0]=(r[0]*n+r[4]*i+r[8]*a)/o,e[1]=(r[1]*n+r[5]*i+r[9]*a)/o,e[2]=(r[2]*n+r[6]*i+r[10]*a)/o}(this,this,e),this.check()}},{key:"transformByMatrix3",value:function(e){return function(e,t,r){var n=t[0],i=t[1],a=t[2];e[0]=n*r[0]+i*r[3]+a*r[6],e[1]=n*r[1]+i*r[4]+a*r[7],e[2]=n*r[2]+i*r[5]+a*r[8]}(this,this,e),this.check()}},{key:"transformByMatrix2",value:function(e){return function(e,t,r){var n=t[0],i=t[1];e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2]}(this,this,e),this.check()}},{key:"transformByQuaternion",value:function(e){return function(e,t,r){var n=r[0],i=r[1],a=r[2],o=r[3],s=t[0],u=t[1],c=t[2],l=i*c-a*u,f=a*s-n*c,h=n*u-i*s,d=i*h-a*f,v=a*l-n*h,g=n*f-i*l,y=2*o;l*=y,f*=y,h*=y,d*=2,v*=2,g*=2,e[0]=s+l+d,e[1]=u+f+v,e[2]=c+h+g}(this,this,e),this.check()}},{key:"ELEMENTS",get:function(){return 3}},{key:"z",get:function(){return this[2]},set:function(e){this[2]=lo(e)}}]),r}(ho);function xo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function wo(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?xo(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xo(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Ao(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var ko=[-1,0,0,0,1,0,0,0,-1,0,0,1,0,-1,0,1,0,0],To=[3,4,5,3,5,1,3,1,0,3,0,4,4,0,2,4,2,5,2,0,1,5,2,1],Eo=function(e){et()(r,e);var t=Ao(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("ico-sphere-geometry"):n,a=Oo(e),o=a.indices,s=a.attributes;return t.call(this,wo(wo({},e),{},{id:i,indices:o,attributes:wo(wo({},s),e.attributes)}))}return r}(Ra);function Oo(e){var t=e.iterations,r=void 0===t?0:t,n=Math.PI,i=2*n,a=[].concat(ko),o=[].concat(To);a.push(),o.push();for(var s,u=(s={},function(e,t){var r=(e*=3)>(t*=3)?e:t,n="".concat(e<t?e:t,"|").concat(r);if(n in s)return s[n];var i=a[e],o=a[e+1],u=a[e+2],c=(i+a[t])/2,l=(o+a[t+1])/2,f=(u+a[t+2])/2,h=Math.sqrt(c*c+l*l+f*f);return c/=h,l/=h,f/=h,a.push(c,l,f),s[n]=a.length/3-1}),c=0;c<r;c++){for(var l=[],f=0;f<o.length;f+=3){var h=u(o[f+0],o[f+1]),d=u(o[f+1],o[f+2]),v=u(o[f+2],o[f+0]);l.push(v,o[f+0],h,h,o[f+1],d,d,o[f+2],v,h,d,v)}o=l}for(var g=new Array(a.length),y=new Array(a.length/3*2),m=o.length-3;m>=0;m-=3){var p=o[m+0],b=o[m+1],_=o[m+2],x=3*p,w=3*b,A=3*_,k=2*p,T=2*b,E=2*_,O=a[x+0],S=a[x+1],P=a[x+2],I=Math.acos(P/Math.sqrt(O*O+S*S+P*P))/n,L=1-(Math.atan2(S,O)+n)/i,R=a[w+0],M=a[w+1],D=a[w+2],F=Math.acos(D/Math.sqrt(R*R+M*M+D*D))/n,j=1-(Math.atan2(M,R)+n)/i,B=a[A+0],C=a[A+1],N=a[A+2],U=Math.acos(N/Math.sqrt(B*B+C*C+N*N))/n,z=1-(Math.atan2(C,B)+n)/i,V=[O-R,S-M,P-D],G=new _o([B-R,C-M,N-D]).cross(V).normalize(),H=void 0;(0===L||0===j||0===z)&&(0===L||L>.5)&&(0===j||j>.5)&&(0===z||z>.5)&&(a.push(a[x+0],a[x+1],a[x+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=I,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z,a.push(a[w+0],a[w+1],a[w+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=F,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z,a.push(a[A+0],a[A+1],a[A+2]),H=a.length/3-1,o.push(H),y[2*H+0]=1,y[2*H+1]=U,g[3*H+0]=G.x,g[3*H+1]=G.y,g[3*H+2]=G.z),g[x+0]=g[w+0]=g[A+0]=G.x,g[x+1]=g[w+1]=g[A+1]=G.y,g[x+2]=g[w+2]=g[A+2]=G.z,y[k+0]=L,y[k+1]=I,y[T+0]=j,y[T+1]=F,y[E+0]=z,y[E+1]=U}return{indices:{size:1,value:new Uint16Array(o)},attributes:{POSITION:{size:3,value:new Float32Array(a)},NORMAL:{size:3,value:new Float32Array(g)},TEXCOORD_0:{size:2,value:new Float32Array(y)}}}}function So(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Po(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?So(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):So(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Io(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Lo=function(e){et()(r,e);var t=Io(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("plane-geometry"):n,a=Ro(e),o=a.indices,s=a.attributes;return t.call(this,Po(Po({},e),{},{id:i,indices:o,attributes:Po(Po({},s),e.attributes)}))}return r}(Ra);function Ro(e){var t=e.type,r=void 0===t?"x,y":t,n=e.offset,i=void 0===n?0:n,a=e.flipCull,o=void 0!==a&&a,s=e.unpack,u=void 0!==s&&s,c=r.split(","),l=e["".concat(c[0],"len")]||1,f=e["".concat(c[1],"len")]||1,h=e["n".concat(c[0])]||1,d=e["n".concat(c[1])]||1,v=(h+1)*(d+1),g=new Float32Array(3*v),y=new Float32Array(3*v),m=new Float32Array(2*v);o&&(l=-l);for(var p=0,b=0,_=0;_<=d;_++)for(var x=0;x<=h;x++){var w=x/h,A=_/d;switch(m[p+0]=o?1-w:w,m[p+1]=A,r){case"x,y":g[b+0]=l*w-.5*l,g[b+1]=f*A-.5*f,g[b+2]=i,y[b+0]=0,y[b+1]=0,y[b+2]=o?1:-1;break;case"x,z":g[b+0]=l*w-.5*l,g[b+1]=i,g[b+2]=f*A-.5*f,y[b+0]=0,y[b+1]=o?1:-1,y[b+2]=0;break;case"y,z":g[b+0]=i,g[b+1]=l*w-.5*l,g[b+2]=f*A-.5*f,y[b+0]=o?1:-1,y[b+1]=0,y[b+2]=0;break;default:throw new Error("PlaneGeometry: unknown type")}p+=2,b+=3}for(var k=h+1,T=new Uint16Array(h*d*6),E=0;E<d;E++)for(var O=0;O<h;O++){var S=6*(E*h+O);T[S+0]=(E+0)*k+O,T[S+1]=(E+1)*k+O,T[S+2]=(E+0)*k+O+1,T[S+3]=(E+1)*k+O,T[S+4]=(E+1)*k+O+1,T[S+5]=(E+0)*k+O+1}var P={indices:{size:1,value:T},attributes:{POSITION:{size:3,value:g},NORMAL:{size:3,value:y},TEXCOORD_0:{size:2,value:m}}};return u?function(e){var t=e.indices,r=e.attributes;if(!t)return e;var n=t.value.length,i={};for(var a in r){var o=r[a],s=o.constant,u=o.value,c=o.size;if(!s&&c){for(var l=new u.constructor(n*c),f=0;f<n;++f)for(var h=t.value[f],d=0;d<c;d++)l[f*c+d]=u[h*c+d];i[a]={size:c,value:l}}}return{attributes:Object.assign({},r,i)}}(P):P}function Mo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Do(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Mo(Object(r),!0).forEach((function(t){y()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mo(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Fo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var jo=function(e){et()(r,e);var t=Fo(r);function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l()(this,r);var n=e.id,i=void 0===n?ut("sphere-geometry"):n,a=Bo(e),o=a.indices,s=a.attributes;return t.call(this,Do(Do({},e),{},{id:i,indices:o,attributes:Do(Do({},s),e.attributes)}))}return r}(Ra);function Bo(e){var t=e.nlat,r=void 0===t?10:t,n=e.nlong,i=void 0===n?10:n,a=e.radius,o=void 0===a?1:a,s=Math.PI-0,u=2*Math.PI-0,c=(r+1)*(i+1);if("number"==typeof o){var l=o;o=function(e,t,r,n,i){return l}}for(var f=new Float32Array(3*c),h=new Float32Array(3*c),d=new Float32Array(2*c),v=new(c>65535?Uint32Array:Uint16Array)(r*i*6),g=0;g<=r;g++)for(var y=0;y<=i;y++){var m=y/i,p=g/r,b=y+g*(i+1),_=2*b,x=3*b,w=u*m,A=s*p,k=Math.sin(w),T=Math.cos(w),E=Math.sin(A),O=T*E,S=Math.cos(A),P=k*E,I=o(O,S,P,m,p);f[x+0]=I*O,f[x+1]=I*S,f[x+2]=I*P,h[x+0]=O,h[x+1]=S,h[x+2]=P,d[_+0]=m,d[_+1]=1-p}for(var L=i+1,R=0;R<i;R++)for(var M=0;M<r;M++){var D=6*(R*r+M);v[D+0]=M*L+R,v[D+1]=M*L+R+1,v[D+2]=(M+1)*L+R,v[D+3]=(M+1)*L+R,v[D+4]=M*L+R+1,v[D+5]=(M+1)*L+R+1}return{indices:{size:1,value:v},attributes:{POSITION:{size:3,value:f},NORMAL:{size:3,value:h},TEXCOORD_0:{size:2,value:d}}}}function Co(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return No(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return No(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}function No(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Uo=1,zo=1,Vo=function(){function e(){l()(this,e),this.time=0,this.channels=new Map,this.animations=new Map,this.playing=!1,this.lastEngineTime=-1}return h()(e,[{key:"addChannel",value:function(e){var t=e.delay,r=void 0===t?0:t,n=e.duration,i=void 0===n?Number.POSITIVE_INFINITY:n,a=e.rate,o=void 0===a?1:a,s=e.repeat,u=Uo++,c={time:0,delay:r,duration:i,rate:o,repeat:void 0===s?1:s};return this._setChannelTime(c,this.time),this.channels.set(u,c),u}},{key:"removeChannel",value:function(e){this.channels.delete(e);var t,r=Co(this.animations);try{for(r.s();!(t=r.n()).done;){var n=ce()(t.value,2),i=n[0];n[1].channel===e&&this.detachAnimation(i)}}catch(e){r.e(e)}finally{r.f()}}},{key:"isFinished",value:function(e){var t=this.channels.get(e);return void 0!==t&&this.time>=t.delay+t.duration*t.repeat}},{key:"getTime",value:function(e){if(void 0===e)return this.time;var t=this.channels.get(e);return void 0===t?-1:t.time}},{key:"setTime",value:function(e){this.time=Math.max(0,e);var t,r=Co(this.channels.values());try{for(r.s();!(t=r.n()).done;){var n=t.value;this._setChannelTime(n,this.time)}}catch(e){r.e(e)}finally{r.f()}var i,a=Co(this.animations.values());try{for(a.s();!(i=a.n()).done;){var o=i.value,s=o.animation,u=o.channel;s.setTime(this.getTime(u))}}catch(e){a.e(e)}finally{a.f()}}},{key:"play",value:function(){this.playing=!0}},{key:"pause",value:function(){this.playing=!1,this.lastEngineTime=-1}},{key:"reset",value:function(){this.setTime(0)}},{key:"attachAnimation",value:function(e,t){var r=zo++;return this.animations.set(r,{animation:e,channel:t}),e.setTime(this.getTime(t)),r}},{key:"detachAnimation",value:function(e){this.animations.delete(e)}},{key:"update",value:function(e){this.playing&&(-1===this.lastEngineTime&&(this.lastEngineTime=e),this.setTime(this.time+(e-this.lastEngineTime)),this.lastEngineTime=e)}},{key:"_setChannelTime",value:function(e,t){var r=t-e.delay;r>=e.duration*e.repeat?e.time=e.duration*e.rate:(e.time=Math.max(0,r)%e.duration,e.time*=e.rate)}}]),e}(),Go=function(){function e(t){l()(this,e),this._lastTime=-1,this.startIndex=-1,this.endIndex=-1,this.factor=0,this.times=[],this.values=[],this.setKeyFrames(t),this.setTime(0)}return h()(e,[{key:"setKeyFrames",value:function(e){var t=e.length;this.times.length=t,this.values.length=t;for(var r=0;r<t;++r)this.times[r]=e[r][0],this.values[r]=e[r][1];this._calculateKeys(this._lastTime)}},{key:"setTime",value:function(e){(e=Math.max(0,e))!==this._lastTime&&(this._calculateKeys(e),this._lastTime=e)}},{key:"getStartTime",value:function(){return this.times[this.startIndex]}},{key:"getEndTime",value:function(){return this.times[this.endIndex]}},{key:"getStartData",value:function(){return this.values[this.startIndex]}},{key:"getEndData",value:function(){return this.values[this.endIndex]}},{key:"_calculateKeys",value:function(e){var t=0,r=this.times.length;for(t=0;t<r-2&&!(this.times[t+1]>e);++t);this.startIndex=t,this.endIndex=t+1;var n=this.times[this.startIndex],i=this.times[this.endIndex];this.factor=Math.min(Math.max(0,(e-n)/(i-n)),1)}}]),e}();function Ho(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=it()(e);if(t){var i=it()(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return rt()(this,r)}}var Wo=[-1,-1,1,-1,-1,1,1,1],Xo=function(e){et()(r,e);var t=Ho(r);function r(e,n){var i;l()(this,r);var a=Wo.map((function(e){return-1===e?0:e}));return(i=t.call(this,e,Object.assign({},n,{vs:"attribute vec2 aClipSpacePosition;\nattribute vec2 aTexCoord;\nattribute vec2 aCoordinate;\n\nvarying vec2 position;\nvarying vec2 coordinate;\nvarying vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(aClipSpacePosition, 0., 1.);\n position = aClipSpacePosition;\n coordinate = aCoordinate;\n uv = aTexCoord;\n}\n",geometry:new Ra({drawMode:5,vertexCount:4,attributes:{aClipSpacePosition:{size:2,value:new Float32Array(Wo)},aTexCoord:{size:2,value:new Float32Array(a)},aCoordinate:{size:2,value:new Float32Array(a)}}})}))).setVertexCount(4),i}return r}(ca)},,,function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return o}));var n=r(7),i=r.n(n),a=r(27);function o(){return!("object"===(void 0===e?"undefined":i()(e))&&"[object process]"===String(e)&&!e.browser)||Object(a.a)()}}).call(this,r(12))}])}));
|