@deck.gl/extensions 8.6.4 → 8.7.0-alpha.11
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.dev.js +634 -586
- package/dist/es5/brushing/brushing.js +80 -49
- package/dist/es5/brushing/brushing.js.map +1 -1
- package/dist/es5/brushing/shader-module.js +16 -15
- package/dist/es5/brushing/shader-module.js.map +1 -1
- package/dist/es5/clip/clip.js +62 -35
- package/dist/es5/clip/clip.js.map +1 -1
- package/dist/es5/data-filter/aggregator.js +19 -14
- package/dist/es5/data-filter/aggregator.js.map +1 -1
- package/dist/es5/data-filter/data-filter.js +177 -147
- package/dist/es5/data-filter/data-filter.js.map +1 -1
- package/dist/es5/data-filter/shader-module.js +58 -37
- package/dist/es5/data-filter/shader-module.js.map +1 -1
- package/dist/es5/fill-style/fill-style.js +244 -158
- package/dist/es5/fill-style/fill-style.js.map +1 -1
- package/dist/es5/fill-style/shaders.glsl.js +18 -19
- package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
- package/dist/es5/fp64/fp64.js +36 -12
- package/dist/es5/fp64/fp64.js.map +1 -1
- package/dist/es5/fp64/project64.js +18 -20
- package/dist/es5/fp64/project64.js.map +1 -1
- package/dist/es5/index.js +7 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/path-style/path-style.js +121 -89
- package/dist/es5/path-style/path-style.js.map +1 -1
- package/dist/es5/path-style/shaders.glsl.js +2 -2
- package/dist/es5/path-style/shaders.glsl.js.map +1 -1
- package/dist/esm/clip/clip.js.map +1 -1
- package/dist/esm/data-filter/aggregator.js.map +1 -1
- package/dist/esm/fill-style/fill-style.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/clip/clip.js +1 -1
- package/src/data-filter/aggregator.js +107 -107
- /package/src/{index.js → index.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fill-style/fill-style.js"],"names":["LayerExtension","Texture2D","patternShaders","defaultProps","fillPatternEnabled","fillPatternAtlas","fillPatternMapping","fillPatternMask","getFillPattern","type","value","d","pattern","getFillPatternScale","getFillPatternOffset","DEFAULT_TEXTURE_PARAMETERS","FillStyleExtension","constructor","isEnabled","layer","getAttributeManager","state","pathTesselator","getShaders","extension","modules","opts","filter","Boolean","initializeState","context","attributeManager","add","fillPatternFrames","size","accessor","transform","getPatternFrame","bind","shaderAttributes","divisor","instanceFillPatternFrames","fillPatternScales","defaultValue","instanceFillPatternScales","fillPatternOffsets","instanceFillPatternOffsets","setState","emptyTexture","gl","data","Uint8Array","width","height","updateState","props","oldProps","loadPatternAtlas","call","loadPatternMapping","draw","params","patternTexture","setModuleParameters","fillPatternTexture","finalizeState","delete","fetch","image","propName","parameters","patternMapping","invalidate","setNeedsUpdate","name","def","x","y","extensionName"],"mappings":"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","sourcesContent":["import {LayerExtension} from '@deck.gl/core';\nimport {Texture2D} from '@luma.gl/core';\nimport GL from '@luma.gl/constants';\n\nimport {patternShaders} from './shaders.glsl';\n\nconst defaultProps = {\n fillPatternEnabled: true,\n fillPatternAtlas: null,\n fillPatternMapping: null,\n fillPatternMask: true,\n getFillPattern: {type: 'accessor', value: d => d.pattern},\n getFillPatternScale: {type: 'accessor', value: 1},\n getFillPatternOffset: {type: 'accessor', value: [0, 0]}\n};\n\nconst DEFAULT_TEXTURE_PARAMETERS = {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // GL.LINEAR is the default value but explicitly set it here\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // for texture boundary artifact\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\n\nexport default class FillStyleExtension extends LayerExtension {\n constructor({pattern = false} = {}) {\n super({pattern});\n }\n\n isEnabled(layer) {\n return layer.getAttributeManager() && !layer.state.pathTesselator;\n }\n\n getShaders(extension) {\n if (!extension.isEnabled(this)) {\n return null;\n }\n\n return {\n modules: [extension.opts.pattern && patternShaders].filter(Boolean)\n };\n }\n\n initializeState(context, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const attributeManager = this.getAttributeManager();\n\n if (extension.opts.pattern) {\n attributeManager.add({\n fillPatternFrames: {\n size: 4,\n accessor: 'getFillPattern',\n transform: extension.getPatternFrame.bind(this),\n shaderAttributes: {\n fillPatternFrames: {\n divisor: 0\n },\n instanceFillPatternFrames: {\n divisor: 1\n }\n }\n },\n fillPatternScales: {\n size: 1,\n accessor: 'getFillPatternScale',\n defaultValue: 1,\n shaderAttributes: {\n fillPatternScales: {\n divisor: 0\n },\n instanceFillPatternScales: {\n divisor: 1\n }\n }\n },\n fillPatternOffsets: {\n size: 2,\n accessor: 'getFillPatternOffset',\n shaderAttributes: {\n fillPatternOffsets: {\n divisor: 0\n },\n instanceFillPatternOffsets: {\n divisor: 1\n }\n }\n }\n });\n }\n this.setState({\n emptyTexture: new Texture2D(this.context.gl, {\n data: new Uint8Array(4),\n width: 1,\n height: 1\n })\n });\n }\n\n updateState({props, oldProps}, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n if (props.fillPatternAtlas && props.fillPatternAtlas !== oldProps.fillPatternAtlas) {\n extension.loadPatternAtlas.call(this, props);\n }\n if (props.fillPatternMapping && props.fillPatternMapping !== oldProps.fillPatternMapping) {\n extension.loadPatternMapping.call(this, props);\n }\n }\n\n draw(params, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const {patternTexture} = this.state;\n this.setModuleParameters({\n fillPatternTexture: patternTexture || this.state.emptyTexture\n });\n }\n\n finalizeState() {\n const {patternTexture, emptyTexture} = this.state;\n patternTexture?.delete();\n emptyTexture?.delete();\n }\n\n async loadPatternAtlas({fillPatternAtlas, fetch}) {\n this.state.patternTexture?.delete();\n this.setState({patternTexture: null});\n let image = fillPatternAtlas;\n if (typeof image === 'string') {\n image = await fetch(image, {propName: 'fillPatternAtlas', layer: this});\n }\n const patternTexture =\n image instanceof Texture2D\n ? image\n : new Texture2D(this.context.gl, {\n data: image,\n parameters: DEFAULT_TEXTURE_PARAMETERS\n });\n this.setState({patternTexture});\n }\n\n async loadPatternMapping({fillPatternMapping, fetch}) {\n this.setState({patternMapping: null});\n let patternMapping = fillPatternMapping;\n if (typeof patternMapping === 'string') {\n patternMapping = await fetch(patternMapping, {\n propName: 'fillPatternMapping',\n layer: this\n });\n }\n this.setState({patternMapping});\n this.getAttributeManager().invalidate('getFillPattern');\n this.setNeedsUpdate();\n }\n\n getPatternFrame(name) {\n const {patternMapping} = this.state;\n const def = patternMapping && patternMapping[name];\n return def ? [def.x, def.y, def.width, def.height] : [0, 0, 0, 0];\n }\n}\n\nFillStyleExtension.extensionName = 'FillStyleExtension';\nFillStyleExtension.defaultProps = defaultProps;\n"],"file":"fill-style.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fill-style/fill-style.js"],"names":["LayerExtension","Texture2D","patternShaders","defaultProps","fillPatternEnabled","fillPatternAtlas","fillPatternMapping","fillPatternMask","getFillPattern","type","value","d","pattern","getFillPatternScale","getFillPatternOffset","DEFAULT_TEXTURE_PARAMETERS","FillStyleExtension","constructor","isEnabled","layer","getAttributeManager","state","pathTesselator","getShaders","extension","modules","opts","filter","Boolean","initializeState","context","attributeManager","add","fillPatternFrames","size","accessor","transform","getPatternFrame","bind","shaderAttributes","divisor","instanceFillPatternFrames","fillPatternScales","defaultValue","instanceFillPatternScales","fillPatternOffsets","instanceFillPatternOffsets","setState","emptyTexture","gl","data","Uint8Array","width","height","updateState","props","oldProps","loadPatternAtlas","call","loadPatternMapping","draw","params","patternTexture","setModuleParameters","fillPatternTexture","finalizeState","delete","fetch","image","propName","parameters","patternMapping","invalidate","setNeedsUpdate","name","def","x","y","extensionName"],"mappings":"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","sourcesContent":["import {LayerExtension} from '@deck.gl/core';\nimport {Texture2D} from '@luma.gl/core';\nimport GL from '@luma.gl/constants';\n\nimport {patternShaders} from './shaders.glsl';\n\nconst defaultProps = {\n fillPatternEnabled: true,\n fillPatternAtlas: null,\n fillPatternMapping: null,\n fillPatternMask: true,\n getFillPattern: {type: 'accessor', value: d => d.pattern},\n getFillPatternScale: {type: 'accessor', value: 1},\n getFillPatternOffset: {type: 'accessor', value: [0, 0]}\n};\n\nconst DEFAULT_TEXTURE_PARAMETERS = {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // GL.LINEAR is the default value but explicitly set it here\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // for texture boundary artifact\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n};\n\nexport default class FillStyleExtension extends LayerExtension {\n constructor({pattern = false} = {}) {\n super({pattern});\n }\n\n isEnabled(layer) {\n return layer.getAttributeManager() && !layer.state.pathTesselator;\n }\n\n getShaders(extension) {\n if (!extension.isEnabled(this)) {\n return null;\n }\n\n return {\n modules: [extension.opts.pattern && patternShaders].filter(Boolean)\n };\n }\n\n initializeState(context, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const attributeManager = this.getAttributeManager();\n\n if (extension.opts.pattern) {\n attributeManager.add({\n fillPatternFrames: {\n size: 4,\n accessor: 'getFillPattern',\n transform: extension.getPatternFrame.bind(this),\n shaderAttributes: {\n fillPatternFrames: {\n divisor: 0\n },\n instanceFillPatternFrames: {\n divisor: 1\n }\n }\n },\n fillPatternScales: {\n size: 1,\n accessor: 'getFillPatternScale',\n defaultValue: 1,\n shaderAttributes: {\n fillPatternScales: {\n divisor: 0\n },\n instanceFillPatternScales: {\n divisor: 1\n }\n }\n },\n fillPatternOffsets: {\n size: 2,\n accessor: 'getFillPatternOffset',\n shaderAttributes: {\n fillPatternOffsets: {\n divisor: 0\n },\n instanceFillPatternOffsets: {\n divisor: 1\n }\n }\n }\n });\n }\n this.setState({\n emptyTexture: new Texture2D(this.context.gl, {\n data: new Uint8Array(4),\n width: 1,\n height: 1\n })\n });\n }\n\n updateState({props, oldProps}, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n if (props.fillPatternAtlas && props.fillPatternAtlas !== oldProps.fillPatternAtlas) {\n extension.loadPatternAtlas.call(this, props);\n }\n if (props.fillPatternMapping && props.fillPatternMapping !== oldProps.fillPatternMapping) {\n extension.loadPatternMapping.call(this, props);\n }\n }\n\n draw(params, extension) {\n if (!extension.isEnabled(this)) {\n return;\n }\n\n const {patternTexture} = this.state;\n this.setModuleParameters({\n fillPatternTexture: patternTexture || this.state.emptyTexture\n });\n }\n\n finalizeState() {\n const {patternTexture, emptyTexture} = this.state;\n patternTexture?.delete();\n emptyTexture?.delete();\n }\n\n async loadPatternAtlas({fillPatternAtlas, fetch}) {\n this.state.patternTexture?.delete();\n this.setState({patternTexture: null});\n let image = fillPatternAtlas;\n if (typeof image === 'string') {\n image = await fetch(image, {propName: 'fillPatternAtlas', layer: this});\n }\n const patternTexture =\n image instanceof Texture2D\n ? image\n : new Texture2D(this.context.gl, {\n data: image,\n parameters: DEFAULT_TEXTURE_PARAMETERS\n });\n this.setState({patternTexture});\n }\n\n async loadPatternMapping({fillPatternMapping, fetch}) {\n this.setState({patternMapping: null});\n let patternMapping = fillPatternMapping;\n if (typeof patternMapping === 'string') {\n patternMapping = await fetch(patternMapping, {\n propName: 'fillPatternMapping',\n layer: this\n });\n }\n this.setState({patternMapping});\n this.getAttributeManager().invalidate('getFillPattern');\n this.setNeedsUpdate();\n }\n\n getPatternFrame(name) {\n const {patternMapping} = this.state;\n const def = patternMapping && patternMapping[name];\n return def ? [def.x, def.y, def.width, def.height] : [0, 0, 0, 0];\n }\n}\n\nFillStyleExtension.extensionName = 'FillStyleExtension';\nFillStyleExtension.defaultProps = defaultProps;\n"],"file":"fill-style.js"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["default","BrushingExtension","DataFilterExtension","Fp64Extension","PathStyleExtension","FillStyleExtension","ClipExtension","project64"],"mappings":"AAAA,SAAQA,OAAO,IAAIC,iBAAnB,QAA2C,qBAA3C;AACA,SAAQD,OAAO,IAAIE,mBAAnB,QAA6C,2BAA7C;AACA,SAAQF,OAAO,IAAIG,aAAnB,QAAuC,aAAvC;AACA,SAAQH,OAAO,IAAII,kBAAnB,QAA4C,yBAA5C;AACA,SAAQJ,OAAO,IAAIK,kBAAnB,QAA4C,yBAA5C;AACA,SAAQL,OAAO,IAAIM,aAAnB,QAAuC,aAAvC;AAGA,SAAQN,OAAO,IAAIO,SAAnB,QAAmC,kBAAnC","sourcesContent":["export {default as BrushingExtension} from './brushing/brushing';\nexport {default as DataFilterExtension} from './data-filter/data-filter';\nexport {default as Fp64Extension} from './fp64/fp64';\nexport {default as PathStyleExtension} from './path-style/path-style';\nexport {default as FillStyleExtension} from './fill-style/fill-style';\nexport {default as ClipExtension} from './clip/clip';\n\n// Shader module\nexport {default as project64} from './fp64/project64';\n"],"file":"index.js"}
|
package/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("deck"),require("luma")):"function"==typeof define&&define.amd?define(["deck","luma"],e):"object"==typeof exports?exports.deck=e(require("deck"),require("luma")):n.deck=e(n.deck,n.luma)}(window,(function(n,e){return function(n){var e={};function t(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return n[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var i in n)t.d(r,i,function(e){return n[e]}.bind(null,i));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=10)}([function(e,t){e.exports=n},function(n,e){function t(e){return n.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},t(e)}n.exports=t},function(n,t){n.exports=e},function(n,e){n.exports=function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}},function(n,e){function t(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}n.exports=function(n,e,r){return e&&t(n.prototype,e),r&&t(n,r),n}},function(n,e,t){var r=t(11);n.exports=function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&r(n,e)}},function(n,e,t){var r=t(12),i=t(13);n.exports=function(n,e){return!e||"object"!==r(e)&&"function"!=typeof e?i(n):e}},function(n,e){n.exports=function(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}},function(n,e,t){n.exports=t(14)},function(n,e){function t(n,e,t,r,i,o,a){try{var s=n[o](a),f=s.value}catch(n){return void t(n)}s.done?e(f):Promise.resolve(f).then(r,i)}n.exports=function(n){return function(){var e=this,r=arguments;return new Promise((function(i,o){var a=n.apply(e,r);function s(n){t(a,i,o,s,f,"next",n)}function f(n){t(a,i,o,s,f,"throw",n)}s(void 0)}))}}},function(n,e,t){var r=t(15),i=("undefined"==typeof window?global:window).deck||{};if(!i.Layer)throw new Error("@deck.gl/core is not found");n.exports=Object.assign(i,r)},function(n,e){function t(e,r){return n.exports=t=Object.setPrototypeOf||function(n,e){return n.__proto__=e,n},t(e,r)}n.exports=t},function(n,e){function t(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?n.exports=t=function(n){return typeof n}:n.exports=t=function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},t(e)}n.exports=t},function(n,e){n.exports=function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}},function(n,e,t){var r=function(n){"use strict";var e=Object.prototype,t=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(n,e,t,r){var i=e&&e.prototype instanceof c?e:c,o=Object.create(i.prototype),a=new x(r||[]);return o._invoke=function(n,e,t){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return E()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var s=b(a,t);if(s){if(s===l)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=f(n,e,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}(n,t,a),o}function f(n,e,t){try{return{type:"normal",arg:n.call(e,t)}}catch(n){return{type:"throw",arg:n}}}n.wrap=s;var l={};function c(){}function u(){}function _(){}var p={};p[i]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(T([])));d&&d!==e&&t.call(d,i)&&(p=d);var h=_.prototype=c.prototype=Object.create(p);function m(n){["next","throw","return"].forEach((function(e){n[e]=function(n){return this._invoke(e,n)}}))}function y(n){var e;this._invoke=function(r,i){function o(){return new Promise((function(e,o){!function e(r,i,o,a){var s=f(n[r],n,i);if("throw"!==s.type){var l=s.arg,c=l.value;return c&&"object"==typeof c&&t.call(c,"__await")?Promise.resolve(c.__await).then((function(n){e("next",n,o,a)}),(function(n){e("throw",n,o,a)})):Promise.resolve(c).then((function(n){l.value=n,o(l)}),(function(n){return e("throw",n,o,a)}))}a(s.arg)}(r,i,e,o)}))}return e=e?e.then(o,o):o()}}function b(n,e){var t=n.iterator[e.method];if(void 0===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=void 0,b(n,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=f(t,n.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,l;var i=r.arg;return i?i.done?(e[n.resultName]=i.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function g(n){var e={tryLoc:n[0]};1 in n&&(e.catchLoc=n[1]),2 in n&&(e.finallyLoc=n[2],e.afterLoc=n[3]),this.tryEntries.push(e)}function P(n){var e=n.completion||{};e.type="normal",delete e.arg,n.completion=e}function x(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(g,this),this.reset(!0)}function T(n){if(n){var e=n[i];if(e)return e.call(n);if("function"==typeof n.next)return n;if(!isNaN(n.length)){var r=-1,o=function e(){for(;++r<n.length;)if(t.call(n,r))return e.value=n[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:E}}function E(){return{value:void 0,done:!0}}return u.prototype=h.constructor=_,_.constructor=u,_[a]=u.displayName="GeneratorFunction",n.isGeneratorFunction=function(n){var e="function"==typeof n&&n.constructor;return!!e&&(e===u||"GeneratorFunction"===(e.displayName||e.name))},n.mark=function(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,_):(n.__proto__=_,a in n||(n[a]="GeneratorFunction")),n.prototype=Object.create(h),n},n.awrap=function(n){return{__await:n}},m(y.prototype),y.prototype[o]=function(){return this},n.AsyncIterator=y,n.async=function(e,t,r,i){var o=new y(s(e,t,r,i));return n.isGeneratorFunction(t)?o:o.next().then((function(n){return n.done?n.value:o.next()}))},m(h),h[a]="Generator",h[i]=function(){return this},h.toString=function(){return"[object Generator]"},n.keys=function(n){var e=[];for(var t in n)e.push(t);return e.reverse(),function t(){for(;e.length;){var r=e.pop();if(r in n)return t.value=r,t.done=!1,t}return t.done=!0,t}},n.values=T,x.prototype={constructor:x,reset:function(n){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(P),!n)for(var e in this)"t"===e.charAt(0)&&t.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var n=this.tryEntries[0].completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var e=this;function r(t,r){return a.type="throw",a.arg=n,e.next=t,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=t.call(o,"catchLoc"),f=t.call(o,"finallyLoc");if(s&&f){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(n,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&t.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===n||"continue"===n)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=n,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,l):this.complete(a)},complete:function(n,e){if("throw"===n.type)throw n.arg;return"break"===n.type||"continue"===n.type?this.next=n.arg:"return"===n.type?(this.rval=this.arg=n.arg,this.method="return",this.next="end"):"normal"===n.type&&e&&(this.next=e),l},finish:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===n)return this.complete(t.completion,t.afterLoc),P(t),l}},catch:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===n){var r=t.completion;if("throw"===r.type){var i=r.arg;P(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,t){return this.delegate={iterator:T(n),resultName:e,nextLoc:t},"next"===this.method&&(this.arg=void 0),l}},n}(n.exports);try{regeneratorRuntime=r}catch(n){Function("r","regeneratorRuntime = r")(r)}},function(n,e,t){"use strict";t.r(e);var r=t(3),i=t.n(r),o=t(4),a=t.n(o),s=t(5),f=t.n(s),l=t(6),c=t.n(l),u=t(1),_=t.n(u),p=t(0),v={source:0,target:1,custom:2,source_target:3},d={name:"brushing",dependencies:[p.project],vs:"\n uniform bool brushing_enabled;\n uniform int brushing_target;\n uniform vec2 brushing_mousePos;\n uniform float brushing_radius;\n\n #ifdef NON_INSTANCED_MODEL\n attribute vec2 brushingTargets;\n #else\n attribute vec2 instanceBrushingTargets;\n #endif\n\n varying float brushing_isVisible;\n\n bool brushing_isPointInRange(vec2 position) {\n if (!brushing_enabled) {\n return true;\n }\n vec2 source_commonspace = project_position(position);\n vec2 target_commonspace = project_position(brushing_mousePos);\n float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);\n\n return distance <= brushing_radius;\n }\n\n bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n }\n\n void brushing_setVisible(bool visible) {\n brushing_isVisible = float(visible);\n }\n",fs:"\n uniform bool brushing_enabled;\n varying float brushing_isVisible;\n",inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n vec2 brushingTarget;\n vec2 brushingSource;\n if (brushing_target == 3) {\n brushingTarget = geometry.worldPositionAlt.xy;\n brushingSource = geometry.worldPosition.xy;\n } else if (brushing_target == 0) {\n brushingTarget = geometry.worldPosition.xy;\n } else if (brushing_target == 1) {\n brushingTarget = geometry.worldPositionAlt.xy;\n } else {\n #ifdef NON_INSTANCED_MODEL\n brushingTarget = brushingTargets;\n #else\n brushingTarget = instanceBrushingTargets;\n #endif\n }\n bool visible;\n if (brushing_target == 3) {\n visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n } else {\n visible = brushing_isPointInRange(brushingTarget);\n }\n brushing_setVisible(visible);\n ","fs:DECKGL_FILTER_COLOR":"\n if (brushing_enabled && brushing_isVisible < 0.5) {\n discard;\n }\n "},getUniforms:function(n){if(!n||!n.viewport)return{};var e=n.brushingEnabled,t=void 0===e||e,r=n.brushingRadius,i=void 0===r?1e4:r,o=n.brushingTarget,a=void 0===o?"source":o,s=n.mousePosition,f=n.viewport;return{brushing_enabled:Boolean(t&&s&&f.containsPixel(s)),brushing_radius:i,brushing_target:v[a]||0,brushing_mousePos:s?f.unproject([s.x-f.x,s.y-f.y]):[0,0]}}};function h(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var m=function(n){f()(t,n);var e=h(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(n){return{modules:[d]}}},{key:"initializeState",value:function(n,e){var t=this,r=this.getAttributeManager();r&&r.add({brushingTargets:{size:2,accessor:"getBrushingTarget",update:!this.props.getBrushingTarget&&e.useConstantTargetPositions,shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),e.onMouseMove=function(){t.getCurrentLayer().setNeedsRedraw()},this.context.deck&&this.context.deck.eventManager.on({pointermove:e.onMouseMove,pointerleave:e.onMouseMove})}},{key:"finalizeState",value:function(n){this.context.deck&&this.context.deck.eventManager.off({pointermove:n.onMouseMove,pointerleave:n.onMouseMove})}},{key:"useConstantTargetPositions",value:function(n){n.constant=!0,n.value=new Float32Array(2)}}]),t}(p.LayerExtension);m.extensionName="BrushingExtension",m.defaultProps={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4};var y=t(7),b=t.n(y),g="\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n",P="\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n",x=function(n){if(!n||!n.extensions)return{};var e=n.filterRange,t=void 0===e?[-1,1]:e,r=n.filterEnabled,i=void 0===r||r,o=n.filterTransformSize,a=void 0===o||o,s=n.filterTransformColor,f=void 0===s||s,l=n.filterSoftRange||t,c=Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:l[0],filter_softMax:l[1],filter_max:t[1]}:{filter_min:t.map((function(n){return n[0]})),filter_softMin:l.map((function(n){return n[0]})),filter_softMax:l.map((function(n){return n[1]})),filter_max:t.map((function(n){return n[1]}))};return c.filter_enabled=i,c.filter_useSoftMargin=Boolean(n.filterSoftRange),c.filter_transformSize=i&&a,c.filter_transformColor=i&&f,c},T={"vs:#main-start":"\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n ","vs:DECKGL_FILTER_SIZE":"\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n ","fs:DECKGL_FILTER_COLOR":"\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n "},E={name:"data-filter",vs:g,fs:P,inject:T,getUniforms:x},A={name:"data-filter-fp64",vs:g,fs:P,inject:T,getUniforms:function(n){if(!n||!n.extensions)return{};var e=x(n);if(Number.isFinite(e.filter_min)){var t=Math.fround(e.filter_min);e.filter_min-=t,e.filter_softMin-=t,e.filter_min64High=t;var r=Math.fround(e.filter_max);e.filter_max-=r,e.filter_softMax-=r,e.filter_max64High=r}else{var i=e.filter_min.map(Math.fround);e.filter_min=e.filter_min.map((function(n,e){return n-i[e]})),e.filter_softMin=e.filter_softMin.map((function(n,e){return n-i[e]})),e.filter_min64High=i;var o=e.filter_max.map(Math.fround);e.filter_max=e.filter_max.map((function(n,e){return n-o[e]})),e.filter_softMax=e.filter_softMax.map((function(n,e){return n-o[e]})),e.filter_max64High=o}return e}},O=t(2);function F(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function L(n,e,t){return e.defines.NON_INSTANCED_MODEL=1,t&&(e.defines.FLOAT_TARGET=1),new O.Model(n,function(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?F(Object(t),!0).forEach((function(e){b()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:"#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n",fs:"#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n"},e))}var I={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function R(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function S(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?R(Object(t),!0).forEach((function(e){b()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function N(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var w={1:"float",2:"vec2",3:"vec3",4:"vec4"},D=function(n){f()(t,n);var e=N(t);function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.filterSize,o=void 0===r?1:r,a=n.fp64,s=void 0!==a&&a,f=n.countItems,l=void 0!==f&&f;if(i()(this,t),!w[o])throw new Error("filterSize out of range");return e.call(this,{filterSize:o,fp64:s,countItems:l})}return a()(t,[{key:"getShaders",value:function(n){var e=n.opts,t=e.filterSize,r=e.fp64;return{modules:[r?A:E],defines:{DATAFILTER_TYPE:w[t],DATAFILTER_DOUBLE:Boolean(r)}}}},{key:"initializeState",value:function(n,e){var t=this.getAttributeManager();t&&t.add({filterValues:{size:e.opts.filterSize,type:e.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var r=this.context.gl;if(t&&e.opts.countItems){var i=function(n){return n.getExtension("EXT_float_blend")&&(n.getExtension("EXT_color_buffer_float")||n.getExtension("WEBGL_color_buffer_float"))}(r);t.add({filterIndices:{size:i?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(n,e){var t=e.index,r=n&&n.__source?n.__source.index:t;return i?(r+1)%255:[(r+1)%255,Math.floor(r/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var o=function(n,e){return e?new O.Framebuffer(n,{width:1,height:1,attachments:b()({},36064,new O.Texture2D(n,{format:Object(O.isWebGL2)(n)?34836:6408,type:5126,mipmaps:!1}))}):new O.Framebuffer(n,{width:256,height:64,depth:!1})}(r,i),a=L(r,e.getShaders(e),i);this.setState({filterFBO:o,filterModel:a})}}},{key:"updateState",value:function(n){var e=n.props,t=n.oldProps;if(this.state.filterModel){var r=this.getAttributeManager().attributes.filterValues.needsUpdate()||e.filterEnabled!==t.filterEnabled||e.filterRange!==t.filterRange||e.filterSoftRange!==t.filterSoftRange;r&&this.setState({filterNeedsUpdate:r})}}},{key:"draw",value:function(n,e){var t=this.state,r=t.filterFBO,i=t.filterModel,o=t.filterNeedsUpdate,a=this.props.onFilteredItemsChange;if(o&&a&&i){var s=this.getAttributeManager().attributes,f=s.filterValues,l=s.filterIndices;i.setVertexCount(this.getNumInstances());var c=this.context.gl;Object(O.clear)(c,{framebuffer:r,color:[0,0,0,0]}),i.updateModuleSettings(n.moduleParameters).setAttributes(S(S({},f.getShaderAttributes()),l&&l.getShaderAttributes())).draw({framebuffer:r,parameters:S(S({},I),{},{viewport:[0,0,r.width,r.height]})});for(var u=Object(O.readPixelsToArray)(r),_=0,p=0;p<u.length;p++)_+=u[p];a({id:this.id,count:_}),this.state.filterNeedsUpdate=!1}}},{key:"finalizeState",value:function(){var n=this.state,e=n.filterFBO,t=n.filterModel;e&&(e.color.delete(),e.delete(),t.delete())}}]),t}(p.LayerExtension);function j(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=Math.fround(n),i=n-r;return e[t]=r,e[t+1]=i,e}function M(n){return n-Math.fround(n)}function k(n){for(var e=new Float32Array(32),t=0;t<4;++t)for(var r=0;r<4;++r){var i=4*t+r;j(n[4*r+t],e,2*i)}return e}D.extensionName="DataFilterExtension",D.defaultProps={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,compare:!1},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0};var C={ONE:1};var B={name:"fp64",vs:"const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);\nconst vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);\nconst vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);\nconst vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);\nconst vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);\nconst vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);\nconst vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);\nconst vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);\nconst vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);\nconst vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);\n\nconst vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);\nconst vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);\nconst vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);\nconst vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);\n\nconst vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);\nconst vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);\nconst vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);\nconst vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);\n\nconst vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09);\nconst vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09);\nconst vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10);\nconst vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11);\nconst vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12);\nconst vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13);\nconst vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14);\nconst vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15);\n\nfloat nint(float d) {\n if (d == floor(d)) return d;\n return floor(d + 0.5);\n}\n\nvec2 nint_fp64(vec2 a) {\n float hi = nint(a.x);\n float lo;\n vec2 tmp;\n if (hi == a.x) {\n lo = nint(a.y);\n tmp = quickTwoSum(hi, lo);\n } else {\n lo = 0.0;\n if (abs(hi - a.x) == 0.5 && a.y < 0.0) {\n hi -= 1.0;\n }\n tmp = vec2(hi, lo);\n }\n return tmp;\n}\n\nvec2 exp_fp64(vec2 a) {\n\n const int k_power = 4;\n const float k = 16.0;\n\n const float inv_k = 1.0 / k;\n\n if (a.x <= -88.0) return vec2(0.0, 0.0);\n if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);\n if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);\n if (a.x == 1.0 && a.y == 0.0) return E_FP64;\n\n float m = floor(a.x / LOG2_FP64.x + 0.5);\n vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;\n vec2 s, t, p;\n\n p = mul_fp64(r, r);\n s = sum_fp64(r, p * 0.5);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);\n\n\n\n\n\n\n s = sum_fp64(s, t);\n for (int i = 0; i < k_power; i++) {\n s = sum_fp64(s * 2.0, mul_fp64(s, s));\n }\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = sum_fp64(s, vec2(ONE, 0.0));\n#else\n s = sum_fp64(s, vec2(1.0, 0.0));\n#endif\n\n return s * pow(2.0, m);\n}\n\nvec2 log_fp64(vec2 a)\n{\n if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n vec2 x = vec2(log(a.x), 0.0);\n vec2 s;\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = vec2(ONE, 0.0);\n#else\n s = vec2(1.0, 0.0);\n#endif\n\n x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);\n return x;\n}\n\nvec2 sin_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n s = a;\n r = a;\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvec2 cos_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n r = x;\n s = sum_fp64(vec2(1.0, 0.0), r * 0.5);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvoid sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {\n if (a.x == 0.0 && a.y == 0.0) {\n sin_t = vec2(0.0, 0.0);\n cos_t = vec2(1.0, 0.0);\n }\n\n sin_t = sin_taylor_fp64(a);\n cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));\n}\n\nvec2 sin_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return sin_taylor_fp64(t);\n } else if (j == 1) {\n return cos_taylor_fp64(t);\n } else if (j == -1) {\n return -cos_taylor_fp64(t);\n } else {\n return -sin_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n }\n } else {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 cos_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return cos_taylor_fp64(t);\n } else if (j == 1) {\n return -sin_taylor_fp64(t);\n } else if (j == -1) {\n return sin_taylor_fp64(t);\n } else {\n return -cos_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 tan_fp64(vec2 a) {\n vec2 sin_a;\n vec2 cos_a;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n vec2 sin_t, cos_t;\n vec2 s, c;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n if (k > 0) {\n s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return div_fp64(sin_a, cos_a);\n}\n\nvec2 radians_fp64(vec2 degree) {\n return mul_fp64(degree, PI_180_FP64);\n}\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\nvoid vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sum_fp64(a[0], b[0]);\n out_val[1] = sum_fp64(a[1], b[1]);\n}\n\nvoid vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sub_fp64(a[0], b[0]);\n out_val[1] = sub_fp64(a[1], b[1]);\n}\n\nvoid vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = mul_fp64(a[0], b[0]);\n out_val[1] = mul_fp64(a[1], b[1]);\n}\n\nvoid vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = div_fp64(a[0], b[0]);\n out_val[1] = div_fp64(a[1], b[1]);\n}\n\nvoid vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {\n vec2 range[2];\n vec2_sub_fp64(y, x, range);\n vec2 portion[2];\n portion[0] = range[0] * a;\n portion[1] = range[1] * a;\n vec2_sum_fp64(x, portion, out_val);\n}\n\nvec2 vec2_length_fp64(vec2 x[2]) {\n return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));\n}\n\nvoid vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {\n vec2 length = vec2_length_fp64(x);\n vec2 length_vec2[2];\n length_vec2[0] = length;\n length_vec2[1] = length;\n\n vec2_div_fp64(x, length_vec2, out_val);\n}\n\nvec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {\n vec2 diff[2];\n vec2_sub_fp64(x, y, diff);\n return vec2_length_fp64(diff);\n}\n\nvec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {\n vec2 v[2];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n\n return sum_fp64(v[0], v[1]);\n}\nvoid vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvec2 vec3_length_fp64(vec2 x[3]) {\n return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),\n mul_fp64(x[2], x[2])));\n}\n\nvec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {\n vec2 diff[3];\n vec3_sub_fp64(x, y, diff);\n return vec3_length_fp64(diff);\n}\nvoid vec4_fp64(vec4 a, out vec2 out_val[4]) {\n out_val[0].x = a[0];\n out_val[0].y = 0.0;\n\n out_val[1].x = a[1];\n out_val[1].y = 0.0;\n\n out_val[2].x = a[2];\n out_val[2].y = 0.0;\n\n out_val[3].x = a[3];\n out_val[3].y = 0.0;\n}\n\nvoid vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {\n out_val[0] = mul_fp64(a[0], b);\n out_val[1] = mul_fp64(a[1], b);\n out_val[2] = mul_fp64(a[2], b);\n out_val[3] = mul_fp64(a[3], b);\n}\n\nvoid vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {\n for (int i = 0; i < 4; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {\n vec2 v[4];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n v[2] = mul_fp64(a[2], b[2]);\n v[3] = mul_fp64(a[3], b[3]);\n\n out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));\n}\n\nvoid mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {\n vec2 tmp[4];\n\n for (int i = 0; i < 4; i++)\n {\n for (int j = 0; j < 4; j++)\n {\n tmp[j] = b[j + i * 4];\n }\n vec4_dot_fp64(a, tmp, out_val[i]);\n }\n}\n",fs:null,dependencies:[{name:"fp64-arithmetic",vs:"uniform float ONE;\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n",fs:null,getUniforms:function(){return C},fp64ify:j,fp64LowPart:M,fp64ifyMatrix4:k}],fp64ify:j,fp64LowPart:M,fp64ifyMatrix4:k},V=B.fp64ify,z=B.fp64ifyMatrix4,U={name:"project64",dependencies:[p.project,B],vs:"\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform vec2 project_uViewProjectionMatrixFP64[16];\nvoid mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {\n\n#if defined(NVIDIA_FP64_WORKAROUND)\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);\n#else\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);\n#endif\n out_val[1] = sum_fp64(PI_FP64,\n log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));\n return;\n}\n\nvoid project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {\n vec2 pos_fp64[2];\n mercatorProject_fp64(position_fp64, pos_fp64);\n out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);\n out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);\n\n return;\n}\n\nvoid project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {\n vec4 position64xy = vec4(\n position.x, position64xyLow.x,\n position.y, position64xyLow.y);\n\n project_position_fp64(position64xy, out_val);\n}\n\nvec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {\n vec2 vertex_pos_clipspace[4];\n mat4_vec4_mul_fp64(project_uViewProjectionMatrixFP64, vertex_pos_modelspace,\n vertex_pos_clipspace);\n return vec4(\n vertex_pos_clipspace[0].x,\n vertex_pos_clipspace[1].x,\n vertex_pos_clipspace[2].x,\n vertex_pos_clipspace[3].x\n );\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition\n) {\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n vec2 projectedPosition64xy[2];\n project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);\n\n vec2 commonPosition64[4];\n commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);\n commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);\n commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));\n commonPosition64[3] = vec2(1.0, 0.0);\n\n commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);\n\n return project_common_position_to_clipspace_fp64(commonPosition64);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(\n position, position64xyLow, offset, commonPosition\n );\n}\n",getUniforms:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:W;if(n.viewport){var e=n.viewport,t=e.viewProjectionMatrix,r=e.scale;return G({viewProjectionMatrix:t,scale:r})}return{}}},W={},G=Object(p._memoize)((function(n){var e=n.viewProjectionMatrix,t=n.scale,r=z(e),i=V(t);return{project_uViewProjectionMatrixFP64:r,project64_uViewProjectionMatrix:r,project64_uScale:i}}));function q(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var K=function(n){f()(t,n);var e=q(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(n){var e=this.props.coordinateSystem;if(e!==p.COORDINATE_SYSTEM.LNGLAT&&e!==p.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[U]}}}]),t}(p.LayerExtension);K.extensionName="Fp64Extension";var H={inject:{"vs:#decl":"\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n","vs:#main-end":"\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n","fs:#decl":"\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n","fs:#main-start":"\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(clamp(vPathPosition.y, 0.0, vPathLength) + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n"}},Y={inject:{"vs:#decl":"\nattribute float instanceOffsets;\n","vs:DECKGL_FILTER_SIZE":"\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n","vCornerOffset = offsetVec;":"\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n vec2 offsetCenter = -instanceOffsets * (isCap ? perp : miterVec * miterSize) * 2.0;\n vCornerOffset = vCornerOffset * offsetWidth - offsetCenter;\n","fs:#main-start":"\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n"}},X="undefined"!=typeof Float32Array?Float32Array:Array;Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var n=0,e=arguments.length;e--;)n+=arguments[e]*arguments[e];return Math.sqrt(n)});var J,Z,Q=function(n,e){var t=e[0]-n[0],r=e[1]-n[1],i=e[2]-n[2];return Math.hypot(t,r,i)};J=new X(3),X!=Float32Array&&(J[0]=0,J[1]=0,J[2]=0),Z=J;function $(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var nn=function(n){f()(t,n);var e=$(t);function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.dash,o=void 0!==r&&r,a=n.offset,s=void 0!==a&&a,f=n.highPrecisionDash,l=void 0!==f&&f;return i()(this,t),e.call(this,{dash:o||l,offset:s,highPrecisionDash:l})}return a()(t,[{key:"isEnabled",value:function(n){return n.state.pathTesselator}},{key:"getShaders",value:function(n){if(!n.isEnabled(this))return null;var e={};return n.opts.dash&&(e=Object(p._mergeShaders)(e,H)),n.opts.offset&&(e=Object(p._mergeShaders)(e,Y)),e}},{key:"initializeState",value:function(n,e){var t=this.getAttributeManager();t&&e.isEnabled(this)&&(e.enabled=!0,e.opts.dash&&t.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"}}),e.opts.highPrecisionDash&&t.addInstanced({instanceDashOffsets:{size:1,accessor:"getPath",transform:e.getDashOffsets.bind(this)}}),e.opts.offset&&t.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}},{key:"updateState",value:function(n,e){if(e.isEnabled(this)){var t={};e.opts.dash&&(t.dashAlignMode=this.props.dashJustified?1:0,t.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model.setUniforms(t)}}},{key:"getDashOffsets",value:function(n){for(var e,t,r=[0],i="XY"===this.props.positionFormat?2:3,o=Array.isArray(n[0]),a=o?n.length:n.length/i,s=0;s<a-1;s++)e=o?n[s]:n.slice(s*i,s*i+i),e=this.projectPosition(e),s>0&&(r[s]=r[s-1]+Q(t,e)),t=e;return r}}]),t}(p.LayerExtension);nn.extensionName="PathStyleExtension",nn.defaultProps={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1};var en=t(8),tn=t.n(en),rn=t(9),on=t.n(rn);var an,sn={name:"fill-pattern",vs:"\n#ifdef NON_INSTANCED_MODEL\n #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets\n#else\n #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets\n#endif\n\nattribute vec4 FILL_PATTERN_FRAME_ATTRIB;\nattribute float FILL_PATTERN_SCALE_ATTRIB;\nattribute vec2 FILL_PATTERN_OFFSET_ATTRIB;\n\nuniform bool fill_patternEnabled;\nuniform vec2 fill_patternTextureSize;\n\nvarying vec2 fill_uv;\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\n",fs:"\nuniform bool fill_patternEnabled;\nuniform bool fill_patternMask;\nuniform sampler2D fill_patternTexture;\nuniform vec2 fill_uvCoordinateOrigin;\n\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\nvarying vec2 fill_uv;\n\nconst float FILL_UV_SCALE = 512.0 / 40000000.0;\n",inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n fill_uv = geometry.position.xy;\n ","vs:DECKGL_FILTER_COLOR":"\n if (fill_patternEnabled) {\n fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);\n fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;\n fill_patternPlacement.z = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.w;\n }\n ","fs:DECKGL_FILTER_COLOR":"\n if (fill_patternEnabled) {\n float scale = FILL_UV_SCALE * fill_patternPlacement.z;\n vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uv, scale) / scale;\n patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);\n\n vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;\n\n vec4 patternColor = texture2D(fill_patternTexture, texCoords);\n color.a *= patternColor.a;\n if (!fill_patternMask) {\n color.rgb = patternColor.rgb;\n }\n }\n "},dependencies:[p.project],getUniforms:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if("fillPatternTexture"in n){var t=n.fillPatternTexture;return{fill_patternTexture:t,fill_patternTextureSize:[t.width,t.height]}}if(n.viewport){var r=n.viewport,i=n.fillPatternMask,o=void 0===i||i,a=n.fillPatternEnabled,s=void 0===a||a,f=e.project_uCoordinateOrigin,l=e.project_uCoordinateSystem,c=l===p.COORDINATE_SYSTEM.CARTESIAN?f:r.projectPosition(f);return{fill_uvCoordinateOrigin:c.slice(0,2),fill_patternMask:o,fill_patternEnabled:s}}return{}}};function fn(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var ln=(an={},b()(an,10241,9729),b()(an,10240,9729),b()(an,10242,33071),b()(an,10243,33071),an),cn=function(n){f()(o,n);var e,t,r=fn(o);function o(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=n.pattern,t=void 0!==e&&e;return i()(this,o),r.call(this,{pattern:t})}return a()(o,[{key:"isEnabled",value:function(n){return n.getAttributeManager()&&!n.state.pathTesselator}},{key:"getShaders",value:function(n){return n.isEnabled(this)?{modules:[n.opts.pattern&&sn].filter(Boolean)}:null}},{key:"initializeState",value:function(n,e){if(e.isEnabled(this)){var t=this.getAttributeManager();e.opts.pattern&&t.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:e.getPatternFrame.bind(this),shaderAttributes:{fillPatternFrames:{divisor:0},instanceFillPatternFrames:{divisor:1}}},fillPatternScales:{size:1,accessor:"getFillPatternScale",defaultValue:1,shaderAttributes:{fillPatternScales:{divisor:0},instanceFillPatternScales:{divisor:1}}},fillPatternOffsets:{size:2,accessor:"getFillPatternOffset",shaderAttributes:{fillPatternOffsets:{divisor:0},instanceFillPatternOffsets:{divisor:1}}}}),this.setState({emptyTexture:new O.Texture2D(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}}},{key:"updateState",value:function(n,e){var t=n.props,r=n.oldProps;e.isEnabled(this)&&(t.fillPatternAtlas&&t.fillPatternAtlas!==r.fillPatternAtlas&&e.loadPatternAtlas.call(this,t),t.fillPatternMapping&&t.fillPatternMapping!==r.fillPatternMapping&&e.loadPatternMapping.call(this,t))}},{key:"draw",value:function(n,e){if(e.isEnabled(this)){var t=this.state.patternTexture;this.setModuleParameters({fillPatternTexture:t||this.state.emptyTexture})}}},{key:"finalizeState",value:function(){var n=this.state,e=n.patternTexture,t=n.emptyTexture;null==e||e.delete(),null==t||t.delete()}},{key:"loadPatternAtlas",value:(t=on()(tn.a.mark((function n(e){var t,r,i,o,a;return tn.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.fillPatternAtlas,i=e.fetch,null===(t=this.state.patternTexture)||void 0===t||t.delete(),this.setState({patternTexture:null}),"string"!=typeof(o=r)){n.next=8;break}return n.next=7,i(o,{propName:"fillPatternAtlas",layer:this});case 7:o=n.sent;case 8:a=o instanceof O.Texture2D?o:new O.Texture2D(this.context.gl,{data:o,parameters:ln}),this.setState({patternTexture:a});case 10:case"end":return n.stop()}}),n,this)}))),function(n){return t.apply(this,arguments)})},{key:"loadPatternMapping",value:(e=on()(tn.a.mark((function n(e){var t,r,i;return tn.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=e.fillPatternMapping,r=e.fetch,this.setState({patternMapping:null}),"string"!=typeof(i=t)){n.next=7;break}return n.next=6,r(i,{propName:"fillPatternMapping",layer:this});case 6:i=n.sent;case 7:this.setState({patternMapping:i}),this.getAttributeManager().invalidate("getFillPattern"),this.setNeedsUpdate();case 10:case"end":return n.stop()}}),n,this)}))),function(n){return e.apply(this,arguments)})},{key:"getPatternFrame",value:function(n){var e=this.state.patternMapping,t=e&&e[n];return t?[t.x,t.y,t.width,t.height]:[0,0,0,0]}}]),o}(p.LayerExtension);function un(n){var e=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(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}cn.extensionName="FillStyleExtension",cn.defaultProps={fillPatternEnabled:!0,fillPatternAtlas:null,fillPatternMapping:null,fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(n){return n.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}};var _n={clipBounds:[0,0,1,1]},pn="\nuniform vec4 clip_bounds;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];\n}\n",vn={name:"clip-vs",vs:pn},dn={"vs:#decl":"\nvarying float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nvarying float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},hn={name:"clip-fs",fs:pn},mn={"vs:#decl":"\nvarying vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nvarying vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"},yn=function(n){f()(t,n);var e=un(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(){var n="instancePositions"in this.getAttributeManager().attributes;return"clipByInstance"in this.props&&(n=this.props.clipByInstance),this.state.clipByInstance=n,n?{modules:[vn],inject:dn}:{modules:[hn],inject:mn}}},{key:"draw",value:function(n){var e=n.uniforms,t=this.props.clipBounds,r=void 0===t?_n.clipBounds:t;if(this.state.clipByInstance)e.clip_bounds=r;else{var i=this.projectPosition([r[0],r[1],0]),o=this.projectPosition([r[2],r[3],0]);e.clip_bounds=[Math.min(i[0],o[0]),Math.min(i[1],o[1]),Math.max(i[0],o[0]),Math.max(i[1],o[1])]}}}]),t}(p.LayerExtension);yn.extensionName="ClipExtension",yn.defaultProps=_n,t.d(e,"BrushingExtension",(function(){return m})),t.d(e,"DataFilterExtension",(function(){return D})),t.d(e,"Fp64Extension",(function(){return K})),t.d(e,"PathStyleExtension",(function(){return nn})),t.d(e,"FillStyleExtension",(function(){return cn})),t.d(e,"ClipExtension",(function(){return yn})),t.d(e,"project64",(function(){return U}))}])}));
|
|
1
|
+
!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("deck"),require("luma")):"function"==typeof define&&define.amd?define(["deck","luma"],e):"object"==typeof exports?exports.deck=e(require("deck"),require("luma")):n.deck=e(n.deck,n.luma)}(window,(function(n,e){return function(n){var e={};function t(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return n[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}return t.m=n,t.c=e,t.d=function(n,e,r){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:r})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var i in n)t.d(r,i,function(e){return n[e]}.bind(null,i));return r},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=10)}([function(e,t){e.exports=n},function(n,e){function t(e){return n.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},t(e)}n.exports=t},function(n,t){n.exports=e},function(n,e){n.exports=function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}},function(n,e){function t(n,e){for(var t=0;t<e.length;t++){var r=e[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(n,r.key,r)}}n.exports=function(n,e,r){return e&&t(n.prototype,e),r&&t(n,r),n}},function(n,e,t){var r=t(11);n.exports=function(n,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&r(n,e)}},function(n,e,t){var r=t(12),i=t(13);n.exports=function(n,e){return!e||"object"!==r(e)&&"function"!=typeof e?i(n):e}},function(n,e){n.exports=function(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}},function(n,e,t){n.exports=t(14)},function(n,e){function t(n,e,t,r,i,o,a){try{var s=n[o](a),f=s.value}catch(n){return void t(n)}s.done?e(f):Promise.resolve(f).then(r,i)}n.exports=function(n){return function(){var e=this,r=arguments;return new Promise((function(i,o){var a=n.apply(e,r);function s(n){t(a,i,o,s,f,"next",n)}function f(n){t(a,i,o,s,f,"throw",n)}s(void 0)}))}}},function(n,e,t){var r=t(15),i=globalThis.deck||{};if(!i.Layer)throw new Error("@deck.gl/core is not found");n.exports=Object.assign(i,r)},function(n,e){function t(e,r){return n.exports=t=Object.setPrototypeOf||function(n,e){return n.__proto__=e,n},t(e,r)}n.exports=t},function(n,e){function t(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?n.exports=t=function(n){return typeof n}:n.exports=t=function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},t(e)}n.exports=t},function(n,e){n.exports=function(n){if(void 0===n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}},function(n,e,t){var r=function(n){"use strict";var e=Object.prototype,t=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function s(n,e,t,r){var i=e&&e.prototype instanceof c?e:c,o=Object.create(i.prototype),a=new x(r||[]);return o._invoke=function(n,e,t){var r="suspendedStart";return function(i,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw o;return E()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var s=y(a,t);if(s){if(s===l)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=f(n,e,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}(n,t,a),o}function f(n,e,t){try{return{type:"normal",arg:n.call(e,t)}}catch(n){return{type:"throw",arg:n}}}n.wrap=s;var l={};function c(){}function u(){}function _(){}var p={};p[i]=function(){return this};var v=Object.getPrototypeOf,d=v&&v(v(T([])));d&&d!==e&&t.call(d,i)&&(p=d);var h=_.prototype=c.prototype=Object.create(p);function m(n){["next","throw","return"].forEach((function(e){n[e]=function(n){return this._invoke(e,n)}}))}function b(n){var e;this._invoke=function(r,i){function o(){return new Promise((function(e,o){!function e(r,i,o,a){var s=f(n[r],n,i);if("throw"!==s.type){var l=s.arg,c=l.value;return c&&"object"==typeof c&&t.call(c,"__await")?Promise.resolve(c.__await).then((function(n){e("next",n,o,a)}),(function(n){e("throw",n,o,a)})):Promise.resolve(c).then((function(n){l.value=n,o(l)}),(function(n){return e("throw",n,o,a)}))}a(s.arg)}(r,i,e,o)}))}return e=e?e.then(o,o):o()}}function y(n,e){var t=n.iterator[e.method];if(void 0===t){if(e.delegate=null,"throw"===e.method){if(n.iterator.return&&(e.method="return",e.arg=void 0,y(n,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var r=f(t,n.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,l;var i=r.arg;return i?i.done?(e[n.resultName]=i.value,e.next=n.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function g(n){var e={tryLoc:n[0]};1 in n&&(e.catchLoc=n[1]),2 in n&&(e.finallyLoc=n[2],e.afterLoc=n[3]),this.tryEntries.push(e)}function P(n){var e=n.completion||{};e.type="normal",delete e.arg,n.completion=e}function x(n){this.tryEntries=[{tryLoc:"root"}],n.forEach(g,this),this.reset(!0)}function T(n){if(n){var e=n[i];if(e)return e.call(n);if("function"==typeof n.next)return n;if(!isNaN(n.length)){var r=-1,o=function e(){for(;++r<n.length;)if(t.call(n,r))return e.value=n[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return o.next=o}}return{next:E}}function E(){return{value:void 0,done:!0}}return u.prototype=h.constructor=_,_.constructor=u,_[a]=u.displayName="GeneratorFunction",n.isGeneratorFunction=function(n){var e="function"==typeof n&&n.constructor;return!!e&&(e===u||"GeneratorFunction"===(e.displayName||e.name))},n.mark=function(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,_):(n.__proto__=_,a in n||(n[a]="GeneratorFunction")),n.prototype=Object.create(h),n},n.awrap=function(n){return{__await:n}},m(b.prototype),b.prototype[o]=function(){return this},n.AsyncIterator=b,n.async=function(e,t,r,i){var o=new b(s(e,t,r,i));return n.isGeneratorFunction(t)?o:o.next().then((function(n){return n.done?n.value:o.next()}))},m(h),h[a]="Generator",h[i]=function(){return this},h.toString=function(){return"[object Generator]"},n.keys=function(n){var e=[];for(var t in n)e.push(t);return e.reverse(),function t(){for(;e.length;){var r=e.pop();if(r in n)return t.value=r,t.done=!1,t}return t.done=!0,t}},n.values=T,x.prototype={constructor:x,reset:function(n){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(P),!n)for(var e in this)"t"===e.charAt(0)&&t.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var n=this.tryEntries[0].completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var e=this;function r(t,r){return a.type="throw",a.arg=n,e.next=t,r&&(e.method="next",e.arg=void 0),!!r}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],a=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=t.call(o,"catchLoc"),f=t.call(o,"finallyLoc");if(s&&f){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(n,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&t.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===n||"continue"===n)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=n,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,l):this.complete(a)},complete:function(n,e){if("throw"===n.type)throw n.arg;return"break"===n.type||"continue"===n.type?this.next=n.arg:"return"===n.type?(this.rval=this.arg=n.arg,this.method="return",this.next="end"):"normal"===n.type&&e&&(this.next=e),l},finish:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===n)return this.complete(t.completion,t.afterLoc),P(t),l}},catch:function(n){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===n){var r=t.completion;if("throw"===r.type){var i=r.arg;P(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(n,e,t){return this.delegate={iterator:T(n),resultName:e,nextLoc:t},"next"===this.method&&(this.arg=void 0),l}},n}(n.exports);try{regeneratorRuntime=r}catch(n){Function("r","regeneratorRuntime = r")(r)}},function(n,e,t){"use strict";t.r(e);var r=t(3),i=t.n(r),o=t(4),a=t.n(o),s=t(5),f=t.n(s),l=t(6),c=t.n(l),u=t(1),_=t.n(u),p=t(0),v={source:0,target:1,custom:2,source_target:3},d={name:"brushing",dependencies:[p.project],vs:"\n uniform bool brushing_enabled;\n uniform int brushing_target;\n uniform vec2 brushing_mousePos;\n uniform float brushing_radius;\n\n #ifdef NON_INSTANCED_MODEL\n attribute vec2 brushingTargets;\n #else\n attribute vec2 instanceBrushingTargets;\n #endif\n\n varying float brushing_isVisible;\n\n bool brushing_isPointInRange(vec2 position) {\n if (!brushing_enabled) {\n return true;\n }\n vec2 source_commonspace = project_position(position);\n vec2 target_commonspace = project_position(brushing_mousePos);\n float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);\n\n return distance <= brushing_radius;\n }\n\n bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {\n return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);\n }\n\n void brushing_setVisible(bool visible) {\n brushing_isVisible = float(visible);\n }\n",fs:"\n uniform bool brushing_enabled;\n varying float brushing_isVisible;\n",inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n vec2 brushingTarget;\n vec2 brushingSource;\n if (brushing_target == 3) {\n brushingTarget = geometry.worldPositionAlt.xy;\n brushingSource = geometry.worldPosition.xy;\n } else if (brushing_target == 0) {\n brushingTarget = geometry.worldPosition.xy;\n } else if (brushing_target == 1) {\n brushingTarget = geometry.worldPositionAlt.xy;\n } else {\n #ifdef NON_INSTANCED_MODEL\n brushingTarget = brushingTargets;\n #else\n brushingTarget = instanceBrushingTargets;\n #endif\n }\n bool visible;\n if (brushing_target == 3) {\n visible = brushing_arePointsInRange(brushingSource, brushingTarget);\n } else {\n visible = brushing_isPointInRange(brushingTarget);\n }\n brushing_setVisible(visible);\n ","fs:DECKGL_FILTER_COLOR":"\n if (brushing_enabled && brushing_isVisible < 0.5) {\n discard;\n }\n "},getUniforms:function(n){if(!n||!n.viewport)return{};var e=n.brushingEnabled,t=void 0===e||e,r=n.brushingRadius,i=void 0===r?1e4:r,o=n.brushingTarget,a=void 0===o?"source":o,s=n.mousePosition,f=n.viewport;return{brushing_enabled:Boolean(t&&s&&f.containsPixel(s)),brushing_radius:i,brushing_target:v[a]||0,brushing_mousePos:s?f.unproject([s.x-f.x,s.y-f.y]):[0,0]}}};function h(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var m=function(n){f()(t,n);var e=h(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(n){return{modules:[d]}}},{key:"initializeState",value:function(n,e){var t=this,r=this.getAttributeManager();r&&r.add({brushingTargets:{size:2,accessor:"getBrushingTarget",update:!this.props.getBrushingTarget&&e.useConstantTargetPositions,shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),e.onMouseMove=function(){t.getCurrentLayer().setNeedsRedraw()},this.context.deck&&this.context.deck.eventManager.on({pointermove:e.onMouseMove,pointerleave:e.onMouseMove})}},{key:"finalizeState",value:function(n){this.context.deck&&this.context.deck.eventManager.off({pointermove:n.onMouseMove,pointerleave:n.onMouseMove})}},{key:"useConstantTargetPositions",value:function(n){n.constant=!0,n.value=new Float32Array(2)}}]),t}(p.LayerExtension);m.extensionName="BrushingExtension",m.defaultProps={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4};var b=t(7),y=t.n(b),g="\nuniform DATAFILTER_TYPE filter_min;\nuniform DATAFILTER_TYPE filter_softMin;\nuniform DATAFILTER_TYPE filter_softMax;\nuniform DATAFILTER_TYPE filter_max;\nuniform bool filter_useSoftMargin;\nuniform bool filter_enabled;\nuniform bool filter_transformSize;\n\n#ifdef NON_INSTANCED_MODEL\n #define DATAFILTER_ATTRIB filterValues\n #define DATAFILTER_ATTRIB_64LOW filterValues64Low\n#else\n #define DATAFILTER_ATTRIB instanceFilterValues\n #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low\n#endif\n\nattribute DATAFILTER_TYPE DATAFILTER_ATTRIB;\n#ifdef DATAFILTER_DOUBLE\n attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;\n\n uniform DATAFILTER_TYPE filter_min64High;\n uniform DATAFILTER_TYPE filter_max64High;\n#endif\n\nvarying float dataFilter_value;\n\nfloat dataFilter_reduceValue(float value) {\n return value;\n}\nfloat dataFilter_reduceValue(vec2 value) {\n return min(value.x, value.y);\n}\nfloat dataFilter_reduceValue(vec3 value) {\n return min(min(value.x, value.y), value.z);\n}\nfloat dataFilter_reduceValue(vec4 value) {\n return min(min(value.x, value.y), min(value.z, value.w));\n}\nvoid dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {\n if (filter_enabled) {\n if (filter_useSoftMargin) {\n dataFilter_value = dataFilter_reduceValue(\n smoothstep(filter_min, filter_softMin, valueFromMin) *\n (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))\n );\n } else {\n dataFilter_value = dataFilter_reduceValue(\n step(filter_min, valueFromMin) * step(valueFromMax, filter_max)\n );\n }\n } else {\n dataFilter_value = 1.0;\n }\n}\n",P="\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n",x=function(n){if(!n||!n.extensions)return{};var e=n.filterRange,t=void 0===e?[-1,1]:e,r=n.filterEnabled,i=void 0===r||r,o=n.filterTransformSize,a=void 0===o||o,s=n.filterTransformColor,f=void 0===s||s,l=n.filterSoftRange||t,c=Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:l[0],filter_softMax:l[1],filter_max:t[1]}:{filter_min:t.map((function(n){return n[0]})),filter_softMin:l.map((function(n){return n[0]})),filter_softMax:l.map((function(n){return n[1]})),filter_max:t.map((function(n){return n[1]}))};return c.filter_enabled=i,c.filter_useSoftMargin=Boolean(n.filterSoftRange),c.filter_transformSize=i&&a,c.filter_transformColor=i&&f,c},T={"vs:#main-start":"\n #ifdef DATAFILTER_DOUBLE\n dataFilter_setValue(\n DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,\n DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW\n );\n #else\n dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);\n #endif\n ","vs:DECKGL_FILTER_SIZE":"\n if (filter_transformSize) {\n size = size * dataFilter_value;\n }\n ","fs:DECKGL_FILTER_COLOR":"\n if (dataFilter_value == 0.0) discard;\n if (filter_transformColor) {\n color.a *= dataFilter_value;\n }\n "},E={name:"data-filter",vs:g,fs:P,inject:T,getUniforms:x},O={name:"data-filter-fp64",vs:g,fs:P,inject:T,getUniforms:function(n){if(!n||!n.extensions)return{};var e=x(n);if(Number.isFinite(e.filter_min)){var t=Math.fround(e.filter_min);e.filter_min-=t,e.filter_softMin-=t,e.filter_min64High=t;var r=Math.fround(e.filter_max);e.filter_max-=r,e.filter_softMax-=r,e.filter_max64High=r}else{var i=e.filter_min.map(Math.fround);e.filter_min=e.filter_min.map((function(n,e){return n-i[e]})),e.filter_softMin=e.filter_softMin.map((function(n,e){return n-i[e]})),e.filter_min64High=i;var o=e.filter_max.map(Math.fround);e.filter_max=e.filter_max.map((function(n,e){return n-o[e]})),e.filter_softMax=e.filter_softMax.map((function(n,e){return n-o[e]})),e.filter_max64High=o}return e}},A=t(2);function F(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function L(n,e,t){return e.defines.NON_INSTANCED_MODEL=1,t&&(e.defines.FLOAT_TARGET=1),new A.Model(n,function(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?F(Object(t),!0).forEach((function(e){y()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:"#define SHADER_NAME data-filter-vertex-shader\n\n#ifdef FLOAT_TARGET\n attribute float filterIndices;\n attribute float filterPrevIndices;\n#else\n attribute vec2 filterIndices;\n attribute vec2 filterPrevIndices;\n#endif\n\nvarying vec4 vColor;\nconst float component = 1.0 / 255.0;\n\nvoid main() {\n #ifdef FLOAT_TARGET\n dataFilter_value *= float(filterIndices != filterPrevIndices);\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n vColor = vec4(0.0, 0.0, 0.0, 1.0);\n #else\n // Float texture is not supported: pack result into 4 channels x 256 px x 64px\n dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);\n float col = filterIndices.x;\n float row = filterIndices.y * 4.0;\n float channel = floor(row);\n row = fract(row);\n vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));\n gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);\n #endif\n gl_PointSize = 1.0;\n}\n",fs:"#define SHADER_NAME data-filter-fragment-shader\nprecision highp float;\n\nvarying vec4 vColor;\n\nvoid main() {\n if (dataFilter_value < 0.5) {\n discard;\n }\n gl_FragColor = vColor;\n}\n"},e))}var I={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function R(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function S(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?R(Object(t),!0).forEach((function(e){y()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):R(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function N(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var w={1:"float",2:"vec2",3:"vec3",4:"vec4"},j=function(n){f()(t,n);var e=N(t);function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.filterSize,o=void 0===r?1:r,a=n.fp64,s=void 0!==a&&a,f=n.countItems,l=void 0!==f&&f;if(i()(this,t),!w[o])throw new Error("filterSize out of range");return e.call(this,{filterSize:o,fp64:s,countItems:l})}return a()(t,[{key:"getShaders",value:function(n){var e=n.opts,t=e.filterSize,r=e.fp64;return{modules:[r?O:E],defines:{DATAFILTER_TYPE:w[t],DATAFILTER_DOUBLE:Boolean(r)}}}},{key:"initializeState",value:function(n,e){var t=this.getAttributeManager();t&&t.add({filterValues:{size:e.opts.filterSize,type:e.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var r=this.context.gl;if(t&&e.opts.countItems){var i=function(n){return n.getExtension("EXT_float_blend")&&(n.getExtension("EXT_color_buffer_float")||n.getExtension("WEBGL_color_buffer_float"))}(r);t.add({filterIndices:{size:i?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(n,e){var t=e.index,r=n&&n.__source?n.__source.index:t;return i?(r+1)%255:[(r+1)%255,Math.floor(r/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var o=function(n,e){return e?new A.Framebuffer(n,{width:1,height:1,attachments:y()({},36064,new A.Texture2D(n,{format:Object(A.isWebGL2)(n)?34836:6408,type:5126,mipmaps:!1}))}):new A.Framebuffer(n,{width:256,height:64,depth:!1})}(r,i),a=L(r,e.getShaders(e),i);this.setState({filterFBO:o,filterModel:a})}}},{key:"updateState",value:function(n){var e=n.props,t=n.oldProps;if(this.state.filterModel){var r=this.getAttributeManager().attributes.filterValues.needsUpdate()||e.filterEnabled!==t.filterEnabled||e.filterRange!==t.filterRange||e.filterSoftRange!==t.filterSoftRange;r&&this.setState({filterNeedsUpdate:r})}}},{key:"draw",value:function(n,e){var t=this.state,r=t.filterFBO,i=t.filterModel,o=t.filterNeedsUpdate,a=this.props.onFilteredItemsChange;if(o&&a&&i){var s=this.getAttributeManager().attributes,f=s.filterValues,l=s.filterIndices;i.setVertexCount(this.getNumInstances());var c=this.context.gl;Object(A.clear)(c,{framebuffer:r,color:[0,0,0,0]}),i.updateModuleSettings(n.moduleParameters).setAttributes(S(S({},f.getShaderAttributes()),l&&l.getShaderAttributes())).draw({framebuffer:r,parameters:S(S({},I),{},{viewport:[0,0,r.width,r.height]})});for(var u=Object(A.readPixelsToArray)(r),_=0,p=0;p<u.length;p++)_+=u[p];a({id:this.id,count:_}),this.state.filterNeedsUpdate=!1}}},{key:"finalizeState",value:function(){var n=this.state,e=n.filterFBO,t=n.filterModel;e&&(e.color.delete(),e.delete(),t.delete())}}]),t}(p.LayerExtension);function M(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=Math.fround(n),i=n-r;return e[t]=r,e[t+1]=i,e}function B(n){return n-Math.fround(n)}function D(n){for(var e=new Float32Array(32),t=0;t<4;++t)for(var r=0;r<4;++r){var i=4*t+r;M(n[4*r+t],e,2*i)}return e}j.extensionName="DataFilterExtension",j.defaultProps={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,compare:!1},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0};var k={ONE:1};var C={name:"fp64",vs:"const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);\nconst vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);\nconst vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);\nconst vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);\nconst vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);\nconst vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);\nconst vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);\nconst vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);\nconst vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);\nconst vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);\n\nconst vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);\nconst vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);\nconst vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);\nconst vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);\n\nconst vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);\nconst vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);\nconst vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);\nconst vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);\n\nconst vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09);\nconst vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09);\nconst vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10);\nconst vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11);\nconst vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12);\nconst vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13);\nconst vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14);\nconst vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15);\n\nfloat nint(float d) {\n if (d == floor(d)) return d;\n return floor(d + 0.5);\n}\n\nvec2 nint_fp64(vec2 a) {\n float hi = nint(a.x);\n float lo;\n vec2 tmp;\n if (hi == a.x) {\n lo = nint(a.y);\n tmp = quickTwoSum(hi, lo);\n } else {\n lo = 0.0;\n if (abs(hi - a.x) == 0.5 && a.y < 0.0) {\n hi -= 1.0;\n }\n tmp = vec2(hi, lo);\n }\n return tmp;\n}\n\nvec2 exp_fp64(vec2 a) {\n\n const int k_power = 4;\n const float k = 16.0;\n\n const float inv_k = 1.0 / k;\n\n if (a.x <= -88.0) return vec2(0.0, 0.0);\n if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);\n if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);\n if (a.x == 1.0 && a.y == 0.0) return E_FP64;\n\n float m = floor(a.x / LOG2_FP64.x + 0.5);\n vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;\n vec2 s, t, p;\n\n p = mul_fp64(r, r);\n s = sum_fp64(r, p * 0.5);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);\n\n\n\n\n\n\n s = sum_fp64(s, t);\n for (int i = 0; i < k_power; i++) {\n s = sum_fp64(s * 2.0, mul_fp64(s, s));\n }\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = sum_fp64(s, vec2(ONE, 0.0));\n#else\n s = sum_fp64(s, vec2(1.0, 0.0));\n#endif\n\n return s * pow(2.0, m);\n}\n\nvec2 log_fp64(vec2 a)\n{\n if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n vec2 x = vec2(log(a.x), 0.0);\n vec2 s;\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = vec2(ONE, 0.0);\n#else\n s = vec2(1.0, 0.0);\n#endif\n\n x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);\n return x;\n}\n\nvec2 sin_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n s = a;\n r = a;\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvec2 cos_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n r = x;\n s = sum_fp64(vec2(1.0, 0.0), r * 0.5);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);\n s = sum_fp64(s, t);\n\n\n\n\n\n\n return s;\n}\n\nvoid sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {\n if (a.x == 0.0 && a.y == 0.0) {\n sin_t = vec2(0.0, 0.0);\n cos_t = vec2(1.0, 0.0);\n }\n\n sin_t = sin_taylor_fp64(a);\n cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));\n}\n\nvec2 sin_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return sin_taylor_fp64(t);\n } else if (j == 1) {\n return cos_taylor_fp64(t);\n } else if (j == -1) {\n return -cos_taylor_fp64(t);\n } else {\n return -sin_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n }\n } else {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 cos_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return cos_taylor_fp64(t);\n } else if (j == 1) {\n return -sin_taylor_fp64(t);\n } else if (j == -1) {\n return sin_taylor_fp64(t);\n } else {\n return -cos_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 tan_fp64(vec2 a) {\n vec2 sin_a;\n vec2 cos_a;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n vec2 sin_t, cos_t;\n vec2 s, c;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n if (k > 0) {\n s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return div_fp64(sin_a, cos_a);\n}\n\nvec2 radians_fp64(vec2 degree) {\n return mul_fp64(degree, PI_180_FP64);\n}\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\nvoid vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sum_fp64(a[0], b[0]);\n out_val[1] = sum_fp64(a[1], b[1]);\n}\n\nvoid vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sub_fp64(a[0], b[0]);\n out_val[1] = sub_fp64(a[1], b[1]);\n}\n\nvoid vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = mul_fp64(a[0], b[0]);\n out_val[1] = mul_fp64(a[1], b[1]);\n}\n\nvoid vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = div_fp64(a[0], b[0]);\n out_val[1] = div_fp64(a[1], b[1]);\n}\n\nvoid vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {\n vec2 range[2];\n vec2_sub_fp64(y, x, range);\n vec2 portion[2];\n portion[0] = range[0] * a;\n portion[1] = range[1] * a;\n vec2_sum_fp64(x, portion, out_val);\n}\n\nvec2 vec2_length_fp64(vec2 x[2]) {\n return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));\n}\n\nvoid vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {\n vec2 length = vec2_length_fp64(x);\n vec2 length_vec2[2];\n length_vec2[0] = length;\n length_vec2[1] = length;\n\n vec2_div_fp64(x, length_vec2, out_val);\n}\n\nvec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {\n vec2 diff[2];\n vec2_sub_fp64(x, y, diff);\n return vec2_length_fp64(diff);\n}\n\nvec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {\n vec2 v[2];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n\n return sum_fp64(v[0], v[1]);\n}\nvoid vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvec2 vec3_length_fp64(vec2 x[3]) {\n return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),\n mul_fp64(x[2], x[2])));\n}\n\nvec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {\n vec2 diff[3];\n vec3_sub_fp64(x, y, diff);\n return vec3_length_fp64(diff);\n}\nvoid vec4_fp64(vec4 a, out vec2 out_val[4]) {\n out_val[0].x = a[0];\n out_val[0].y = 0.0;\n\n out_val[1].x = a[1];\n out_val[1].y = 0.0;\n\n out_val[2].x = a[2];\n out_val[2].y = 0.0;\n\n out_val[3].x = a[3];\n out_val[3].y = 0.0;\n}\n\nvoid vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {\n out_val[0] = mul_fp64(a[0], b);\n out_val[1] = mul_fp64(a[1], b);\n out_val[2] = mul_fp64(a[2], b);\n out_val[3] = mul_fp64(a[3], b);\n}\n\nvoid vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {\n for (int i = 0; i < 4; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {\n vec2 v[4];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n v[2] = mul_fp64(a[2], b[2]);\n v[3] = mul_fp64(a[3], b[3]);\n\n out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));\n}\n\nvoid mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {\n vec2 tmp[4];\n\n for (int i = 0; i < 4; i++)\n {\n for (int j = 0; j < 4; j++)\n {\n tmp[j] = b[j + i * 4];\n }\n vec4_dot_fp64(a, tmp, out_val[i]);\n }\n}\n",fs:null,dependencies:[{name:"fp64-arithmetic",vs:"uniform float ONE;\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * ONE - (t - a);\n float a_lo = a * ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * ONE;\n float err = b - (sum - a) * ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * ONE - a) * ONE;\n float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *\n a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n",fs:null,getUniforms:function(){return k},fp64ify:M,fp64LowPart:B,fp64ifyMatrix4:D}],fp64ify:M,fp64LowPart:B,fp64ifyMatrix4:D},V=C.fp64ify,z=C.fp64ifyMatrix4,U={name:"project64",dependencies:[p.project,C],vs:"\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform vec2 project_uViewProjectionMatrixFP64[16];\nvoid mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {\n\n#if defined(NVIDIA_FP64_WORKAROUND)\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);\n#else\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);\n#endif\n out_val[1] = sum_fp64(PI_FP64,\n log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));\n return;\n}\n\nvoid project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {\n vec2 pos_fp64[2];\n mercatorProject_fp64(position_fp64, pos_fp64);\n out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);\n out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);\n\n return;\n}\n\nvoid project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {\n vec4 position64xy = vec4(\n position.x, position64xyLow.x,\n position.y, position64xyLow.y);\n\n project_position_fp64(position64xy, out_val);\n}\n\nvec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {\n vec2 vertex_pos_clipspace[4];\n mat4_vec4_mul_fp64(project_uViewProjectionMatrixFP64, vertex_pos_modelspace,\n vertex_pos_clipspace);\n return vec4(\n vertex_pos_clipspace[0].x,\n vertex_pos_clipspace[1].x,\n vertex_pos_clipspace[2].x,\n vertex_pos_clipspace[3].x\n );\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition\n) {\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n vec2 projectedPosition64xy[2];\n project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);\n\n vec2 commonPosition64[4];\n commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);\n commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);\n commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));\n commonPosition64[3] = vec2(1.0, 0.0);\n\n commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);\n\n return project_common_position_to_clipspace_fp64(commonPosition64);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(\n position, position64xyLow, offset, commonPosition\n );\n}\n",getUniforms:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:W;if(n.viewport){var e=n.viewport,t=e.viewProjectionMatrix,r=e.scale;return G({viewProjectionMatrix:t,scale:r})}return{}}},W={},G=Object(p._memoize)((function(n){var e=n.viewProjectionMatrix,t=n.scale,r=z(e),i=V(t);return{project_uViewProjectionMatrixFP64:r,project64_uViewProjectionMatrix:r,project64_uScale:i}}));function q(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var K=function(n){f()(t,n);var e=q(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(n){var e=this.props.coordinateSystem;if(e!==p.COORDINATE_SYSTEM.LNGLAT&&e!==p.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[U]}}}]),t}(p.LayerExtension);K.extensionName="Fp64Extension";var H={inject:{"vs:#decl":"\nattribute vec2 instanceDashArrays;\nattribute float instanceDashOffsets;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n","vs:#main-end":"\nvDashArray = instanceDashArrays;\nvDashOffset = instanceDashOffsets / width.x;\n","fs:#decl":"\nuniform float dashAlignMode;\nuniform float capType;\nuniform bool dashGapPickable;\nvarying vec2 vDashArray;\nvarying float vDashOffset;\n\nfloat round(float x) {\n return floor(x + 0.5);\n}\n","fs:#main-start":"\n float solidLength = vDashArray.x;\n float gapLength = vDashArray.y;\n float unitLength = solidLength + gapLength;\n\n float offset;\n\n if (unitLength > 0.0) {\n if (dashAlignMode == 0.0) {\n offset = vDashOffset;\n } else {\n unitLength = vPathLength / round(vPathLength / unitLength);\n offset = solidLength / 2.0;\n }\n\n float unitOffset = mod(clamp(vPathPosition.y, 0.0, vPathLength) + offset, unitLength);\n\n if (gapLength > 0.0 && unitOffset > solidLength) {\n if (capType <= 0.5) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n } else {\n float distToEnd = length(vec2(\n min(unitOffset - solidLength, unitLength - unitOffset),\n vPathPosition.x\n ));\n if (distToEnd > 1.0) {\n if (!(dashGapPickable && picking_uActive)) {\n discard;\n }\n }\n }\n }\n }\n"}},Y={inject:{"vs:#decl":"\nattribute float instanceOffsets;\n","vs:DECKGL_FILTER_SIZE":"\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n size *= offsetWidth;\n","vCornerOffset = offsetVec;":"\n float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;\n vec2 offsetCenter = -instanceOffsets * (isCap ? perp : miterVec * miterSize) * 2.0;\n vCornerOffset = vCornerOffset * offsetWidth - offsetCenter;\n","fs:#main-start":"\n float isInside;\n isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);\n if (isInside == 0.0) {\n discard;\n }\n"}},X="undefined"!=typeof Float32Array?Float32Array:Array;Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var n=0,e=arguments.length;e--;)n+=arguments[e]*arguments[e];return Math.sqrt(n)});var J,Z,Q=function(n,e){var t=e[0]-n[0],r=e[1]-n[1],i=e[2]-n[2];return Math.hypot(t,r,i)};J=new X(3),X!=Float32Array&&(J[0]=0,J[1]=0,J[2]=0),Z=J;function $(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var nn=function(n){f()(t,n);var e=$(t);function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.dash,o=void 0!==r&&r,a=n.offset,s=void 0!==a&&a,f=n.highPrecisionDash,l=void 0!==f&&f;return i()(this,t),e.call(this,{dash:o||l,offset:s,highPrecisionDash:l})}return a()(t,[{key:"isEnabled",value:function(n){return n.state.pathTesselator}},{key:"getShaders",value:function(n){if(!n.isEnabled(this))return null;var e={};return n.opts.dash&&(e=Object(p._mergeShaders)(e,H)),n.opts.offset&&(e=Object(p._mergeShaders)(e,Y)),e}},{key:"initializeState",value:function(n,e){var t=this.getAttributeManager();t&&e.isEnabled(this)&&(e.enabled=!0,e.opts.dash&&t.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"}}),e.opts.highPrecisionDash&&t.addInstanced({instanceDashOffsets:{size:1,accessor:"getPath",transform:e.getDashOffsets.bind(this)}}),e.opts.offset&&t.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}},{key:"updateState",value:function(n,e){if(e.isEnabled(this)){var t={};e.opts.dash&&(t.dashAlignMode=this.props.dashJustified?1:0,t.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model.setUniforms(t)}}},{key:"getDashOffsets",value:function(n){for(var e,t,r=[0],i="XY"===this.props.positionFormat?2:3,o=Array.isArray(n[0]),a=o?n.length:n.length/i,s=0;s<a-1;s++)e=o?n[s]:n.slice(s*i,s*i+i),e=this.projectPosition(e),s>0&&(r[s]=r[s-1]+Q(t,e)),t=e;return r}}]),t}(p.LayerExtension);nn.extensionName="PathStyleExtension",nn.defaultProps={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1};var en=t(9),tn=t.n(en),rn=t(8),on=t.n(rn);var an,sn={name:"fill-pattern",vs:"\n#ifdef NON_INSTANCED_MODEL\n #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets\n#else\n #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames\n #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales\n #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets\n#endif\n\nattribute vec4 FILL_PATTERN_FRAME_ATTRIB;\nattribute float FILL_PATTERN_SCALE_ATTRIB;\nattribute vec2 FILL_PATTERN_OFFSET_ATTRIB;\n\nuniform bool fill_patternEnabled;\nuniform vec2 fill_patternTextureSize;\n\nvarying vec2 fill_uv;\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\n",fs:"\nuniform bool fill_patternEnabled;\nuniform bool fill_patternMask;\nuniform sampler2D fill_patternTexture;\nuniform vec2 fill_uvCoordinateOrigin;\n\nvarying vec4 fill_patternBounds;\nvarying vec3 fill_patternPlacement;\nvarying vec2 fill_uv;\n\nconst float FILL_UV_SCALE = 512.0 / 40000000.0;\n",inject:{"vs:DECKGL_FILTER_GL_POSITION":"\n fill_uv = geometry.position.xy;\n ","vs:DECKGL_FILTER_COLOR":"\n if (fill_patternEnabled) {\n fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);\n fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;\n fill_patternPlacement.z = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.w;\n }\n ","fs:DECKGL_FILTER_COLOR":"\n if (fill_patternEnabled) {\n float scale = FILL_UV_SCALE * fill_patternPlacement.z;\n vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uv, scale) / scale;\n patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);\n\n vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;\n\n vec4 patternColor = texture2D(fill_patternTexture, texCoords);\n color.a *= patternColor.a;\n if (!fill_patternMask) {\n color.rgb = patternColor.rgb;\n }\n }\n "},dependencies:[p.project],getUniforms:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;if("fillPatternTexture"in n){var t=n.fillPatternTexture;return{fill_patternTexture:t,fill_patternTextureSize:[t.width,t.height]}}if(n.viewport){var r=n.viewport,i=n.fillPatternMask,o=void 0===i||i,a=n.fillPatternEnabled,s=void 0===a||a,f=e.project_uCoordinateOrigin,l=e.project_uCoordinateSystem,c=l===p.COORDINATE_SYSTEM.CARTESIAN?f:r.projectPosition(f);return{fill_uvCoordinateOrigin:c.slice(0,2),fill_patternMask:o,fill_patternEnabled:s}}return{}}};function fn(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}var ln=(an={},y()(an,10241,9729),y()(an,10240,9729),y()(an,10242,33071),y()(an,10243,33071),an),cn=function(n){f()(o,n);var e,t,r=fn(o);function o(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=n.pattern,t=void 0!==e&&e;return i()(this,o),r.call(this,{pattern:t})}return a()(o,[{key:"isEnabled",value:function(n){return n.getAttributeManager()&&!n.state.pathTesselator}},{key:"getShaders",value:function(n){return n.isEnabled(this)?{modules:[n.opts.pattern&&sn].filter(Boolean)}:null}},{key:"initializeState",value:function(n,e){if(e.isEnabled(this)){var t=this.getAttributeManager();e.opts.pattern&&t.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:e.getPatternFrame.bind(this),shaderAttributes:{fillPatternFrames:{divisor:0},instanceFillPatternFrames:{divisor:1}}},fillPatternScales:{size:1,accessor:"getFillPatternScale",defaultValue:1,shaderAttributes:{fillPatternScales:{divisor:0},instanceFillPatternScales:{divisor:1}}},fillPatternOffsets:{size:2,accessor:"getFillPatternOffset",shaderAttributes:{fillPatternOffsets:{divisor:0},instanceFillPatternOffsets:{divisor:1}}}}),this.setState({emptyTexture:new A.Texture2D(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}}},{key:"updateState",value:function(n,e){var t=n.props,r=n.oldProps;e.isEnabled(this)&&(t.fillPatternAtlas&&t.fillPatternAtlas!==r.fillPatternAtlas&&e.loadPatternAtlas.call(this,t),t.fillPatternMapping&&t.fillPatternMapping!==r.fillPatternMapping&&e.loadPatternMapping.call(this,t))}},{key:"draw",value:function(n,e){if(e.isEnabled(this)){var t=this.state.patternTexture;this.setModuleParameters({fillPatternTexture:t||this.state.emptyTexture})}}},{key:"finalizeState",value:function(){var n=this.state,e=n.patternTexture,t=n.emptyTexture;null==e||e.delete(),null==t||t.delete()}},{key:"loadPatternAtlas",value:(t=tn()(on.a.mark((function n(e){var t,r,i,o,a;return on.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.fillPatternAtlas,i=e.fetch,null===(t=this.state.patternTexture)||void 0===t||t.delete(),this.setState({patternTexture:null}),"string"!=typeof(o=r)){n.next=8;break}return n.next=7,i(o,{propName:"fillPatternAtlas",layer:this});case 7:o=n.sent;case 8:a=o instanceof A.Texture2D?o:new A.Texture2D(this.context.gl,{data:o,parameters:ln}),this.setState({patternTexture:a});case 10:case"end":return n.stop()}}),n,this)}))),function(n){return t.apply(this,arguments)})},{key:"loadPatternMapping",value:(e=tn()(on.a.mark((function n(e){var t,r,i;return on.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=e.fillPatternMapping,r=e.fetch,this.setState({patternMapping:null}),"string"!=typeof(i=t)){n.next=7;break}return n.next=6,r(i,{propName:"fillPatternMapping",layer:this});case 6:i=n.sent;case 7:this.setState({patternMapping:i}),this.getAttributeManager().invalidate("getFillPattern"),this.setNeedsUpdate();case 10:case"end":return n.stop()}}),n,this)}))),function(n){return e.apply(this,arguments)})},{key:"getPatternFrame",value:function(n){var e=this.state.patternMapping,t=e&&e[n];return t?[t.x,t.y,t.width,t.height]:[0,0,0,0]}}]),o}(p.LayerExtension);function un(n){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(n){return!1}}();return function(){var t,r=_()(n);if(e){var i=_()(this).constructor;t=Reflect.construct(r,arguments,i)}else t=r.apply(this,arguments);return c()(this,t)}}cn.extensionName="FillStyleExtension",cn.defaultProps={fillPatternEnabled:!0,fillPatternAtlas:null,fillPatternMapping:null,fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(n){return n.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}};var _n={clipBounds:[0,0,1,1]},pn="\nuniform vec4 clip_bounds;\n\nbool clip_isInBounds(vec2 position) {\n return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];\n}\n",vn={name:"clip-vs",vs:pn},dn={"vs:#decl":"\nvarying float clip_isVisible;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));\n","fs:#decl":"\nvarying float clip_isVisible;\n","fs:DECKGL_FILTER_COLOR":"\n if (clip_isVisible < 0.5) discard;\n"},hn={name:"clip-fs",fs:pn},mn={"vs:#decl":"\nvarying vec2 clip_commonPosition;\n","vs:DECKGL_FILTER_GL_POSITION":"\n clip_commonPosition = geometry.position.xy;\n","fs:#decl":"\nvarying vec2 clip_commonPosition;\n","fs:DECKGL_FILTER_COLOR":"\n if (!clip_isInBounds(clip_commonPosition)) discard;\n"},bn=function(n){f()(t,n);var e=un(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(){var n="instancePositions"in this.getAttributeManager().attributes;return"clipByInstance"in this.props&&(n=this.props.clipByInstance),this.state.clipByInstance=n,n?{modules:[vn],inject:dn}:{modules:[hn],inject:mn}}},{key:"draw",value:function(n){var e=n.uniforms,t=this.props.clipBounds,r=void 0===t?_n.clipBounds:t;if(this.state.clipByInstance)e.clip_bounds=r;else{var i=this.projectPosition([r[0],r[1],0]),o=this.projectPosition([r[2],r[3],0]);e.clip_bounds=[Math.min(i[0],o[0]),Math.min(i[1],o[1]),Math.max(i[0],o[0]),Math.max(i[1],o[1])]}}}]),t}(p.LayerExtension);bn.extensionName="ClipExtension",bn.defaultProps=_n,t.d(e,"BrushingExtension",(function(){return m})),t.d(e,"DataFilterExtension",(function(){return j})),t.d(e,"Fp64Extension",(function(){return K})),t.d(e,"PathStyleExtension",(function(){return nn})),t.d(e,"FillStyleExtension",(function(){return cn})),t.d(e,"ClipExtension",(function(){return bn})),t.d(e,"project64",(function(){return U}))}])}));
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@deck.gl/extensions",
|
|
3
3
|
"description": "Plug-and-play functionalities for deck.gl layers",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "8.
|
|
5
|
+
"version": "8.7.0-alpha.11",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"@deck.gl/core": "^8.0.0",
|
|
36
36
|
"gl-matrix": "^3.0.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "da1a3ab7327e4605280294c0862c4b67ab9aa877"
|
|
39
39
|
}
|
package/src/clip/clip.js
CHANGED
|
@@ -58,7 +58,7 @@ varying float clip_isVisible;
|
|
|
58
58
|
|
|
59
59
|
/*
|
|
60
60
|
* The fragment-shader version clips pixels at the bounds
|
|
61
|
-
* e.g. PolygonLayer - show the part of the polygon that intersect with the bounds
|
|
61
|
+
* e.g. PolygonLayer - show the part of the polygon that intersect with the bounds
|
|
62
62
|
*/
|
|
63
63
|
const shaderModuleFs = {
|
|
64
64
|
name: 'clip-fs',
|
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
import {Model, Texture2D, Framebuffer, isWebGL2} from '@luma.gl/core';
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
3
|
-
|
|
4
|
-
const AGGREGATE_VS = `\
|
|
5
|
-
#define SHADER_NAME data-filter-vertex-shader
|
|
6
|
-
|
|
7
|
-
#ifdef FLOAT_TARGET
|
|
8
|
-
attribute float filterIndices;
|
|
9
|
-
attribute float filterPrevIndices;
|
|
10
|
-
#else
|
|
11
|
-
attribute vec2 filterIndices;
|
|
12
|
-
attribute vec2 filterPrevIndices;
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
|
-
varying vec4 vColor;
|
|
16
|
-
const float component = 1.0 / 255.0;
|
|
17
|
-
|
|
18
|
-
void main() {
|
|
19
|
-
#ifdef FLOAT_TARGET
|
|
20
|
-
dataFilter_value *= float(filterIndices != filterPrevIndices);
|
|
21
|
-
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
|
|
22
|
-
vColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
23
|
-
#else
|
|
24
|
-
// Float texture is not supported: pack result into 4 channels x 256 px x 64px
|
|
25
|
-
dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
|
|
26
|
-
float col = filterIndices.x;
|
|
27
|
-
float row = filterIndices.y * 4.0;
|
|
28
|
-
float channel = floor(row);
|
|
29
|
-
row = fract(row);
|
|
30
|
-
vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
|
|
31
|
-
gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
|
|
32
|
-
#endif
|
|
33
|
-
gl_PointSize = 1.0;
|
|
34
|
-
}
|
|
35
|
-
`;
|
|
36
|
-
|
|
37
|
-
const AGGREGATE_FS = `\
|
|
38
|
-
#define SHADER_NAME data-filter-fragment-shader
|
|
39
|
-
precision highp float;
|
|
40
|
-
|
|
41
|
-
varying vec4 vColor;
|
|
42
|
-
|
|
43
|
-
void main() {
|
|
44
|
-
if (dataFilter_value < 0.5) {
|
|
45
|
-
discard;
|
|
46
|
-
}
|
|
47
|
-
gl_FragColor = vColor;
|
|
48
|
-
}
|
|
49
|
-
`;
|
|
50
|
-
|
|
51
|
-
export function supportsFloatTarget(gl) {
|
|
52
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#Support_for_float_textures_doesnt_mean_you_can_render_into_them!
|
|
53
|
-
return (
|
|
54
|
-
gl.getExtension('EXT_float_blend') &&
|
|
55
|
-
// WebGL 2
|
|
56
|
-
(gl.getExtension('EXT_color_buffer_float') ||
|
|
57
|
-
// WebGL 1
|
|
58
|
-
gl.getExtension('WEBGL_color_buffer_float'))
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// A 1x1 framebuffer object that encodes the total count of filtered items
|
|
63
|
-
export function getFramebuffer(gl, useFloatTarget) {
|
|
64
|
-
if (useFloatTarget) {
|
|
65
|
-
return new Framebuffer(gl, {
|
|
66
|
-
width: 1,
|
|
67
|
-
height: 1,
|
|
68
|
-
attachments: {
|
|
69
|
-
[GL.COLOR_ATTACHMENT0]: new Texture2D(gl, {
|
|
70
|
-
format: isWebGL2(gl) ? GL.RGBA32F : GL.RGBA,
|
|
71
|
-
type: GL.FLOAT,
|
|
72
|
-
mipmaps: false
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
return new Framebuffer(gl, {
|
|
78
|
-
width: 256,
|
|
79
|
-
height: 64,
|
|
80
|
-
depth: false
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
// Increments the counter based on dataFilter_value
|
|
85
|
-
export function getModel(gl, shaderOptions, useFloatTarget) {
|
|
86
|
-
shaderOptions.defines.NON_INSTANCED_MODEL = 1;
|
|
87
|
-
if (useFloatTarget) {
|
|
88
|
-
shaderOptions.defines.FLOAT_TARGET = 1;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return new Model(gl, {
|
|
92
|
-
id: 'data-filter-aggregation-model',
|
|
93
|
-
vertexCount: 1,
|
|
94
|
-
isInstanced: false,
|
|
95
|
-
drawMode: GL.POINTS,
|
|
96
|
-
vs: AGGREGATE_VS,
|
|
97
|
-
fs: AGGREGATE_FS,
|
|
98
|
-
...shaderOptions
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export const parameters = {
|
|
103
|
-
blend: true,
|
|
104
|
-
blendFunc: [GL.ONE, GL.ONE, GL.ONE, GL.ONE],
|
|
105
|
-
blendEquation: [GL.FUNC_ADD, GL.FUNC_ADD],
|
|
106
|
-
depthTest: false
|
|
107
|
-
};
|
|
1
|
+
import {Model, Texture2D, Framebuffer, isWebGL2} from '@luma.gl/core';
|
|
2
|
+
import GL from '@luma.gl/constants';
|
|
3
|
+
|
|
4
|
+
const AGGREGATE_VS = `\
|
|
5
|
+
#define SHADER_NAME data-filter-vertex-shader
|
|
6
|
+
|
|
7
|
+
#ifdef FLOAT_TARGET
|
|
8
|
+
attribute float filterIndices;
|
|
9
|
+
attribute float filterPrevIndices;
|
|
10
|
+
#else
|
|
11
|
+
attribute vec2 filterIndices;
|
|
12
|
+
attribute vec2 filterPrevIndices;
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
varying vec4 vColor;
|
|
16
|
+
const float component = 1.0 / 255.0;
|
|
17
|
+
|
|
18
|
+
void main() {
|
|
19
|
+
#ifdef FLOAT_TARGET
|
|
20
|
+
dataFilter_value *= float(filterIndices != filterPrevIndices);
|
|
21
|
+
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
|
|
22
|
+
vColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
23
|
+
#else
|
|
24
|
+
// Float texture is not supported: pack result into 4 channels x 256 px x 64px
|
|
25
|
+
dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
|
|
26
|
+
float col = filterIndices.x;
|
|
27
|
+
float row = filterIndices.y * 4.0;
|
|
28
|
+
float channel = floor(row);
|
|
29
|
+
row = fract(row);
|
|
30
|
+
vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
|
|
31
|
+
gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
|
|
32
|
+
#endif
|
|
33
|
+
gl_PointSize = 1.0;
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
const AGGREGATE_FS = `\
|
|
38
|
+
#define SHADER_NAME data-filter-fragment-shader
|
|
39
|
+
precision highp float;
|
|
40
|
+
|
|
41
|
+
varying vec4 vColor;
|
|
42
|
+
|
|
43
|
+
void main() {
|
|
44
|
+
if (dataFilter_value < 0.5) {
|
|
45
|
+
discard;
|
|
46
|
+
}
|
|
47
|
+
gl_FragColor = vColor;
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
|
|
51
|
+
export function supportsFloatTarget(gl) {
|
|
52
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_best_practices#Support_for_float_textures_doesnt_mean_you_can_render_into_them!
|
|
53
|
+
return (
|
|
54
|
+
gl.getExtension('EXT_float_blend') &&
|
|
55
|
+
// WebGL 2
|
|
56
|
+
(gl.getExtension('EXT_color_buffer_float') ||
|
|
57
|
+
// WebGL 1
|
|
58
|
+
gl.getExtension('WEBGL_color_buffer_float'))
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// A 1x1 framebuffer object that encodes the total count of filtered items
|
|
63
|
+
export function getFramebuffer(gl, useFloatTarget) {
|
|
64
|
+
if (useFloatTarget) {
|
|
65
|
+
return new Framebuffer(gl, {
|
|
66
|
+
width: 1,
|
|
67
|
+
height: 1,
|
|
68
|
+
attachments: {
|
|
69
|
+
[GL.COLOR_ATTACHMENT0]: new Texture2D(gl, {
|
|
70
|
+
format: isWebGL2(gl) ? GL.RGBA32F : GL.RGBA,
|
|
71
|
+
type: GL.FLOAT,
|
|
72
|
+
mipmaps: false
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return new Framebuffer(gl, {
|
|
78
|
+
width: 256,
|
|
79
|
+
height: 64,
|
|
80
|
+
depth: false
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Increments the counter based on dataFilter_value
|
|
85
|
+
export function getModel(gl, shaderOptions, useFloatTarget) {
|
|
86
|
+
shaderOptions.defines.NON_INSTANCED_MODEL = 1;
|
|
87
|
+
if (useFloatTarget) {
|
|
88
|
+
shaderOptions.defines.FLOAT_TARGET = 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return new Model(gl, {
|
|
92
|
+
id: 'data-filter-aggregation-model',
|
|
93
|
+
vertexCount: 1,
|
|
94
|
+
isInstanced: false,
|
|
95
|
+
drawMode: GL.POINTS,
|
|
96
|
+
vs: AGGREGATE_VS,
|
|
97
|
+
fs: AGGREGATE_FS,
|
|
98
|
+
...shaderOptions
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const parameters = {
|
|
103
|
+
blend: true,
|
|
104
|
+
blendFunc: [GL.ONE, GL.ONE, GL.ONE, GL.ONE],
|
|
105
|
+
blendEquation: [GL.FUNC_ADD, GL.FUNC_ADD],
|
|
106
|
+
depthTest: false
|
|
107
|
+
};
|
|
File without changes
|