@deck.gl/extensions 8.9.0-alpha.4 → 8.9.0-beta.1

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.
Files changed (201) hide show
  1. package/dist/dist.dev.js +3688 -14538
  2. package/dist/es5/brushing/brushing.js +0 -8
  3. package/dist/es5/brushing/brushing.js.map +1 -1
  4. package/dist/es5/clip/clip.js +5 -5
  5. package/dist/es5/clip/clip.js.map +1 -1
  6. package/dist/es5/collide/collide-effect.js +285 -0
  7. package/dist/es5/collide/collide-effect.js.map +1 -0
  8. package/dist/es5/collide/collide-pass.js +80 -0
  9. package/dist/es5/collide/collide-pass.js.map +1 -0
  10. package/dist/es5/collide/collide.js +116 -0
  11. package/dist/es5/collide/collide.js.map +1 -0
  12. package/dist/es5/collide/shader-module.js +39 -0
  13. package/dist/es5/collide/shader-module.js.map +1 -0
  14. package/dist/es5/common/projection-utils.js +164 -0
  15. package/dist/es5/common/projection-utils.js.map +1 -0
  16. package/dist/es5/data-filter/shader-module.js +1 -0
  17. package/dist/es5/data-filter/shader-module.js.map +1 -1
  18. package/dist/es5/fill-style/fill-style.js +16 -125
  19. package/dist/es5/fill-style/fill-style.js.map +1 -1
  20. package/dist/es5/fill-style/shaders.glsl.js +6 -8
  21. package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
  22. package/dist/es5/fp64/project64.glsl.js +1 -1
  23. package/dist/es5/index.js +16 -0
  24. package/dist/es5/index.js.map +1 -1
  25. package/dist/es5/mask/mask-effect.js +280 -0
  26. package/dist/es5/mask/mask-effect.js.map +1 -0
  27. package/dist/es5/mask/mask-pass.js +106 -0
  28. package/dist/es5/mask/mask-pass.js.map +1 -0
  29. package/dist/es5/mask/mask.js +17 -4
  30. package/dist/es5/mask/mask.js.map +1 -1
  31. package/dist/es5/mask/shader-module.js +1 -1
  32. package/dist/es5/mask/shader-module.js.map +1 -1
  33. package/dist/es5/mask/utils.js +136 -0
  34. package/dist/es5/mask/utils.js.map +1 -0
  35. package/dist/es5/path-style/shaders.glsl.js +1 -1
  36. package/dist/es5/terrain/height-map-builder.js +116 -0
  37. package/dist/es5/terrain/height-map-builder.js.map +1 -0
  38. package/dist/es5/terrain/shader-module.js +84 -0
  39. package/dist/es5/terrain/shader-module.js.map +1 -0
  40. package/dist/es5/terrain/terrain-cover.js +259 -0
  41. package/dist/es5/terrain/terrain-cover.js.map +1 -0
  42. package/dist/es5/terrain/terrain-effect.js +337 -0
  43. package/dist/es5/terrain/terrain-effect.js.map +1 -0
  44. package/dist/es5/terrain/terrain-pass.js +122 -0
  45. package/dist/es5/terrain/terrain-pass.js.map +1 -0
  46. package/dist/es5/terrain/terrain-picking-pass.js +130 -0
  47. package/dist/es5/terrain/terrain-picking-pass.js.map +1 -0
  48. package/dist/es5/terrain/terrain.js +101 -0
  49. package/dist/es5/terrain/terrain.js.map +1 -0
  50. package/dist/es5/terrain/utils.js +32 -0
  51. package/dist/es5/terrain/utils.js.map +1 -0
  52. package/dist/es5/utils/debug.js +71 -0
  53. package/dist/es5/utils/debug.js.map +1 -0
  54. package/dist/esm/brushing/brushing.js +0 -7
  55. package/dist/esm/brushing/brushing.js.map +1 -1
  56. package/dist/esm/clip/clip.js +5 -4
  57. package/dist/esm/clip/clip.js.map +1 -1
  58. package/dist/esm/collide/collide-effect.js +250 -0
  59. package/dist/esm/collide/collide-effect.js.map +1 -0
  60. package/dist/esm/collide/collide-pass.js +30 -0
  61. package/dist/esm/collide/collide-pass.js.map +1 -0
  62. package/dist/esm/collide/collide.js +78 -0
  63. package/dist/esm/collide/collide.js.map +1 -0
  64. package/dist/esm/collide/shader-module.js +32 -0
  65. package/dist/esm/collide/shader-module.js.map +1 -0
  66. package/dist/esm/common/projection-utils.js +130 -0
  67. package/dist/esm/common/projection-utils.js.map +1 -0
  68. package/dist/esm/data-filter/shader-module.js +1 -0
  69. package/dist/esm/data-filter/shader-module.js.map +1 -1
  70. package/dist/esm/fill-style/fill-style.js +20 -72
  71. package/dist/esm/fill-style/fill-style.js.map +1 -1
  72. package/dist/esm/fill-style/shaders.glsl.js +5 -7
  73. package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
  74. package/dist/esm/fp64/project64.glsl.js +1 -1
  75. package/dist/esm/index.js +2 -0
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/mask/mask-effect.js +233 -0
  78. package/dist/esm/mask/mask-effect.js.map +1 -0
  79. package/dist/esm/mask/mask-pass.js +62 -0
  80. package/dist/esm/mask/mask-pass.js.map +1 -0
  81. package/dist/esm/mask/mask.js +14 -3
  82. package/dist/esm/mask/mask.js.map +1 -1
  83. package/dist/esm/mask/shader-module.js +1 -1
  84. package/dist/esm/mask/shader-module.js.map +1 -1
  85. package/dist/esm/mask/utils.js +109 -0
  86. package/dist/esm/mask/utils.js.map +1 -0
  87. package/dist/esm/path-style/shaders.glsl.js +1 -1
  88. package/dist/esm/terrain/height-map-builder.js +92 -0
  89. package/dist/esm/terrain/height-map-builder.js.map +1 -0
  90. package/dist/esm/terrain/shader-module.js +73 -0
  91. package/dist/esm/terrain/shader-module.js.map +1 -0
  92. package/dist/esm/terrain/terrain-cover.js +219 -0
  93. package/dist/esm/terrain/terrain-cover.js.map +1 -0
  94. package/dist/esm/terrain/terrain-effect.js +231 -0
  95. package/dist/esm/terrain/terrain-effect.js.map +1 -0
  96. package/dist/esm/terrain/terrain-pass.js +69 -0
  97. package/dist/esm/terrain/terrain-pass.js.map +1 -0
  98. package/dist/esm/terrain/terrain-picking-pass.js +75 -0
  99. package/dist/esm/terrain/terrain-picking-pass.js.map +1 -0
  100. package/dist/esm/terrain/terrain.js +62 -0
  101. package/dist/esm/terrain/terrain.js.map +1 -0
  102. package/dist/esm/terrain/utils.js +21 -0
  103. package/dist/esm/terrain/utils.js.map +1 -0
  104. package/dist/esm/utils/debug.js +61 -0
  105. package/dist/esm/utils/debug.js.map +1 -0
  106. package/dist.min.js +1359 -1
  107. package/package.json +6 -4
  108. package/src/brushing/brushing.ts +0 -11
  109. package/src/clip/clip.ts +6 -5
  110. package/src/collide/collide-effect.ts +257 -0
  111. package/src/collide/collide-pass.ts +35 -0
  112. package/src/collide/collide.ts +79 -0
  113. package/src/collide/shader-module.ts +113 -0
  114. package/src/common/projection-utils.ts +187 -0
  115. package/src/data-filter/shader-module.ts +6 -0
  116. package/src/fill-style/fill-style.ts +15 -53
  117. package/src/fill-style/shaders.glsl.ts +6 -7
  118. package/src/index.ts +4 -0
  119. package/src/mask/mask-effect.ts +255 -0
  120. package/src/mask/mask-pass.ts +67 -0
  121. package/src/mask/mask.ts +17 -7
  122. package/src/mask/shader-module.ts +7 -1
  123. package/src/mask/utils.ts +148 -0
  124. package/src/terrain/height-map-builder.ts +120 -0
  125. package/src/terrain/shader-module.ts +161 -0
  126. package/src/terrain/terrain-cover.ts +225 -0
  127. package/src/terrain/terrain-effect.ts +223 -0
  128. package/src/terrain/terrain-pass.ts +86 -0
  129. package/src/terrain/terrain-picking-pass.ts +87 -0
  130. package/src/terrain/terrain.ts +74 -0
  131. package/src/terrain/utils.ts +29 -0
  132. package/src/utils/debug.ts +59 -0
  133. package/typed/brushing/brushing.d.ts +0 -1
  134. package/typed/brushing/brushing.d.ts.map +1 -1
  135. package/typed/brushing/brushing.js +83 -0
  136. package/typed/brushing/shader-module.js +116 -0
  137. package/typed/clip/clip.d.ts +1 -1
  138. package/typed/clip/clip.d.ts.map +1 -1
  139. package/typed/clip/clip.js +114 -0
  140. package/typed/collide/collide-effect.d.ts +28 -0
  141. package/typed/collide/collide-effect.d.ts.map +1 -0
  142. package/typed/collide/collide-pass.d.ts +14 -0
  143. package/typed/collide/collide-pass.d.ts.map +1 -0
  144. package/typed/collide/collide.d.ts +41 -0
  145. package/typed/collide/collide.d.ts.map +1 -0
  146. package/typed/collide/shader-module.d.ts +4 -0
  147. package/typed/collide/shader-module.d.ts.map +1 -0
  148. package/typed/common/projection-utils.d.ts +27 -0
  149. package/typed/common/projection-utils.d.ts.map +1 -0
  150. package/typed/data-filter/aggregator.js +98 -0
  151. package/typed/data-filter/data-filter.js +159 -0
  152. package/typed/data-filter/shader-module.d.ts.map +1 -1
  153. package/typed/data-filter/shader-module.js +152 -0
  154. package/typed/fill-style/fill-style.d.ts +14 -5
  155. package/typed/fill-style/fill-style.d.ts.map +1 -1
  156. package/typed/fill-style/fill-style.js +152 -0
  157. package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
  158. package/typed/fill-style/shaders.glsl.js +95 -0
  159. package/typed/fp64/fp64.js +34 -0
  160. package/typed/fp64/project64.glsl.js +100 -0
  161. package/typed/fp64/project64.js +50 -0
  162. package/typed/index.d.ts +4 -0
  163. package/typed/index.d.ts.map +1 -1
  164. package/typed/index.js +9 -0
  165. package/typed/mask/mask-effect.d.ts +42 -0
  166. package/typed/mask/mask-effect.d.ts.map +1 -0
  167. package/typed/mask/mask-pass.d.ts +19 -0
  168. package/typed/mask/mask-pass.d.ts.map +1 -0
  169. package/typed/mask/mask.d.ts +9 -3
  170. package/typed/mask/mask.d.ts.map +1 -1
  171. package/typed/mask/mask.js +48 -0
  172. package/typed/mask/shader-module.d.ts.map +1 -1
  173. package/typed/mask/shader-module.js +73 -0
  174. package/typed/mask/utils.d.ts +13 -0
  175. package/typed/mask/utils.d.ts.map +1 -0
  176. package/typed/path-style/path-style.js +107 -0
  177. package/typed/path-style/shaders.glsl.js +93 -0
  178. package/typed/terrain/height-map-builder.d.ts +38 -0
  179. package/typed/terrain/height-map-builder.d.ts.map +1 -0
  180. package/typed/terrain/height-map.d.ts +27 -0
  181. package/typed/terrain/height-map.d.ts.map +1 -0
  182. package/typed/terrain/shader-module-offset.d.ts +4 -0
  183. package/typed/terrain/shader-module-offset.d.ts.map +1 -0
  184. package/typed/terrain/shader-module-source.d.ts +4 -0
  185. package/typed/terrain/shader-module-source.d.ts.map +1 -0
  186. package/typed/terrain/shader-module.d.ts +31 -0
  187. package/typed/terrain/shader-module.d.ts.map +1 -0
  188. package/typed/terrain/terrain-cover.d.ts +46 -0
  189. package/typed/terrain/terrain-cover.d.ts.map +1 -0
  190. package/typed/terrain/terrain-effect.d.ts +29 -0
  191. package/typed/terrain/terrain-effect.d.ts.map +1 -0
  192. package/typed/terrain/terrain-pass.d.ts +11 -0
  193. package/typed/terrain/terrain-pass.d.ts.map +1 -0
  194. package/typed/terrain/terrain-picking-pass.d.ts +19 -0
  195. package/typed/terrain/terrain-picking-pass.d.ts.map +1 -0
  196. package/typed/terrain/terrain.d.ts +21 -0
  197. package/typed/terrain/terrain.d.ts.map +1 -0
  198. package/typed/terrain/utils.d.ts +5 -0
  199. package/typed/terrain/utils.d.ts.map +1 -0
  200. package/typed/utils/debug.d.ts +6 -0
  201. package/typed/utils/debug.d.ts.map +1 -0
package/dist.min.js CHANGED
@@ -1 +1,1359 @@
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){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){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,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,t){n.exports=e},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=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 m=_.prototype=c.prototype=Object.create(p);function h(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=m.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(m),n},n.awrap=function(n){return{__await:n}},h(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()}))},h(m),m[a]="Generator",m[i]=function(){return this},m.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(2),_=t.n(u),p=t(1),v=t.n(p),d=t(0),m={source:0,target:1,custom:2,source_target:3},h={name:"brushing",dependencies:[d.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||!("viewport"in n))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:m[a]||0,brushing_mousePos:s?f.unproject([s.x-f.x,s.y-f.y]):[0,0]}}};function y(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 b=function(n){f()(t,n);var e=y(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(){return{modules:[h]}}},{key:"initializeState",value:function(n,e){var t=this,r=this.getAttributeManager();r&&r.add({brushingTargets:{size:2,accessor:"getBrushingTarget",update:this.props.getBrushingTarget?void 0:e.useConstantTargetPositions,shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=function(){var n;null===(n=t.getCurrentLayer())||void 0===n||n.setNeedsRedraw()},n.deck&&n.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}},{key:"finalizeState",value:function(n,e){n.deck&&n.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}},{key:"useConstantTargetPositions",value:function(n){n.constant=!0,n.value=new Float32Array(2)}}]),t}(d.LayerExtension);function g(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 P(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?g(Object(t),!0).forEach((function(e){v()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):g(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}v()(b,"defaultProps",{getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4}),v()(b,"extensionName","BrushingExtension");var x="\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",T="\nuniform bool filter_transformColor;\nvarying float dataFilter_value;\n";function E(n){if(!n||!("extensions"in n))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;return P(P({},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]}))}),{},{filter_enabled:i,filter_useSoftMargin:Boolean(n.filterSoftRange),filter_transformSize:i&&a,filter_transformColor:i&&f})}var O={"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 "},A={name:"data-filter",vs:x,fs:T,inject:O,getUniforms:E},F={name:"data-filter-fp64",vs:x,fs:T,inject:O,getUniforms:function(n){if(!n||!("extensions"in n))return{};var e=E(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}},L=t(7);function I(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 R(n,e,t){return e.defines.NON_INSTANCED_MODEL=1,t&&(e.defines.FLOAT_TARGET=1),new L.Model(n,function(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?I(Object(t),!0).forEach((function(e){v()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):I(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 S={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function k(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 N(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?k(Object(t),!0).forEach((function(e){v()(n,e,t[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function w(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 j={1:"float",2:"vec2",3:"vec3",4:"vec4"},C=function(n){f()(t,n);var e=w(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),!j[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?F:A],defines:{DATAFILTER_TYPE:j[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 Boolean(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 L.Framebuffer(n,{width:1,height:1,attachments:v()({},36064,new L.Texture2D(n,{format:Object(L.isWebGL2)(n)?34836:6408,type:5126,mipmaps:!1}))}):new L.Framebuffer(n,{width:256,height:64,depth:!1})}(r,i),a=R(r,e.getShaders.call(this,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(L.clear)(c,{framebuffer:r,color:[0,0,0,0]}),i.updateModuleSettings(n.moduleParameters).setAttributes(N(N({},f.getShaderAttributes()),l&&l.getShaderAttributes())).draw({framebuffer:r,parameters:N(N({},S),{},{viewport:[0,0,r.width,r.height]})});for(var u=Object(L.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}(d.LayerExtension);function B(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 D(n){return n-Math.fround(n)}function M(n){for(var e=new Float32Array(32),t=0;t<4;++t)for(var r=0;r<4;++r){var i=4*t+r;B(n[4*r+t],e,2*i)}return e}v()(C,"defaultProps",{getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,compare:!1},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0}),v()(C,"extensionName","DataFilterExtension");var V={ONE:1};var z={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 V},fp64ify:B,fp64LowPart:D,fp64ifyMatrix4:M}],fp64ify:B,fp64LowPart:D,fp64ifyMatrix4:M},U=z.fp64ify,G=z.fp64ifyMatrix4,W={name:"project64",dependencies:[d.project,z],vs:"\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform vec2 project_uViewProjectionMatrixFP64[16];\n\n// longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw\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 // This is the local offset to the instance position\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n\n // Apply web mercator projection (depends on coordinate system imn use)\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(n){if(n&&"viewport"in n){var e=n.viewport,t=e.viewProjectionMatrix,r=e.scale;return q({viewProjectionMatrix:t,scale:r})}return{}}},q=Object(d._memoize)((function(n){var e=n.viewProjectionMatrix,t=n.scale,r=G(e),i=U(t);return{project_uViewProjectionMatrixFP64:r,project64_uViewProjectionMatrix:r,project64_uScale:i}}));function K(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 Y=function(n){f()(t,n);var e=K(t);function t(){return i()(this,t),e.apply(this,arguments)}return a()(t,[{key:"getShaders",value:function(){var n=this.props.coordinateSystem;if(n!==d.COORDINATE_SYSTEM.LNGLAT&&n!==d.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[W]}}}]),t}(d.LayerExtension);v()(Y,"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 // caps are rounded, test the distance to solid ends\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"}},X={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"}},J="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 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)};Z=new J(3),J!=Float32Array&&(Z[0]=0,Z[1]=0,Z[2]=0),Q=Z;function nn(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 en=function(n){f()(t,n);var e=nn(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"pathTesselator"in n.state}},{key:"getShaders",value:function(n){if(!n.isEnabled(this))return null;var e={};return n.opts.dash&&(e=Object(d._mergeShaders)(e,H)),n.opts.offset&&(e=Object(d._mergeShaders)(e,X)),e}},{key:"initializeState",value:function(n,e){var t=this.getAttributeManager();t&&e.isEnabled(this)&&(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]+$(t,e)),t=e;return r}}]),t}(d.LayerExtension);v()(en,"defaultProps",{getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1}),v()(en,"extensionName","PathStyleExtension");var tn=t(9),rn=t.n(tn),on=t(8),an=t.n(on);var sn,fn={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;\nuniform vec2 fill_uvCoordinateOrigin64Low;\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_uvCoordinateOrigin64Low + 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:[d.project],getUniforms:function(n,e){if(!n)return{};if("fillPatternTexture"in n){var t=n.fillPatternTexture;return{fill_patternTexture:t,fill_patternTextureSize:[t.width,t.height]}}if("viewport"in n){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=r.projectPosition(f),c=[Object(d.fp64LowPart)(l[0]),Object(d.fp64LowPart)(l[1])];return{fill_uvCoordinateOrigin:l.slice(0,2),fill_uvCoordinateOrigin64Low:c,fill_patternMask:o,fill_patternEnabled:s}}return{}}};function ln(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 cn=(sn={},v()(sn,10241,9729),v()(sn,10240,9729),v()(sn,10242,33071),v()(sn,10243,33071),sn),un=function(n){f()(o,n);var e,t,r=ln(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 null!==n.getAttributeManager()&&!("pathTesselator"in n.state)}},{key:"getShaders",value:function(n){return n.isEnabled(this)?{modules:[n.opts.pattern&&fn].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 L.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.fillPatternMapping&&t.fillPatternMapping!==r.fillPatternMapping&&e.loadPatternMapping.call(this))}},{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=rn()(an.a.mark((function n(){var e,t,r,i,o,a;return an.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(t=this.props,r=t.fillPatternAtlas,i=t.fetch,null===(e=this.state.patternTexture)||void 0===e||e.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 L.Texture2D?o:new L.Texture2D(this.context.gl,{data:o,parameters:cn}),this.setState({patternTexture:a});case 10:case"end":return n.stop()}}),n,this)}))),function(n){return t.apply(this,arguments)})},{key:"loadPatternMapping",value:(e=rn()(an.a.mark((function n(){var e,t,r,i;return an.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e=this.props,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}(d.LayerExtension);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)}}v()(un,"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]}}),v()(un,"extensionName","FillStyleExtension");var pn={clipBounds:[0,0,1,1]},vn="\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",dn={name:"clip-vs",vs:vn},mn={"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:vn},yn={"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=_n(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:[dn],inject:mn}:{modules:[hn],inject:yn}}},{key:"draw",value:function(n){var e=n.uniforms,t=this.props.clipBounds,r=void 0===t?pn.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}(d.LayerExtension);v()(bn,"defaultProps",pn),v()(bn,"extensionName","ClipExtension");var gn={name:"mask",dependencies:[d.project],vs:"\nuniform vec4 mask_bounds;\nuniform bool mask_maskByInstance;\nvec2 mask_getCoords(vec4 position) {\n return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);\n}\n",fs:"\nuniform sampler2D mask_texture;\nuniform int mask_channel;\nuniform bool mask_enabled;\nbool mask_isInBounds(vec2 texCoords) {\n if (!mask_enabled) {\n return true;\n }\n vec4 maskColor = texture2D(mask_texture, texCoords);\n float maskValue = 1.0;\n if (mask_channel == 0) {\n maskValue = maskColor.r;\n } else if (mask_channel == 1) {\n maskValue = maskColor.g;\n } else if (mask_channel == 2) {\n maskValue = maskColor.b;\n } else if (mask_channel == 3) {\n maskValue = maskColor.a;\n }\n return maskValue < 0.5;\n}\n",inject:{"vs:#decl":"\nvarying vec2 mask_texCoords;\n","vs:#main-end":"\n vec4 mask_common_position;\n if (mask_maskByInstance) {\n mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));\n } else {\n mask_common_position = geometry.position;\n }\n mask_texCoords = mask_getCoords(mask_common_position);\n","fs:#decl":"\nvarying vec2 mask_texCoords;\n","fs:#main-start":"\n if (mask_enabled) {\n bool mask = mask_isInBounds(mask_texCoords);\n\n // Debug: show extent of render target\n // gl_FragColor = vec4(mask_texCoords, 0.0, 1.0);\n gl_FragColor = texture2D(mask_texture, mask_texCoords);\n\n if (!mask) discard;\n }\n"},getUniforms:function(n){return n&&"maskMap"in n?{mask_texture:n.maskMap}:{}}};function Pn(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 xn=function(n){f()(t,n);var e=Pn(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"maskByInstance"in this.props&&(n=Boolean(this.props.maskByInstance)),this.state.maskByInstance=n,{modules:[gn]}}},{key:"draw",value:function(n){var e=n.uniforms,t=n.context,r=n.moduleParameters;e.mask_maskByInstance=this.state.maskByInstance;var i=this.props.maskId,o=void 0===i?"":i,a=r.maskChannels,s=t.viewport;if(a&&a[o]){var f=a[o],l=f.index,c=f.bounds,u=f.coordinateOrigin,_=a[o].coordinateSystem;e.mask_enabled=!0,e.mask_channel=l,_===d.COORDINATE_SYSTEM.DEFAULT&&(_=s.isGeospatial?d.COORDINATE_SYSTEM.LNGLAT:d.COORDINATE_SYSTEM.CARTESIAN);var p={modelMatrix:null,fromCoordinateOrigin:u,fromCoordinateSystem:_},v=this.projectPosition([c[0],c[1],0],p),m=this.projectPosition([c[2],c[3],0],p);e.mask_bounds=[v[0],v[1],m[0],m[1]]}else o&&d.log.warn("Could not find a mask layer with id: ".concat(o))(),e.mask_enabled=!1}}]),t}(d.LayerExtension);v()(xn,"defaultProps",{maskId:""}),v()(xn,"extensionName","MaskExtension"),t.d(e,"BrushingExtension",(function(){return b})),t.d(e,"DataFilterExtension",(function(){return C})),t.d(e,"Fp64Extension",(function(){return Y})),t.d(e,"PathStyleExtension",(function(){return en})),t.d(e,"FillStyleExtension",(function(){return un})),t.d(e,"ClipExtension",(function(){return bn})),t.d(e,"MaskExtension",(function(){return xn})),t.d(e,"project64",(function(){return W}))}])}));
1
+ "use strict";var deck=(()=>{var ao=Object.create;var ze=Object.defineProperty;var oo=Object.getOwnPropertyDescriptor;var so=Object.getOwnPropertyNames;var fo=Object.getPrototypeOf,lo=Object.prototype.hasOwnProperty;var k=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),co=(e,r)=>{for(var t in r)ze(e,t,{get:r[t],enumerable:!0})},Be=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of so(r))!lo.call(e,i)&&i!==t&&ze(e,i,{get:()=>r[i],enumerable:!(n=oo(r,i))||n.enumerable});return e},le=(e,r,t)=>(Be(e,r,"default"),t&&Be(t,r,"default")),u=(e,r,t)=>(t=e!=null?ao(fo(e)):{},Be(r||!e||!e.__esModule?ze(t,"default",{value:e,enumerable:!0}):t,e)),uo=e=>Be(ze({},"__esModule",{value:!0}),e);var T=k((_f,Tt)=>{Tt.exports=globalThis.deck});var I=k((yf,At)=>{function po(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}At.exports=po});var F=k((xf,Rt)=>{function St(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function vo(e,r,t){return r&&St(e.prototype,r),t&&St(e,t),e}Rt.exports=vo});var It=k((Mf,Ir)=>{function Rr(e,r){return Ir.exports=Rr=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},Rr(e,r)}Ir.exports=Rr});var q=k((Pf,Ft)=>{var mo=It();function ho(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),r&&mo(e,r)}Ft.exports=ho});var Lt=k((bf,Ue)=>{function Ve(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ue.exports=Ve=function(t){return typeof t}:Ue.exports=Ve=function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ve(e)}Ue.exports=Ve});var qe=k((Of,Ct)=>{function _o(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}Ct.exports=_o});var W=k((Ef,kt)=>{var go=Lt(),yo=qe();function xo(e,r){return r&&(go(r)==="object"||typeof r=="function")?r:yo(e)}kt.exports=xo});var V=k((Tf,Lr)=>{function Fr(e){return Lr.exports=Fr=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},Fr(e)}Lr.exports=Fr});var A=k((wf,Nt)=>{function Mo(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}Nt.exports=Mo});var Y=k((Ff,Jt)=>{Jt.exports=globalThis.luma});var dn=k((kf,vn)=>{function jo(e){if(Array.isArray(e))return e}vn.exports=jo});var hn=k((Nf,mn)=>{function Do(e,r){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)==="[object Arguments]"){var t=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),s;!(n=(s=o.next()).done)&&(t.push(s.value),!(r&&t.length===r));n=!0);}catch(f){i=!0,a=f}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return t}}mn.exports=Do});var gn=k((jf,_n)=>{function Bo(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}_n.exports=Bo});var Dr=k((Df,yn)=>{var zo=dn(),Vo=hn(),Uo=gn();function qo(e,r){return zo(e)||Vo(e,r)||Uo()}yn.exports=qo});var Mi=k((zl,xi)=>{var ws=V();function As(e,r){for(;!Object.prototype.hasOwnProperty.call(e,r)&&(e=ws(e),e!==null););return e}xi.exports=As});var Jr=k((Vl,sr)=>{var Ss=Mi();function or(e,r,t){return typeof Reflect<"u"&&Reflect.get?sr.exports=or=Reflect.get:sr.exports=or=function(i,a,o){var s=Ss(i,a);if(s){var f=Object.getOwnPropertyDescriptor(s,a);return f.get?f.get.call(o):f.value}},or(e,r,t||e)}sr.exports=or});var je={};co(je,{BrushingExtension:()=>We,ClipExtension:()=>ar,CollideExtension:()=>mr,DataFilterExtension:()=>Ze,FillStyleExtension:()=>ir,Fp64Extension:()=>Gr,MaskExtension:()=>hr,PathStyleExtension:()=>tr,TerrainExtension:()=>Tr,project64:()=>rr});var ee={},wt=u(T());le(ee,u(T()));if(!wt.Layer)throw new Error("@deck.gl/core is not found");le(je,ee);var Bt=u(I()),zt=u(F()),Vt=u(q()),Ut=u(W()),Cr=u(V()),kr=u(A()),qt=u(T());var jt=u(T()),Po=`
2
+ uniform bool brushing_enabled;
3
+ uniform int brushing_target;
4
+ uniform vec2 brushing_mousePos;
5
+ uniform float brushing_radius;
6
+
7
+ #ifdef NON_INSTANCED_MODEL
8
+ attribute vec2 brushingTargets;
9
+ #else
10
+ attribute vec2 instanceBrushingTargets;
11
+ #endif
12
+
13
+ varying float brushing_isVisible;
14
+
15
+ bool brushing_isPointInRange(vec2 position) {
16
+ if (!brushing_enabled) {
17
+ return true;
18
+ }
19
+ vec2 source_commonspace = project_position(position);
20
+ vec2 target_commonspace = project_position(brushing_mousePos);
21
+ float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);
22
+
23
+ return distance <= brushing_radius;
24
+ }
25
+
26
+ bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {
27
+ return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);
28
+ }
29
+
30
+ void brushing_setVisible(bool visible) {
31
+ brushing_isVisible = float(visible);
32
+ }
33
+ `,bo=`
34
+ uniform bool brushing_enabled;
35
+ varying float brushing_isVisible;
36
+ `,Oo={source:0,target:1,custom:2,source_target:3},Eo={"vs:DECKGL_FILTER_GL_POSITION":`
37
+ vec2 brushingTarget;
38
+ vec2 brushingSource;
39
+ if (brushing_target == 3) {
40
+ brushingTarget = geometry.worldPositionAlt.xy;
41
+ brushingSource = geometry.worldPosition.xy;
42
+ } else if (brushing_target == 0) {
43
+ brushingTarget = geometry.worldPosition.xy;
44
+ } else if (brushing_target == 1) {
45
+ brushingTarget = geometry.worldPositionAlt.xy;
46
+ } else {
47
+ #ifdef NON_INSTANCED_MODEL
48
+ brushingTarget = brushingTargets;
49
+ #else
50
+ brushingTarget = instanceBrushingTargets;
51
+ #endif
52
+ }
53
+ bool visible;
54
+ if (brushing_target == 3) {
55
+ visible = brushing_arePointsInRange(brushingSource, brushingTarget);
56
+ } else {
57
+ visible = brushing_isPointInRange(brushingTarget);
58
+ }
59
+ brushing_setVisible(visible);
60
+ `,"fs:DECKGL_FILTER_COLOR":`
61
+ if (brushing_enabled && brushing_isVisible < 0.5) {
62
+ discard;
63
+ }
64
+ `},Dt={name:"brushing",dependencies:[jt.project],vs:Po,fs:bo,inject:Eo,getUniforms:function(r){if(!r||!("viewport"in r))return{};var t=r.brushingEnabled,n=t===void 0?!0:t,i=r.brushingRadius,a=i===void 0?1e4:i,o=r.brushingTarget,s=o===void 0?"source":o,f=r.mousePosition,l=r.viewport;return{brushing_enabled:Boolean(n&&f&&l.containsPixel(f)),brushing_radius:a,brushing_target:Oo[s]||0,brushing_mousePos:f?l.unproject([f.x-l.x,f.y-l.y]):[0,0]}}};function To(e){var r=wo();return function(){var n=(0,Cr.default)(e),i;if(r){var a=(0,Cr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Ut.default)(this,i)}}function wo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ao={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},We=function(e){(0,Vt.default)(t,e);var r=To(t);function t(){return(0,Bt.default)(this,t),r.apply(this,arguments)}return(0,zt.default)(t,[{key:"getShaders",value:function(){return{modules:[Dt]}}},{key:"initializeState",value:function(i,a){var o=this,s=this.getAttributeManager();s&&s.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=function(){var f;(f=o.getCurrentLayer())===null||f===void 0||f.setNeedsRedraw()},i.deck&&i.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}},{key:"finalizeState",value:function(i,a){i.deck&&i.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})}}]),t}(qt.LayerExtension);(0,kr.default)(We,"defaultProps",Ao);(0,kr.default)(We,"extensionName","BrushingExtension");var fn=u(I()),ln=u(F()),cn=u(q()),un=u(W()),jr=u(V()),Ge=u(A()),pn=u(T());var Gt=u(A());function Wt(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Yt(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?Wt(Object(t),!0).forEach(function(n){(0,Gt.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Wt(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}var Ht=`
65
+ uniform DATAFILTER_TYPE filter_min;
66
+ uniform DATAFILTER_TYPE filter_softMin;
67
+ uniform DATAFILTER_TYPE filter_softMax;
68
+ uniform DATAFILTER_TYPE filter_max;
69
+ uniform bool filter_useSoftMargin;
70
+ uniform bool filter_enabled;
71
+ uniform bool filter_transformSize;
72
+
73
+ #ifdef NON_INSTANCED_MODEL
74
+ #define DATAFILTER_ATTRIB filterValues
75
+ #define DATAFILTER_ATTRIB_64LOW filterValues64Low
76
+ #else
77
+ #define DATAFILTER_ATTRIB instanceFilterValues
78
+ #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
79
+ #endif
80
+
81
+ attribute DATAFILTER_TYPE DATAFILTER_ATTRIB;
82
+ #ifdef DATAFILTER_DOUBLE
83
+ attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
84
+
85
+ uniform DATAFILTER_TYPE filter_min64High;
86
+ uniform DATAFILTER_TYPE filter_max64High;
87
+ #endif
88
+
89
+ varying float dataFilter_value;
90
+
91
+ float dataFilter_reduceValue(float value) {
92
+ return value;
93
+ }
94
+ float dataFilter_reduceValue(vec2 value) {
95
+ return min(value.x, value.y);
96
+ }
97
+ float dataFilter_reduceValue(vec3 value) {
98
+ return min(min(value.x, value.y), value.z);
99
+ }
100
+ float dataFilter_reduceValue(vec4 value) {
101
+ return min(min(value.x, value.y), min(value.z, value.w));
102
+ }
103
+ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
104
+ if (filter_enabled) {
105
+ if (filter_useSoftMargin) {
106
+ dataFilter_value = dataFilter_reduceValue(
107
+ smoothstep(filter_min, filter_softMin, valueFromMin) *
108
+ (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
109
+ );
110
+ } else {
111
+ dataFilter_value = dataFilter_reduceValue(
112
+ step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
113
+ );
114
+ }
115
+ } else {
116
+ dataFilter_value = 1.0;
117
+ }
118
+ }
119
+ `,Zt=`
120
+ uniform bool filter_transformColor;
121
+ varying float dataFilter_value;
122
+ `;function $t(e){if(!e||!("extensions"in e))return{};var r=e.filterRange,t=r===void 0?[-1,1]:r,n=e.filterEnabled,i=n===void 0?!0:n,a=e.filterTransformSize,o=a===void 0?!0:a,s=e.filterTransformColor,f=s===void 0?!0:s,l=e.filterSoftRange||t;return Yt(Yt({},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(c){return c[0]}),filter_softMin:l.map(function(c){return c[0]}),filter_softMax:l.map(function(c){return c[1]}),filter_max:t.map(function(c){return c[1]})}),{},{filter_enabled:i,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:i&&o,filter_transformColor:i&&f})}function So(e){if(!e||!("extensions"in e))return{};var r=$t(e);if(Number.isFinite(r.filter_min)){var t=Math.fround(r.filter_min);r.filter_min-=t,r.filter_softMin-=t,r.filter_min64High=t;var n=Math.fround(r.filter_max);r.filter_max-=n,r.filter_softMax-=n,r.filter_max64High=n}else{var i=r.filter_min.map(Math.fround);r.filter_min=r.filter_min.map(function(o,s){return o-i[s]}),r.filter_softMin=r.filter_softMin.map(function(o,s){return o-i[s]}),r.filter_min64High=i;var a=r.filter_max.map(Math.fround);r.filter_max=r.filter_max.map(function(o,s){return o-a[s]}),r.filter_softMax=r.filter_softMax.map(function(o,s){return o-a[s]}),r.filter_max64High=a}return r}var Kt={"vs:#main-start":`
123
+ #ifdef DATAFILTER_DOUBLE
124
+ dataFilter_setValue(
125
+ DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
126
+ DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW
127
+ );
128
+ #else
129
+ dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB);
130
+ #endif
131
+ `,"vs:#main-end":`
132
+ if (dataFilter_value == 0.0) {
133
+ gl_Position = vec4(0.);
134
+ }
135
+ `,"vs:DECKGL_FILTER_SIZE":`
136
+ if (filter_transformSize) {
137
+ size = size * dataFilter_value;
138
+ }
139
+ `,"fs:DECKGL_FILTER_COLOR":`
140
+ if (dataFilter_value == 0.0) discard;
141
+ if (filter_transformColor) {
142
+ color.a *= dataFilter_value;
143
+ }
144
+ `},Xt={name:"data-filter",vs:Ht,fs:Zt,inject:Kt,getUniforms:$t},Qt={name:"data-filter-fp64",vs:Ht,fs:Zt,inject:Kt,getUniforms:So};var Nr=u(A()),ae=u(Y());function en(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Ro(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?en(Object(t),!0).forEach(function(n){(0,Nr.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):en(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}var Io=`#define SHADER_NAME data-filter-vertex-shader
145
+
146
+ #ifdef FLOAT_TARGET
147
+ attribute float filterIndices;
148
+ attribute float filterPrevIndices;
149
+ #else
150
+ attribute vec2 filterIndices;
151
+ attribute vec2 filterPrevIndices;
152
+ #endif
153
+
154
+ varying vec4 vColor;
155
+ const float component = 1.0 / 255.0;
156
+
157
+ void main() {
158
+ #ifdef FLOAT_TARGET
159
+ dataFilter_value *= float(filterIndices != filterPrevIndices);
160
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
161
+ vColor = vec4(0.0, 0.0, 0.0, 1.0);
162
+ #else
163
+ // Float texture is not supported: pack result into 4 channels x 256 px x 64px
164
+ dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
165
+ float col = filterIndices.x;
166
+ float row = filterIndices.y * 4.0;
167
+ float channel = floor(row);
168
+ row = fract(row);
169
+ vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
170
+ gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
171
+ #endif
172
+ gl_PointSize = 1.0;
173
+ }
174
+ `,Fo=`#define SHADER_NAME data-filter-fragment-shader
175
+ precision highp float;
176
+
177
+ varying vec4 vColor;
178
+
179
+ void main() {
180
+ if (dataFilter_value < 0.5) {
181
+ discard;
182
+ }
183
+ gl_FragColor = vColor;
184
+ }
185
+ `;function rn(e){return Boolean(e.getExtension("EXT_float_blend")&&(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float")))}function tn(e,r){return r?new ae.Framebuffer(e,{width:1,height:1,attachments:(0,Nr.default)({},36064,new ae.Texture2D(e,{format:(0,ae.isWebGL2)(e)?34836:6408,type:5126,mipmaps:!1}))}):new ae.Framebuffer(e,{width:256,height:64,depth:!1})}function nn(e,r,t){return r.defines.NON_INSTANCED_MODEL=1,t&&(r.defines.FLOAT_TARGET=1),new ae.Model(e,Ro({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Io,fs:Fo},r))}var an={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var He=u(Y());function on(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Ye(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?on(Object(t),!0).forEach(function(n){(0,Ge.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):on(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Co(e){var r=ko();return function(){var n=(0,jr.default)(e),i;if(r){var a=(0,jr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,un.default)(this,i)}}function ko(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var No={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,compare:!1},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},sn={1:"float",2:"vec2",3:"vec3",4:"vec4"},Ze=function(e){(0,cn.default)(t,e);var r=Co(t);function t(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.filterSize,a=i===void 0?1:i,o=n.fp64,s=o===void 0?!1:o,f=n.countItems,l=f===void 0?!1:f;if((0,fn.default)(this,t),!sn[a])throw new Error("filterSize out of range");return r.call(this,{filterSize:a,fp64:s,countItems:l})}return(0,ln.default)(t,[{key:"getShaders",value:function(i){var a=i.opts,o=a.filterSize,s=a.fp64;return{modules:[s?Qt:Xt],defines:{DATAFILTER_TYPE:sn[o],DATAFILTER_DOUBLE:Boolean(s)}}}},{key:"initializeState",value:function(i,a){var o=this.getAttributeManager();o&&o.add({filterValues:{size:a.opts.filterSize,type:a.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var s=this.context.gl;if(o&&a.opts.countItems){var f=rn(s);o.add({filterIndices:{size:f?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(v,d){var m=d.index,h=v&&v.__source?v.__source.index:m;return f?(h+1)%255:[(h+1)%255,Math.floor(h/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var l=tn(s,f),c=nn(s,a.getShaders.call(this,a),f);this.setState({filterFBO:l,filterModel:c})}}},{key:"updateState",value:function(i){var a=i.props,o=i.oldProps;if(this.state.filterModel){var s=this.getAttributeManager(),f=s.attributes.filterValues.needsUpdate()||a.filterEnabled!==o.filterEnabled||a.filterRange!==o.filterRange||a.filterSoftRange!==o.filterSoftRange;f&&this.setState({filterNeedsUpdate:f})}}},{key:"draw",value:function(i,a){var o=this.state,s=o.filterFBO,f=o.filterModel,l=o.filterNeedsUpdate,c=this.props.onFilteredItemsChange;if(l&&c&&f){var p=this.getAttributeManager(),v=p.attributes,d=v.filterValues,m=v.filterIndices;f.setVertexCount(this.getNumInstances());var h=this.context.gl;(0,He.clear)(h,{framebuffer:s,color:[0,0,0,0]}),f.updateModuleSettings(i.moduleParameters).setAttributes(Ye(Ye({},d.getShaderAttributes()),m&&m.getShaderAttributes())).draw({framebuffer:s,parameters:Ye(Ye({},an),{},{viewport:[0,0,s.width,s.height]})});for(var _=(0,He.readPixelsToArray)(s),g=0,M=0;M<_.length;M++)g+=_[M];c({id:this.id,count:g}),this.state.filterNeedsUpdate=!1}}},{key:"finalizeState",value:function(){var i=this.state,a=i.filterFBO,o=i.filterModel;a&&(a.color.delete(),a.delete(),o.delete())}}]),t}(pn.LayerExtension);(0,Ge.default)(Ze,"defaultProps",No);(0,Ge.default)(Ze,"extensionName","DataFilterExtension");var Dn=u(I()),Bn=u(F()),zn=u(q()),Vn=u(W()),Yr=u(V()),Un=u(A()),Re=u(T());function $e(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=Math.fround(e),i=e-n;return r[t]=n,r[t+1]=i,r}function Br(e){return e-Math.fround(e)}function zr(e){for(var r=new Float32Array(32),t=0;t<4;++t)for(var n=0;n<4;++n){var i=t*4+n;$e(e[n*4+t],r,i*2)}return r}var xn=`uniform float ONE;
186
+ vec2 split(float a) {
187
+ const float SPLIT = 4097.0;
188
+ float t = a * SPLIT;
189
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
190
+ float a_hi = t * ONE - (t - a);
191
+ float a_lo = a * ONE - a_hi;
192
+ #else
193
+ float a_hi = t - (t - a);
194
+ float a_lo = a - a_hi;
195
+ #endif
196
+ return vec2(a_hi, a_lo);
197
+ }
198
+ vec2 split2(vec2 a) {
199
+ vec2 b = split(a.x);
200
+ b.y += a.y;
201
+ return b;
202
+ }
203
+ vec2 quickTwoSum(float a, float b) {
204
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
205
+ float sum = (a + b) * ONE;
206
+ float err = b - (sum - a) * ONE;
207
+ #else
208
+ float sum = a + b;
209
+ float err = b - (sum - a);
210
+ #endif
211
+ return vec2(sum, err);
212
+ }
213
+ vec2 twoSum(float a, float b) {
214
+ float s = (a + b);
215
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
216
+ float v = (s * ONE - a) * ONE;
217
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
218
+ #else
219
+ float v = s - a;
220
+ float err = (a - (s - v)) + (b - v);
221
+ #endif
222
+ return vec2(s, err);
223
+ }
224
+
225
+ vec2 twoSub(float a, float b) {
226
+ float s = (a - b);
227
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
228
+ float v = (s * ONE - a) * ONE;
229
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
230
+ #else
231
+ float v = s - a;
232
+ float err = (a - (s - v)) - (b + v);
233
+ #endif
234
+ return vec2(s, err);
235
+ }
236
+
237
+ vec2 twoSqr(float a) {
238
+ float prod = a * a;
239
+ vec2 a_fp64 = split(a);
240
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
241
+ float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
242
+ a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
243
+ #else
244
+ float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
245
+ #endif
246
+ return vec2(prod, err);
247
+ }
248
+
249
+ vec2 twoProd(float a, float b) {
250
+ float prod = a * b;
251
+ vec2 a_fp64 = split(a);
252
+ vec2 b_fp64 = split(b);
253
+ float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
254
+ a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
255
+ return vec2(prod, err);
256
+ }
257
+
258
+ vec2 sum_fp64(vec2 a, vec2 b) {
259
+ vec2 s, t;
260
+ s = twoSum(a.x, b.x);
261
+ t = twoSum(a.y, b.y);
262
+ s.y += t.x;
263
+ s = quickTwoSum(s.x, s.y);
264
+ s.y += t.y;
265
+ s = quickTwoSum(s.x, s.y);
266
+ return s;
267
+ }
268
+
269
+ vec2 sub_fp64(vec2 a, vec2 b) {
270
+ vec2 s, t;
271
+ s = twoSub(a.x, b.x);
272
+ t = twoSub(a.y, b.y);
273
+ s.y += t.x;
274
+ s = quickTwoSum(s.x, s.y);
275
+ s.y += t.y;
276
+ s = quickTwoSum(s.x, s.y);
277
+ return s;
278
+ }
279
+
280
+ vec2 mul_fp64(vec2 a, vec2 b) {
281
+ vec2 prod = twoProd(a.x, b.x);
282
+ prod.y += a.x * b.y;
283
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
284
+ prod = split2(prod);
285
+ #endif
286
+ prod = quickTwoSum(prod.x, prod.y);
287
+ prod.y += a.y * b.x;
288
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
289
+ prod = split2(prod);
290
+ #endif
291
+ prod = quickTwoSum(prod.x, prod.y);
292
+ return prod;
293
+ }
294
+
295
+ vec2 div_fp64(vec2 a, vec2 b) {
296
+ float xn = 1.0 / b.x;
297
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
298
+ vec2 yn = mul_fp64(a, vec2(xn, 0));
299
+ #else
300
+ vec2 yn = a * xn;
301
+ #endif
302
+ float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
303
+ vec2 prod = twoProd(xn, diff);
304
+ return sum_fp64(yn, prod);
305
+ }
306
+
307
+ vec2 sqrt_fp64(vec2 a) {
308
+ if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
309
+ if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
310
+
311
+ float x = 1.0 / sqrt(a.x);
312
+ float yn = a.x * x;
313
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
314
+ vec2 yn_sqr = twoSqr(yn) * ONE;
315
+ #else
316
+ vec2 yn_sqr = twoSqr(yn);
317
+ #endif
318
+ float diff = sub_fp64(a, yn_sqr).x;
319
+ vec2 prod = twoProd(x * 0.5, diff);
320
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
321
+ return sum_fp64(split(yn), prod);
322
+ #else
323
+ return sum_fp64(vec2(yn, 0.0), prod);
324
+ #endif
325
+ }
326
+ `;var Mn=`const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
327
+ const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
328
+ const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
329
+ const vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);
330
+ const vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);
331
+ const vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);
332
+ const vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);
333
+ const vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);
334
+ const vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);
335
+ const vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);
336
+
337
+ const vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);
338
+ const vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);
339
+ const vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);
340
+ const vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);
341
+
342
+ const vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);
343
+ const vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);
344
+ const vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);
345
+ const vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);
346
+
347
+ const vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09);
348
+ const vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09);
349
+ const vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10);
350
+ const vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11);
351
+ const vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12);
352
+ const vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13);
353
+ const vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14);
354
+ const vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15);
355
+
356
+ float nint(float d) {
357
+ if (d == floor(d)) return d;
358
+ return floor(d + 0.5);
359
+ }
360
+
361
+ vec2 nint_fp64(vec2 a) {
362
+ float hi = nint(a.x);
363
+ float lo;
364
+ vec2 tmp;
365
+ if (hi == a.x) {
366
+ lo = nint(a.y);
367
+ tmp = quickTwoSum(hi, lo);
368
+ } else {
369
+ lo = 0.0;
370
+ if (abs(hi - a.x) == 0.5 && a.y < 0.0) {
371
+ hi -= 1.0;
372
+ }
373
+ tmp = vec2(hi, lo);
374
+ }
375
+ return tmp;
376
+ }
377
+
378
+ vec2 exp_fp64(vec2 a) {
379
+
380
+ const int k_power = 4;
381
+ const float k = 16.0;
382
+
383
+ const float inv_k = 1.0 / k;
384
+
385
+ if (a.x <= -88.0) return vec2(0.0, 0.0);
386
+ if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);
387
+ if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);
388
+ if (a.x == 1.0 && a.y == 0.0) return E_FP64;
389
+
390
+ float m = floor(a.x / LOG2_FP64.x + 0.5);
391
+ vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;
392
+ vec2 s, t, p;
393
+
394
+ p = mul_fp64(r, r);
395
+ s = sum_fp64(r, p * 0.5);
396
+ p = mul_fp64(p, r);
397
+ t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);
398
+
399
+ s = sum_fp64(s, t);
400
+ p = mul_fp64(p, r);
401
+ t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);
402
+
403
+ s = sum_fp64(s, t);
404
+ p = mul_fp64(p, r);
405
+ t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);
406
+
407
+
408
+
409
+
410
+
411
+
412
+ s = sum_fp64(s, t);
413
+ for (int i = 0; i < k_power; i++) {
414
+ s = sum_fp64(s * 2.0, mul_fp64(s, s));
415
+ }
416
+
417
+ #if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)
418
+ s = sum_fp64(s, vec2(ONE, 0.0));
419
+ #else
420
+ s = sum_fp64(s, vec2(1.0, 0.0));
421
+ #endif
422
+
423
+ return s * pow(2.0, m);
424
+ }
425
+
426
+ vec2 log_fp64(vec2 a)
427
+ {
428
+ if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);
429
+ if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
430
+ vec2 x = vec2(log(a.x), 0.0);
431
+ vec2 s;
432
+ #if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)
433
+ s = vec2(ONE, 0.0);
434
+ #else
435
+ s = vec2(1.0, 0.0);
436
+ #endif
437
+
438
+ x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);
439
+ return x;
440
+ }
441
+
442
+ vec2 sin_taylor_fp64(vec2 a) {
443
+ vec2 r, s, t, x;
444
+
445
+ if (a.x == 0.0 && a.y == 0.0) {
446
+ return vec2(0.0, 0.0);
447
+ }
448
+
449
+ x = -mul_fp64(a, a);
450
+ s = a;
451
+ r = a;
452
+
453
+ r = mul_fp64(r, x);
454
+ t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);
455
+ s = sum_fp64(s, t);
456
+
457
+ r = mul_fp64(r, x);
458
+ t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);
459
+ s = sum_fp64(s, t);
460
+
461
+
462
+
463
+
464
+
465
+
466
+ return s;
467
+ }
468
+
469
+ vec2 cos_taylor_fp64(vec2 a) {
470
+ vec2 r, s, t, x;
471
+
472
+ if (a.x == 0.0 && a.y == 0.0) {
473
+ return vec2(1.0, 0.0);
474
+ }
475
+
476
+ x = -mul_fp64(a, a);
477
+ r = x;
478
+ s = sum_fp64(vec2(1.0, 0.0), r * 0.5);
479
+
480
+ r = mul_fp64(r, x);
481
+ t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);
482
+ s = sum_fp64(s, t);
483
+
484
+ r = mul_fp64(r, x);
485
+ t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);
486
+ s = sum_fp64(s, t);
487
+
488
+
489
+
490
+
491
+
492
+
493
+ return s;
494
+ }
495
+
496
+ void sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {
497
+ if (a.x == 0.0 && a.y == 0.0) {
498
+ sin_t = vec2(0.0, 0.0);
499
+ cos_t = vec2(1.0, 0.0);
500
+ }
501
+
502
+ sin_t = sin_taylor_fp64(a);
503
+ cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));
504
+ }
505
+
506
+ vec2 sin_fp64(vec2 a) {
507
+ if (a.x == 0.0 && a.y == 0.0) {
508
+ return vec2(0.0, 0.0);
509
+ }
510
+ vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
511
+ vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
512
+
513
+ vec2 t;
514
+ float q = floor(r.x / PI_2_FP64.x + 0.5);
515
+ int j = int(q);
516
+
517
+ if (j < -2 || j > 2) {
518
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
519
+ }
520
+
521
+ t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));
522
+
523
+ q = floor(t.x / PI_16_FP64.x + 0.5);
524
+ int k = int(q);
525
+
526
+ if (k == 0) {
527
+ if (j == 0) {
528
+ return sin_taylor_fp64(t);
529
+ } else if (j == 1) {
530
+ return cos_taylor_fp64(t);
531
+ } else if (j == -1) {
532
+ return -cos_taylor_fp64(t);
533
+ } else {
534
+ return -sin_taylor_fp64(t);
535
+ }
536
+ }
537
+
538
+ int abs_k = int(abs(float(k)));
539
+
540
+ if (abs_k > 4) {
541
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
542
+ } else {
543
+ t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));
544
+ }
545
+
546
+ vec2 u = vec2(0.0, 0.0);
547
+ vec2 v = vec2(0.0, 0.0);
548
+
549
+ #if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)
550
+ if (abs(float(abs_k) - 1.0) < 0.5) {
551
+ u = COS_TABLE_0_FP64;
552
+ v = SIN_TABLE_0_FP64;
553
+ } else if (abs(float(abs_k) - 2.0) < 0.5) {
554
+ u = COS_TABLE_1_FP64;
555
+ v = SIN_TABLE_1_FP64;
556
+ } else if (abs(float(abs_k) - 3.0) < 0.5) {
557
+ u = COS_TABLE_2_FP64;
558
+ v = SIN_TABLE_2_FP64;
559
+ } else if (abs(float(abs_k) - 4.0) < 0.5) {
560
+ u = COS_TABLE_3_FP64;
561
+ v = SIN_TABLE_3_FP64;
562
+ }
563
+ #else
564
+ if (abs_k == 1) {
565
+ u = COS_TABLE_0_FP64;
566
+ v = SIN_TABLE_0_FP64;
567
+ } else if (abs_k == 2) {
568
+ u = COS_TABLE_1_FP64;
569
+ v = SIN_TABLE_1_FP64;
570
+ } else if (abs_k == 3) {
571
+ u = COS_TABLE_2_FP64;
572
+ v = SIN_TABLE_2_FP64;
573
+ } else if (abs_k == 4) {
574
+ u = COS_TABLE_3_FP64;
575
+ v = SIN_TABLE_3_FP64;
576
+ }
577
+ #endif
578
+
579
+ vec2 sin_t, cos_t;
580
+ sincos_taylor_fp64(t, sin_t, cos_t);
581
+
582
+
583
+
584
+ vec2 result = vec2(0.0, 0.0);
585
+ if (j == 0) {
586
+ if (k > 0) {
587
+ result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
588
+ } else {
589
+ result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
590
+ }
591
+ } else if (j == 1) {
592
+ if (k > 0) {
593
+ result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
594
+ } else {
595
+ result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
596
+ }
597
+ } else if (j == -1) {
598
+ if (k > 0) {
599
+ result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));
600
+ } else {
601
+ result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));
602
+ }
603
+ } else {
604
+ if (k > 0) {
605
+ result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
606
+ } else {
607
+ result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));
608
+ }
609
+ }
610
+
611
+ return result;
612
+ }
613
+
614
+ vec2 cos_fp64(vec2 a) {
615
+ if (a.x == 0.0 && a.y == 0.0) {
616
+ return vec2(1.0, 0.0);
617
+ }
618
+ vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
619
+ vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
620
+
621
+ vec2 t;
622
+ float q = floor(r.x / PI_2_FP64.x + 0.5);
623
+ int j = int(q);
624
+
625
+ if (j < -2 || j > 2) {
626
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
627
+ }
628
+
629
+ t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));
630
+
631
+ q = floor(t.x / PI_16_FP64.x + 0.5);
632
+ int k = int(q);
633
+
634
+ if (k == 0) {
635
+ if (j == 0) {
636
+ return cos_taylor_fp64(t);
637
+ } else if (j == 1) {
638
+ return -sin_taylor_fp64(t);
639
+ } else if (j == -1) {
640
+ return sin_taylor_fp64(t);
641
+ } else {
642
+ return -cos_taylor_fp64(t);
643
+ }
644
+ }
645
+
646
+ int abs_k = int(abs(float(k)));
647
+
648
+ if (abs_k > 4) {
649
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
650
+ } else {
651
+ t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));
652
+ }
653
+
654
+ vec2 u = vec2(0.0, 0.0);
655
+ vec2 v = vec2(0.0, 0.0);
656
+
657
+ #if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)
658
+ if (abs(float(abs_k) - 1.0) < 0.5) {
659
+ u = COS_TABLE_0_FP64;
660
+ v = SIN_TABLE_0_FP64;
661
+ } else if (abs(float(abs_k) - 2.0) < 0.5) {
662
+ u = COS_TABLE_1_FP64;
663
+ v = SIN_TABLE_1_FP64;
664
+ } else if (abs(float(abs_k) - 3.0) < 0.5) {
665
+ u = COS_TABLE_2_FP64;
666
+ v = SIN_TABLE_2_FP64;
667
+ } else if (abs(float(abs_k) - 4.0) < 0.5) {
668
+ u = COS_TABLE_3_FP64;
669
+ v = SIN_TABLE_3_FP64;
670
+ }
671
+ #else
672
+ if (abs_k == 1) {
673
+ u = COS_TABLE_0_FP64;
674
+ v = SIN_TABLE_0_FP64;
675
+ } else if (abs_k == 2) {
676
+ u = COS_TABLE_1_FP64;
677
+ v = SIN_TABLE_1_FP64;
678
+ } else if (abs_k == 3) {
679
+ u = COS_TABLE_2_FP64;
680
+ v = SIN_TABLE_2_FP64;
681
+ } else if (abs_k == 4) {
682
+ u = COS_TABLE_3_FP64;
683
+ v = SIN_TABLE_3_FP64;
684
+ }
685
+ #endif
686
+
687
+ vec2 sin_t, cos_t;
688
+ sincos_taylor_fp64(t, sin_t, cos_t);
689
+
690
+ vec2 result = vec2(0.0, 0.0);
691
+ if (j == 0) {
692
+ if (k > 0) {
693
+ result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
694
+ } else {
695
+ result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
696
+ }
697
+ } else if (j == 1) {
698
+ if (k > 0) {
699
+ result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
700
+ } else {
701
+ result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));
702
+ }
703
+ } else if (j == -1) {
704
+ if (k > 0) {
705
+ result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
706
+ } else {
707
+ result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
708
+ }
709
+ } else {
710
+ if (k > 0) {
711
+ result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));
712
+ } else {
713
+ result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
714
+ }
715
+ }
716
+
717
+ return result;
718
+ }
719
+
720
+ vec2 tan_fp64(vec2 a) {
721
+ vec2 sin_a;
722
+ vec2 cos_a;
723
+
724
+ if (a.x == 0.0 && a.y == 0.0) {
725
+ return vec2(0.0, 0.0);
726
+ }
727
+ vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
728
+ vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
729
+
730
+ vec2 t;
731
+ float q = floor(r.x / PI_2_FP64.x + 0.5);
732
+ int j = int(q);
733
+
734
+
735
+ if (j < -2 || j > 2) {
736
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
737
+ }
738
+
739
+ t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));
740
+
741
+ q = floor(t.x / PI_16_FP64.x + 0.5);
742
+ int k = int(q);
743
+ int abs_k = int(abs(float(k)));
744
+
745
+ if (abs_k > 4) {
746
+ return vec2(0.0 / 0.0, 0.0 / 0.0);
747
+ } else {
748
+ t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));
749
+ }
750
+
751
+
752
+ vec2 u = vec2(0.0, 0.0);
753
+ vec2 v = vec2(0.0, 0.0);
754
+
755
+ vec2 sin_t, cos_t;
756
+ vec2 s, c;
757
+ sincos_taylor_fp64(t, sin_t, cos_t);
758
+
759
+ if (k == 0) {
760
+ s = sin_t;
761
+ c = cos_t;
762
+ } else {
763
+ #if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)
764
+ if (abs(float(abs_k) - 1.0) < 0.5) {
765
+ u = COS_TABLE_0_FP64;
766
+ v = SIN_TABLE_0_FP64;
767
+ } else if (abs(float(abs_k) - 2.0) < 0.5) {
768
+ u = COS_TABLE_1_FP64;
769
+ v = SIN_TABLE_1_FP64;
770
+ } else if (abs(float(abs_k) - 3.0) < 0.5) {
771
+ u = COS_TABLE_2_FP64;
772
+ v = SIN_TABLE_2_FP64;
773
+ } else if (abs(float(abs_k) - 4.0) < 0.5) {
774
+ u = COS_TABLE_3_FP64;
775
+ v = SIN_TABLE_3_FP64;
776
+ }
777
+ #else
778
+ if (abs_k == 1) {
779
+ u = COS_TABLE_0_FP64;
780
+ v = SIN_TABLE_0_FP64;
781
+ } else if (abs_k == 2) {
782
+ u = COS_TABLE_1_FP64;
783
+ v = SIN_TABLE_1_FP64;
784
+ } else if (abs_k == 3) {
785
+ u = COS_TABLE_2_FP64;
786
+ v = SIN_TABLE_2_FP64;
787
+ } else if (abs_k == 4) {
788
+ u = COS_TABLE_3_FP64;
789
+ v = SIN_TABLE_3_FP64;
790
+ }
791
+ #endif
792
+ if (k > 0) {
793
+ s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
794
+ c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
795
+ } else {
796
+ s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));
797
+ c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));
798
+ }
799
+ }
800
+
801
+ if (j == 0) {
802
+ sin_a = s;
803
+ cos_a = c;
804
+ } else if (j == 1) {
805
+ sin_a = c;
806
+ cos_a = -s;
807
+ } else if (j == -1) {
808
+ sin_a = -c;
809
+ cos_a = s;
810
+ } else {
811
+ sin_a = -s;
812
+ cos_a = -c;
813
+ }
814
+ return div_fp64(sin_a, cos_a);
815
+ }
816
+
817
+ vec2 radians_fp64(vec2 degree) {
818
+ return mul_fp64(degree, PI_180_FP64);
819
+ }
820
+
821
+ vec2 mix_fp64(vec2 a, vec2 b, float x) {
822
+ vec2 range = sub_fp64(b, a);
823
+ return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));
824
+ }
825
+
826
+ void vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
827
+ out_val[0] = sum_fp64(a[0], b[0]);
828
+ out_val[1] = sum_fp64(a[1], b[1]);
829
+ }
830
+
831
+ void vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
832
+ out_val[0] = sub_fp64(a[0], b[0]);
833
+ out_val[1] = sub_fp64(a[1], b[1]);
834
+ }
835
+
836
+ void vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
837
+ out_val[0] = mul_fp64(a[0], b[0]);
838
+ out_val[1] = mul_fp64(a[1], b[1]);
839
+ }
840
+
841
+ void vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
842
+ out_val[0] = div_fp64(a[0], b[0]);
843
+ out_val[1] = div_fp64(a[1], b[1]);
844
+ }
845
+
846
+ void vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {
847
+ vec2 range[2];
848
+ vec2_sub_fp64(y, x, range);
849
+ vec2 portion[2];
850
+ portion[0] = range[0] * a;
851
+ portion[1] = range[1] * a;
852
+ vec2_sum_fp64(x, portion, out_val);
853
+ }
854
+
855
+ vec2 vec2_length_fp64(vec2 x[2]) {
856
+ return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));
857
+ }
858
+
859
+ void vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {
860
+ vec2 length = vec2_length_fp64(x);
861
+ vec2 length_vec2[2];
862
+ length_vec2[0] = length;
863
+ length_vec2[1] = length;
864
+
865
+ vec2_div_fp64(x, length_vec2, out_val);
866
+ }
867
+
868
+ vec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {
869
+ vec2 diff[2];
870
+ vec2_sub_fp64(x, y, diff);
871
+ return vec2_length_fp64(diff);
872
+ }
873
+
874
+ vec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {
875
+ vec2 v[2];
876
+
877
+ v[0] = mul_fp64(a[0], b[0]);
878
+ v[1] = mul_fp64(a[1], b[1]);
879
+
880
+ return sum_fp64(v[0], v[1]);
881
+ }
882
+ void vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {
883
+ for (int i = 0; i < 3; i++) {
884
+ out_val[i] = sum_fp64(a[i], b[i]);
885
+ }
886
+ }
887
+
888
+ void vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {
889
+ for (int i = 0; i < 3; i++) {
890
+ out_val[i] = sum_fp64(a[i], b[i]);
891
+ }
892
+ }
893
+
894
+ vec2 vec3_length_fp64(vec2 x[3]) {
895
+ return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),
896
+ mul_fp64(x[2], x[2])));
897
+ }
898
+
899
+ vec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {
900
+ vec2 diff[3];
901
+ vec3_sub_fp64(x, y, diff);
902
+ return vec3_length_fp64(diff);
903
+ }
904
+ void vec4_fp64(vec4 a, out vec2 out_val[4]) {
905
+ out_val[0].x = a[0];
906
+ out_val[0].y = 0.0;
907
+
908
+ out_val[1].x = a[1];
909
+ out_val[1].y = 0.0;
910
+
911
+ out_val[2].x = a[2];
912
+ out_val[2].y = 0.0;
913
+
914
+ out_val[3].x = a[3];
915
+ out_val[3].y = 0.0;
916
+ }
917
+
918
+ void vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {
919
+ out_val[0] = mul_fp64(a[0], b);
920
+ out_val[1] = mul_fp64(a[1], b);
921
+ out_val[2] = mul_fp64(a[2], b);
922
+ out_val[3] = mul_fp64(a[3], b);
923
+ }
924
+
925
+ void vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {
926
+ for (int i = 0; i < 4; i++) {
927
+ out_val[i] = sum_fp64(a[i], b[i]);
928
+ }
929
+ }
930
+
931
+ void vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {
932
+ vec2 v[4];
933
+
934
+ v[0] = mul_fp64(a[0], b[0]);
935
+ v[1] = mul_fp64(a[1], b[1]);
936
+ v[2] = mul_fp64(a[2], b[2]);
937
+ v[3] = mul_fp64(a[3], b[3]);
938
+
939
+ out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));
940
+ }
941
+
942
+ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
943
+ vec2 tmp[4];
944
+
945
+ for (int i = 0; i < 4; i++)
946
+ {
947
+ for (int j = 0; j < 4; j++)
948
+ {
949
+ tmp[j] = b[j + i * 4];
950
+ }
951
+ vec4_dot_fp64(a, tmp, out_val[i]);
952
+ }
953
+ }
954
+ `;var Wo={ONE:1};function Yo(){return Wo}var Pn={name:"fp64-arithmetic",vs:xn,fs:null,getUniforms:Yo,fp64ify:$e,fp64LowPart:Br,fp64ifyMatrix4:zr},we={name:"fp64",vs:Mn,fs:null,dependencies:[Pn],fp64ify:$e,fp64LowPart:Br,fp64ifyMatrix4:zr};var $f=1/Math.PI*180,Kf=1/180*Math.PI,Ae={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0};function Vr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function de(e,r,t){var n=Ae.EPSILON;t&&(Ae.EPSILON=t);try{if(e===r)return!0;if(Vr(e)&&Vr(r)){if(e.length!==r.length)return!1;for(var i=0;i<e.length;++i)if(!de(e[i],r[i]))return!1;return!0}return e&&e.equals?e.equals(r):r&&r.equals?r.equals(e):typeof e=="number"&&typeof r=="number"?Math.abs(e-r)<=Ae.EPSILON*Math.max(1,Math.abs(e),Math.abs(r)):!1}finally{Ae.EPSILON=n}}var R=1e-6,re=typeof Float32Array<"u"?Float32Array:Array;var Qf=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var e=0,r=arguments.length;r--;)e+=arguments[r]*arguments[r];return Math.sqrt(e)});function Go(){var e=new re(2);return re!=Float32Array&&(e[0]=0,e[1]=0),e}function Ur(e,r,t){return e[0]=r[0]+t[0],e[1]=r[1]+t[1],e}function On(e,r){return e[0]=-r[0],e[1]=-r[1],e}function Xe(e,r,t,n){var i=r[0],a=r[1];return e[0]=i+n*(t[0]-i),e[1]=a+n*(t[1]-a),e}var Jf=function(){var e=Go();return function(r,t,n,i,a,o){var s,f;for(t||(t=2),n||(n=0),i?f=Math.min(i*t+n,r.length):f=r.length,s=n;s<f;s+=t)e[0]=r[s],e[1]=r[s+1],a(e,e,o),r[s]=e[0],r[s+1]=e[1];return r}}();function Ho(){var e=new re(3);return re!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function En(e,r,t){return e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function Zo(e,r,t){return e[0]=r[0]*t[0],e[1]=r[1]*t[1],e[2]=r[2]*t[2],e}function $o(e,r){var t=r[0]-e[0],n=r[1]-e[1],i=r[2]-e[2];return Math.hypot(t,n,i)}function Tn(e,r){return e[0]=-r[0],e[1]=-r[1],e[2]=-r[2],e}var wn=Zo;var An=$o;var el=function(){var e=Ho();return function(r,t,n,i,a,o){var s,f;for(t||(t=3),n||(n=0),i?f=Math.min(i*t+n,r.length):f=r.length,s=n;s<f;s+=t)e[0]=r[s],e[1]=r[s+1],e[2]=r[s+2],a(e,e,o),r[s]=e[0],r[s+1]=e[1],r[s+2]=e[2];return r}}();function Rn(e,r){var t=r[0],n=r[1],i=r[2],a=r[3],o=r[4],s=r[5],f=r[6],l=r[7],c=r[8],p=r[9],v=r[10],d=r[11],m=r[12],h=r[13],_=r[14],g=r[15],M=t*s-n*o,y=t*f-i*o,x=t*l-a*o,P=n*f-i*s,b=n*l-a*s,S=i*l-a*f,B=c*h-p*m,N=c*_-v*m,z=c*g-d*m,L=p*_-v*h,E=p*g-d*h,C=v*g-d*_,O=M*C-y*E+x*L+P*z-b*N+S*B;return O?(O=1/O,e[0]=(s*C-f*E+l*L)*O,e[1]=(i*E-n*C-a*L)*O,e[2]=(h*S-_*b+g*P)*O,e[3]=(v*b-p*S-d*P)*O,e[4]=(f*z-o*C-l*N)*O,e[5]=(t*C-i*z+a*N)*O,e[6]=(_*x-m*S-g*y)*O,e[7]=(c*S-v*x+d*y)*O,e[8]=(o*E-s*z+l*B)*O,e[9]=(n*z-t*E-a*B)*O,e[10]=(m*b-h*x+g*M)*O,e[11]=(p*x-c*b-d*M)*O,e[12]=(s*N-o*L-f*B)*O,e[13]=(t*L-n*N+i*B)*O,e[14]=(h*y-m*P-_*M)*O,e[15]=(c*P-p*y+v*M)*O,e):null}function Qe(e,r,t){var n=r[0],i=r[1],a=r[2],o=r[3],s=r[4],f=r[5],l=r[6],c=r[7],p=r[8],v=r[9],d=r[10],m=r[11],h=r[12],_=r[13],g=r[14],M=r[15],y=t[0],x=t[1],P=t[2],b=t[3];return e[0]=y*n+x*s+P*p+b*h,e[1]=y*i+x*f+P*v+b*_,e[2]=y*a+x*l+P*d+b*g,e[3]=y*o+x*c+P*m+b*M,y=t[4],x=t[5],P=t[6],b=t[7],e[4]=y*n+x*s+P*p+b*h,e[5]=y*i+x*f+P*v+b*_,e[6]=y*a+x*l+P*d+b*g,e[7]=y*o+x*c+P*m+b*M,y=t[8],x=t[9],P=t[10],b=t[11],e[8]=y*n+x*s+P*p+b*h,e[9]=y*i+x*f+P*v+b*_,e[10]=y*a+x*l+P*d+b*g,e[11]=y*o+x*c+P*m+b*M,y=t[12],x=t[13],P=t[14],b=t[15],e[12]=y*n+x*s+P*p+b*h,e[13]=y*i+x*f+P*v+b*_,e[14]=y*a+x*l+P*d+b*g,e[15]=y*o+x*c+P*m+b*M,e}function Se(e,r,t){var n=t[0],i=t[1],a=t[2],o,s,f,l,c,p,v,d,m,h,_,g;return r===e?(e[12]=r[0]*n+r[4]*i+r[8]*a+r[12],e[13]=r[1]*n+r[5]*i+r[9]*a+r[13],e[14]=r[2]*n+r[6]*i+r[10]*a+r[14],e[15]=r[3]*n+r[7]*i+r[11]*a+r[15]):(o=r[0],s=r[1],f=r[2],l=r[3],c=r[4],p=r[5],v=r[6],d=r[7],m=r[8],h=r[9],_=r[10],g=r[11],e[0]=o,e[1]=s,e[2]=f,e[3]=l,e[4]=c,e[5]=p,e[6]=v,e[7]=d,e[8]=m,e[9]=h,e[10]=_,e[11]=g,e[12]=o*n+c*i+m*a+r[12],e[13]=s*n+p*i+h*a+r[13],e[14]=f*n+v*i+_*a+r[14],e[15]=l*n+d*i+g*a+r[15]),e}function Je(e,r,t){var n=t[0],i=t[1],a=t[2];return e[0]=r[0]*n,e[1]=r[1]*n,e[2]=r[2]*n,e[3]=r[3]*n,e[4]=r[4]*i,e[5]=r[5]*i,e[6]=r[6]*i,e[7]=r[7]*i,e[8]=r[8]*a,e[9]=r[9]*a,e[10]=r[10]*a,e[11]=r[11]*a,e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function In(e,r,t){var n=Math.sin(t),i=Math.cos(t),a=r[4],o=r[5],s=r[6],f=r[7],l=r[8],c=r[9],p=r[10],v=r[11];return r!==e&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[4]=a*i+l*n,e[5]=o*i+c*n,e[6]=s*i+p*n,e[7]=f*i+v*n,e[8]=l*i-a*n,e[9]=c*i-o*n,e[10]=p*i-s*n,e[11]=v*i-f*n,e}function Fn(e,r,t){var n=Math.sin(t),i=Math.cos(t),a=r[0],o=r[1],s=r[2],f=r[3],l=r[4],c=r[5],p=r[6],v=r[7];return r!==e&&(e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=a*i+l*n,e[1]=o*i+c*n,e[2]=s*i+p*n,e[3]=f*i+v*n,e[4]=l*i-a*n,e[5]=c*i-o*n,e[6]=p*i-s*n,e[7]=v*i-f*n,e}function Ko(e,r,t,n,i){var a=1/Math.tan(r/2),o;return e[0]=a/t,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0?(o=1/(n-i),e[10]=(i+n)*o,e[14]=2*i*n*o):(e[10]=-1,e[14]=-2*n),e}var Ln=Ko;function Wr(e,r){var t=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],f=e[6],l=e[7],c=e[8],p=e[9],v=e[10],d=e[11],m=e[12],h=e[13],_=e[14],g=e[15],M=r[0],y=r[1],x=r[2],P=r[3],b=r[4],S=r[5],B=r[6],N=r[7],z=r[8],L=r[9],E=r[10],C=r[11],O=r[12],J=r[13],H=r[14],U=r[15];return Math.abs(t-M)<=R*Math.max(1,Math.abs(t),Math.abs(M))&&Math.abs(n-y)<=R*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-x)<=R*Math.max(1,Math.abs(i),Math.abs(x))&&Math.abs(a-P)<=R*Math.max(1,Math.abs(a),Math.abs(P))&&Math.abs(o-b)<=R*Math.max(1,Math.abs(o),Math.abs(b))&&Math.abs(s-S)<=R*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(f-B)<=R*Math.max(1,Math.abs(f),Math.abs(B))&&Math.abs(l-N)<=R*Math.max(1,Math.abs(l),Math.abs(N))&&Math.abs(c-z)<=R*Math.max(1,Math.abs(c),Math.abs(z))&&Math.abs(p-L)<=R*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(v-E)<=R*Math.max(1,Math.abs(v),Math.abs(E))&&Math.abs(d-C)<=R*Math.max(1,Math.abs(d),Math.abs(C))&&Math.abs(m-O)<=R*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(h-J)<=R*Math.max(1,Math.abs(h),Math.abs(J))&&Math.abs(_-H)<=R*Math.max(1,Math.abs(_),Math.abs(H))&&Math.abs(g-U)<=R*Math.max(1,Math.abs(g),Math.abs(U))}function Xo(){var e=new re(4);return re!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function kn(e,r,t){return e[0]=r[0]*t,e[1]=r[1]*t,e[2]=r[2]*t,e[3]=r[3]*t,e}function Nn(e,r,t){var n=r[0],i=r[1],a=r[2],o=r[3];return e[0]=t[0]*n+t[4]*i+t[8]*a+t[12]*o,e[1]=t[1]*n+t[5]*i+t[9]*a+t[13]*o,e[2]=t[2]*n+t[6]*i+t[10]*a+t[14]*o,e[3]=t[3]*n+t[7]*i+t[11]*a+t[15]*o,e}var rl=function(){var e=Xo();return function(r,t,n,i,a,o){var s,f;for(t||(t=4),n||(n=0),i?f=Math.min(i*t+n,r.length):f=r.length,s=n;s<f;s+=t)e[0]=r[s],e[1]=r[s+1],e[2]=r[s+2],e[3]=r[s+3],a(e,e,o),r[s]=e[0],r[s+1]=e[1],r[s+2]=e[2],r[s+3]=e[3];return r}}();var er=u(T());var jn=`
955
+ const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
956
+
957
+ uniform vec2 project_uViewProjectionMatrixFP64[16];
958
+ void mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {
959
+
960
+ #if defined(NVIDIA_FP64_WORKAROUND)
961
+ out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);
962
+ #else
963
+ out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);
964
+ #endif
965
+ out_val[1] = sum_fp64(PI_FP64,
966
+ log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));
967
+ return;
968
+ }
969
+
970
+ void project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {
971
+ vec2 pos_fp64[2];
972
+ mercatorProject_fp64(position_fp64, pos_fp64);
973
+ out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);
974
+ out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);
975
+
976
+ return;
977
+ }
978
+
979
+ void project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {
980
+ vec4 position64xy = vec4(
981
+ position.x, position64xyLow.x,
982
+ position.y, position64xyLow.y);
983
+
984
+ project_position_fp64(position64xy, out_val);
985
+ }
986
+
987
+ vec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {
988
+ vec2 vertex_pos_clipspace[4];
989
+ mat4_vec4_mul_fp64(project_uViewProjectionMatrixFP64, vertex_pos_modelspace,
990
+ vertex_pos_clipspace);
991
+ return vec4(
992
+ vertex_pos_clipspace[0].x,
993
+ vertex_pos_clipspace[1].x,
994
+ vertex_pos_clipspace[2].x,
995
+ vertex_pos_clipspace[3].x
996
+ );
997
+ }
998
+
999
+ vec4 project_position_to_clipspace(
1000
+ vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition
1001
+ ) {
1002
+ vec2 offset64[4];
1003
+ vec4_fp64(vec4(offset, 0.0), offset64);
1004
+
1005
+ float z = project_size(position.z);
1006
+ vec2 projectedPosition64xy[2];
1007
+ project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);
1008
+
1009
+ vec2 commonPosition64[4];
1010
+ commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);
1011
+ commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);
1012
+ commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));
1013
+ commonPosition64[3] = vec2(1.0, 0.0);
1014
+
1015
+ commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);
1016
+
1017
+ return project_common_position_to_clipspace_fp64(commonPosition64);
1018
+ }
1019
+
1020
+ vec4 project_position_to_clipspace(
1021
+ vec3 position, vec3 position64xyLow, vec3 offset
1022
+ ) {
1023
+ vec4 commonPosition;
1024
+ return project_position_to_clipspace(
1025
+ position, position64xyLow, offset, commonPosition
1026
+ );
1027
+ }
1028
+ `;var Qo=we.fp64ify,Jo=we.fp64ifyMatrix4,rr={name:"project64",dependencies:[er.project,we],vs:jn,getUniforms:rs},es=(0,er._memoize)(ts);function rs(e){if(e&&"viewport"in e){var r=e.viewport,t=r.viewProjectionMatrix,n=r.scale;return es({viewProjectionMatrix:t,scale:n})}return{}}function ts(e){var r=e.viewProjectionMatrix,t=e.scale,n=Jo(r),i=Qo(t);return{project_uViewProjectionMatrixFP64:n,project64_uViewProjectionMatrix:n,project64_uScale:i}}function ns(e){var r=is();return function(){var n=(0,Yr.default)(e),i;if(r){var a=(0,Yr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Vn.default)(this,i)}}function is(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Gr=function(e){(0,zn.default)(t,e);var r=ns(t);function t(){return(0,Dn.default)(this,t),r.apply(this,arguments)}return(0,Bn.default)(t,[{key:"getShaders",value:function(){var i=this.props.coordinateSystem;if(i!==Re.COORDINATE_SYSTEM.LNGLAT&&i!==Re.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[rr]}}}]),t}(Re.LayerExtension);(0,Un.default)(Gr,"extensionName","Fp64Extension");var Yn=u(I()),Gn=u(F()),Hn=u(q()),Zn=u(W()),Hr=u(V()),Zr=u(A()),Ie=u(T());var qn={inject:{"vs:#decl":`
1029
+ attribute vec2 instanceDashArrays;
1030
+ attribute float instanceDashOffsets;
1031
+ varying vec2 vDashArray;
1032
+ varying float vDashOffset;
1033
+ `,"vs:#main-end":`
1034
+ vDashArray = instanceDashArrays;
1035
+ vDashOffset = instanceDashOffsets / width.x;
1036
+ `,"fs:#decl":`
1037
+ uniform float dashAlignMode;
1038
+ uniform float capType;
1039
+ uniform bool dashGapPickable;
1040
+ varying vec2 vDashArray;
1041
+ varying float vDashOffset;
1042
+
1043
+ float round(float x) {
1044
+ return floor(x + 0.5);
1045
+ }
1046
+ `,"fs:#main-start":`
1047
+ float solidLength = vDashArray.x;
1048
+ float gapLength = vDashArray.y;
1049
+ float unitLength = solidLength + gapLength;
1050
+
1051
+ float offset;
1052
+
1053
+ if (unitLength > 0.0) {
1054
+ if (dashAlignMode == 0.0) {
1055
+ offset = vDashOffset;
1056
+ } else {
1057
+ unitLength = vPathLength / round(vPathLength / unitLength);
1058
+ offset = solidLength / 2.0;
1059
+ }
1060
+
1061
+ float unitOffset = mod(clamp(vPathPosition.y, 0.0, vPathLength) + offset, unitLength);
1062
+
1063
+ if (gapLength > 0.0 && unitOffset > solidLength) {
1064
+ if (capType <= 0.5) {
1065
+ if (!(dashGapPickable && picking_uActive)) {
1066
+ discard;
1067
+ }
1068
+ } else {
1069
+ float distToEnd = length(vec2(
1070
+ min(unitOffset - solidLength, unitLength - unitOffset),
1071
+ vPathPosition.x
1072
+ ));
1073
+ if (distToEnd > 1.0) {
1074
+ if (!(dashGapPickable && picking_uActive)) {
1075
+ discard;
1076
+ }
1077
+ }
1078
+ }
1079
+ }
1080
+ }
1081
+ `}},Wn={inject:{"vs:#decl":`
1082
+ attribute float instanceOffsets;
1083
+ `,"vs:DECKGL_FILTER_SIZE":`
1084
+ float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1085
+ size *= offsetWidth;
1086
+ `,"vCornerOffset = offsetVec;":`
1087
+ float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1088
+ vec2 offsetCenter = -instanceOffsets * (isCap ? perp : miterVec * miterSize) * 2.0;
1089
+ vCornerOffset = vCornerOffset * offsetWidth - offsetCenter;
1090
+ `,"fs:#main-start":`
1091
+ float isInside;
1092
+ isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);
1093
+ if (isInside == 0.0) {
1094
+ discard;
1095
+ }
1096
+ `}};function as(e){var r=os();return function(){var n=(0,Hr.default)(e),i;if(r){var a=(0,Hr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Zn.default)(this,i)}}function os(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ss={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},tr=function(e){(0,Hn.default)(t,e);var r=as(t);function t(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.dash,a=i===void 0?!1:i,o=n.offset,s=o===void 0?!1:o,f=n.highPrecisionDash,l=f===void 0?!1:f;return(0,Yn.default)(this,t),r.call(this,{dash:a||l,offset:s,highPrecisionDash:l})}return(0,Gn.default)(t,[{key:"isEnabled",value:function(i){return"pathTesselator"in i.state}},{key:"getShaders",value:function(i){if(!i.isEnabled(this))return null;var a={};return i.opts.dash&&(a=(0,Ie._mergeShaders)(a,qn)),i.opts.offset&&(a=(0,Ie._mergeShaders)(a,Wn)),a}},{key:"initializeState",value:function(i,a){var o=this.getAttributeManager();!o||!a.isEnabled(this)||(a.opts.dash&&o.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"}}),a.opts.highPrecisionDash&&o.addInstanced({instanceDashOffsets:{size:1,accessor:"getPath",transform:a.getDashOffsets.bind(this)}}),a.opts.offset&&o.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}},{key:"updateState",value:function(i,a){if(a.isEnabled(this)){var o={};a.opts.dash&&(o.dashAlignMode=this.props.dashJustified?1:0,o.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model.setUniforms(o)}}},{key:"getDashOffsets",value:function(i){for(var a=[0],o=this.props.positionFormat==="XY"?2:3,s=Array.isArray(i[0]),f=s?i.length:i.length/o,l,c,p=0;p<f-1;p++)l=s?i[p]:i.slice(p*o,p*o+o),l=this.projectPosition(l),p>0&&(a[p]=a[p-1]+An(c,l)),c=l;return a}}]),t}(Ie.LayerExtension);(0,Zr.default)(tr,"defaultProps",ss);(0,Zr.default)(tr,"extensionName","PathStyleExtension");var Kn=u(I()),Xn=u(F()),Qn=u(q()),Jn=u(W()),$r=u(V()),nr=u(A()),ei=u(T()),ri=u(Y());var Fe=u(T()),fs=`
1097
+ #ifdef NON_INSTANCED_MODEL
1098
+ #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1099
+ #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
1100
+ #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets
1101
+ #else
1102
+ #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames
1103
+ #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales
1104
+ #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets
1105
+ #endif
1106
+
1107
+ attribute vec4 FILL_PATTERN_FRAME_ATTRIB;
1108
+ attribute float FILL_PATTERN_SCALE_ATTRIB;
1109
+ attribute vec2 FILL_PATTERN_OFFSET_ATTRIB;
1110
+
1111
+ uniform bool fill_patternEnabled;
1112
+ uniform vec2 fill_patternTextureSize;
1113
+
1114
+ varying vec2 fill_uv;
1115
+ varying vec4 fill_patternBounds;
1116
+ varying vec4 fill_patternPlacement;
1117
+ `,ls=`
1118
+ uniform bool fill_patternEnabled;
1119
+ uniform bool fill_patternMask;
1120
+ uniform sampler2D fill_patternTexture;
1121
+ uniform vec2 fill_uvCoordinateOrigin;
1122
+ uniform vec2 fill_uvCoordinateOrigin64Low;
1123
+
1124
+ varying vec4 fill_patternBounds;
1125
+ varying vec4 fill_patternPlacement;
1126
+ varying vec2 fill_uv;
1127
+
1128
+ const float FILL_UV_SCALE = 512.0 / 40000000.0;
1129
+ `,cs={"vs:DECKGL_FILTER_GL_POSITION":`
1130
+ fill_uv = geometry.position.xy;
1131
+ `,"vs:DECKGL_FILTER_COLOR":`
1132
+ if (fill_patternEnabled) {
1133
+ fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);
1134
+ fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;
1135
+ fill_patternPlacement.zw = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.zw;
1136
+ }
1137
+ `,"fs:DECKGL_FILTER_COLOR":`
1138
+ if (fill_patternEnabled) {
1139
+ vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
1140
+ vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uvCoordinateOrigin64Low + fill_uv, scale) / scale;
1141
+ patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);
1142
+
1143
+ vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
1144
+
1145
+ vec4 patternColor = texture2D(fill_patternTexture, texCoords);
1146
+ color.a *= patternColor.a;
1147
+ if (!fill_patternMask) {
1148
+ color.rgb = patternColor.rgb;
1149
+ }
1150
+ }
1151
+ `};function us(e,r){if(!e)return{};if("fillPatternTexture"in e){var t=e.fillPatternTexture;return{fill_patternTexture:t,fill_patternTextureSize:[t.width,t.height]}}if("viewport"in e){var n=e.fillPatternMask,i=n===void 0?!0:n,a=e.fillPatternEnabled,o=a===void 0?!0:a,s=r,f=s.project_uCommonOrigin,l=[(0,Fe.fp64LowPart)(f[0]),(0,Fe.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:l,fill_patternMask:i,fill_patternEnabled:o}}return{}}var $n={name:"fill-pattern",vs:fs,fs:ls,inject:cs,dependencies:[Fe.project],getUniforms:us};function ps(e){var r=vs();return function(){var n=(0,$r.default)(e),i;if(r){var a=(0,$r.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Jn.default)(this,i)}}function vs(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ds={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:(0,nr.default)({},10241,9729)},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(r){return r.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},ir=function(e){(0,Qn.default)(t,e);var r=ps(t);function t(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.pattern,a=i===void 0?!1:i;return(0,Kn.default)(this,t),r.call(this,{pattern:a})}return(0,Xn.default)(t,[{key:"isEnabled",value:function(i){return i.getAttributeManager()!==null&&!("pathTesselator"in i.state)}},{key:"getShaders",value:function(i){return i.isEnabled(this)?{modules:[i.opts.pattern&&$n].filter(Boolean)}:null}},{key:"initializeState",value:function(i,a){if(a.isEnabled(this)){var o=this.getAttributeManager();a.opts.pattern&&o.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:a.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 ri.Texture2D(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}}},{key:"updateState",value:function(i,a){var o=i.props,s=i.oldProps;a.isEnabled(this)&&o.fillPatternMapping&&o.fillPatternMapping!==s.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")}},{key:"draw",value:function(i,a){if(a.isEnabled(this)){var o=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:o||this.state.emptyTexture})}}},{key:"finalizeState",value:function(){var i=this.state,a=i.patternTexture,o=i.emptyTexture;a?.delete(),o?.delete()}},{key:"getPatternFrame",value:function(i){var a=this.getCurrentLayer().props.fillPatternMapping,o=a&&a[i];return o?[o.x,o.y,o.width,o.height]:[0,0,0,0]}}]),t}(ei.LayerExtension);(0,nr.default)(ir,"defaultProps",ds);(0,nr.default)(ir,"extensionName","FillStyleExtension");var ti=u(I()),ni=u(F()),ii=u(q()),ai=u(W()),Kr=u(V()),Xr=u(A()),oi=u(T());function ms(e){var r=hs();return function(){var n=(0,Kr.default)(e),i;if(r){var a=(0,Kr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,ai.default)(this,i)}}function hs(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var _s={clipBounds:[0,0,1,1],clipByInstance:void 0},si=`
1152
+ uniform vec4 clip_bounds;
1153
+
1154
+ bool clip_isInBounds(vec2 position) {
1155
+ return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1156
+ }
1157
+ `,gs={name:"clip-vs",vs:si},ys={"vs:#decl":`
1158
+ varying float clip_isVisible;
1159
+ `,"vs:DECKGL_FILTER_GL_POSITION":`
1160
+ clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
1161
+ `,"fs:#decl":`
1162
+ varying float clip_isVisible;
1163
+ `,"fs:DECKGL_FILTER_COLOR":`
1164
+ if (clip_isVisible < 0.5) discard;
1165
+ `},xs={name:"clip-fs",fs:si},Ms={"vs:#decl":`
1166
+ varying vec2 clip_commonPosition;
1167
+ `,"vs:DECKGL_FILTER_GL_POSITION":`
1168
+ clip_commonPosition = geometry.position.xy;
1169
+ `,"fs:#decl":`
1170
+ varying vec2 clip_commonPosition;
1171
+ `,"fs:DECKGL_FILTER_COLOR":`
1172
+ if (!clip_isInBounds(clip_commonPosition)) discard;
1173
+ `},ar=function(e){(0,ii.default)(t,e);var r=ms(t);function t(){return(0,ti.default)(this,t),r.apply(this,arguments)}return(0,ni.default)(t,[{key:"getShaders",value:function(){var i="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(i=Boolean(this.props.clipByInstance)),this.state.clipByInstance=i,i?{modules:[gs],inject:ys}:{modules:[xs],inject:Ms}}},{key:"draw",value:function(i){var a=i.uniforms,o=this.props.clipBounds;if(this.state.clipByInstance)a.clip_bounds=o;else{var s=this.projectPosition([o[0],o[1],0]),f=this.projectPosition([o[2],o[3],0]);a.clip_bounds=[Math.min(s[0],f[0]),Math.min(s[1],f[1]),Math.max(s[0],f[0]),Math.max(s[1],f[1])]}}}]),t}(oi.LayerExtension);(0,Xr.default)(ar,"defaultProps",_s);(0,Xr.default)(ar,"extensionName","ClipExtension");var Xi=u(I()),Qi=u(F()),Ji=u(q()),ea=u(W()),ht=u(V()),_t=u(A()),ra=u(T());var fi=u(T()),Ps=`
1174
+ #ifdef NON_INSTANCED_MODEL
1175
+ attribute float collidePriorities;
1176
+ #else
1177
+ attribute float instanceCollidePriorities;
1178
+ #endif
1179
+
1180
+ uniform sampler2D collide_texture;
1181
+ uniform bool collide_sort;
1182
+ uniform bool collide_enabled;
1183
+
1184
+ vec2 collide_getCoords(vec4 position) {
1185
+ vec4 collide_clipspace = project_common_position_to_clipspace(position);
1186
+ return (1.0 + collide_clipspace.xy / collide_clipspace.w) / 2.0;
1187
+ }
1188
+
1189
+ float collide_match(vec2 tex, vec3 pickingColor) {
1190
+ vec4 collide_pickingColor = texture2D(collide_texture, tex);
1191
+ float delta = dot(abs(collide_pickingColor.rgb - pickingColor), vec3(1.0));
1192
+ float e = 0.001;
1193
+ return step(delta, e);
1194
+ }
1195
+
1196
+ float collide_isVisible(vec2 texCoords, vec3 pickingColor) {
1197
+ if (!collide_enabled) {
1198
+ return 1.0;
1199
+ }
1200
+
1201
+ // Visibility test, sample area of 5x5 pixels in order to fade in/out.
1202
+ // Due to the locality, the lookups will be cached
1203
+ // This reduces the flicker present when objects are shown/hidden
1204
+ const int N = 2;
1205
+ float accumulator = 0.0;
1206
+ vec2 step = vec2(1.0 / project_uViewportSize);
1207
+
1208
+ const float floatN = float(N);
1209
+ vec2 delta = -floatN * step;
1210
+ for(int i = -N; i <= N; i++) {
1211
+ delta.x = -step.x * floatN;
1212
+ for(int j = -N; j <= N; j++) {
1213
+ accumulator += collide_match(texCoords + delta, pickingColor);
1214
+ delta.x += step.x;
1215
+ }
1216
+ delta.y += step.y;
1217
+ }
1218
+
1219
+ float W = 2.0 * floatN + 1.0;
1220
+ return pow(accumulator / (W * W), 2.2);
1221
+ }
1222
+ `,bs={"vs:#decl":`
1223
+ float collide_fade = 1.0;
1224
+ `,"vs:DECKGL_FILTER_GL_POSITION":`
1225
+ if (collide_sort) {
1226
+ #ifdef NON_INSTANCED_MODEL
1227
+ float collidePriority = collidePriorities;
1228
+ #else
1229
+ float collidePriority = instanceCollidePriorities;
1230
+ #endif
1231
+ position.z = -0.001 * collidePriority * position.w; // Support range -1000 -> 1000
1232
+ }
1233
+
1234
+ if (collide_enabled) {
1235
+ vec4 collide_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1236
+ vec2 collide_texCoords = collide_getCoords(collide_common_position);
1237
+ collide_fade = collide_isVisible(collide_texCoords, geometry.pickingColor / 255.0);
1238
+ if (collide_fade < 0.0001) {
1239
+ position = vec4(0.);
1240
+ }
1241
+ }
1242
+ `,"vs:DECKGL_FILTER_COLOR":`
1243
+ color.a *= collide_fade;
1244
+ `},Os=function(r,t){if(!r||!("dummyCollideMap"in r))return{};var n=r.collideFBO,i=r.drawToCollideMap,a=r.dummyCollideMap;return{collide_sort:Boolean(i),collide_texture:!i&&n?n:a}},li={name:"collide",dependencies:[fi.project],vs:Ps,inject:bs,getUniforms:Os};var Hi=u(I()),Zi=u(F()),D=u(A()),se=u(Y());var $i=u(T());var pi=u(A()),vi=u(I()),di=u(F()),mi=u(q()),hi=u(W()),Qr=u(V()),_i=u(Y()),gi=u(T());function ci(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function ui(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ci(Object(t),!0).forEach(function(n){(0,pi.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ci(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Es(e){var r=Ts();return function(){var n=(0,Qr.default)(e),i;if(r){var a=(0,Qr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,hi.default)(this,i)}}function Ts(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var yi=function(e){(0,mi.default)(t,e);var r=Es(t);function t(){return(0,vi.default)(this,t),r.apply(this,arguments)}return(0,di.default)(t,[{key:"renderCollideMap",value:function(i,a){var o=this,s=this.gl,f=1;return(0,_i.withParameters)(s,{scissorTest:!0,scissor:[f,f,i.width-2*f,i.height-2*f],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return o.render(ui(ui({},a),{},{target:i,pass:"collide"}))})}},{key:"getModuleParameters",value:function(){return{drawToCollideMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}}}]),t}(gi._LayersPass);var Ui=u(I()),qi=u(F()),X=u(A()),Wi=u(T()),Yi=u(Y());var Oi=u(I()),Ei=u(F()),et=u(qe()),Ti=u(Jr()),wi=u(q()),Ai=u(W()),fr=u(V()),oe=u(A()),me=u(Y()),Si=u(T());function Pi(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function bi(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?Pi(Object(t),!0).forEach(function(n){(0,oe.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Pi(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Rs(e){var r=Is();return function(){var n=(0,fr.default)(e),i;if(r){var a=(0,fr.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Ai.default)(this,i)}}function Is(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ri=function(e){(0,wi.default)(t,e);var r=Rs(t);function t(n,i){var a,o;(0,Oi.default)(this,t),o=r.call(this,n,i),(0,oe.default)((0,et.default)(o),"maskMap",void 0),(0,oe.default)((0,et.default)(o),"fbo",void 0);var s=i.mapSize,f=s===void 0?2048:s;return o.maskMap=new me.Texture2D(n,{width:f,height:f,parameters:(a={},(0,oe.default)(a,10241,9729),(0,oe.default)(a,10240,9729),(0,oe.default)(a,10242,33071),(0,oe.default)(a,10243,33071),a)}),o.fbo=new me.Framebuffer(n,{id:"maskmap",width:f,height:f,attachments:(0,oe.default)({},36064,o.maskMap)}),o}return(0,Ei.default)(t,[{key:"render",value:function(i){var a=this,o=this.gl,s=[!1,!1,!1,!1];return s[i.channel]=!0,(0,me.withParameters)(o,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:s,depthTest:!1},function(){return(0,Ti.default)((0,fr.default)(t.prototype),"render",a).call(a,bi(bi({},i),{},{target:a.fbo,pass:"mask"}))})}},{key:"shouldDrawLayer",value:function(i){return i.props.operation.includes("mask")}},{key:"delete",value:function(){this.fbo.delete(),this.maskMap.delete()}}]),t}(Si._LayersPass);var Pe=u(T());function he(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function rt(e){if(Array.isArray(e))return he(e)}function tt(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Le(e,r){if(e){if(typeof e=="string")return he(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return he(e,r)}}function nt(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1245
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _e(e){return rt(e)||tt(e)||Le(e)||nt()}function it(e){if(Array.isArray(e))return e}function at(e,r){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var n=[],i=!0,a=!1,o,s;try{for(t=t.call(e);!(i=(o=t.next()).done)&&(n.push(o.value),!(r&&n.length===r));i=!0);}catch(f){a=!0,s=f}finally{try{!i&&t.return!=null&&t.return()}finally{if(a)throw s}}return n}}function ot(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1246
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function j(e,r){return it(e)||at(e,r)||Le(e,r)||ot()}function st(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function Ii(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function ft(e,r,t){return r&&Ii(e.prototype,r),t&&Ii(e,t),e}function w(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function ge(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function ce(e,r){var t=Nn([],r,e);return kn(t,t,1/t[3]),t}function Ce(e,r,t){return e<r?r:e>t?t:e}function Fs(e){return Math.log(e)*Math.LOG2E}var lr=Math.log2||Fs;function Z(e,r){if(!e)throw new Error(r||"@math.gl/web-mercator: assertion failed.")}var $=Math.PI,Li=$/4,te=$/180,lt=180/$,ke=512,Fi=4003e4,xe=85.051129,ct=1.5;function cr(e){return Math.pow(2,e)}function ne(e){var r=j(e,2),t=r[0],n=r[1];Z(Number.isFinite(t)),Z(Number.isFinite(n)&&n>=-90&&n<=90,"invalid latitude");var i=t*te,a=n*te,o=ke*(i+$)/(2*$),s=ke*($+Math.log(Math.tan(Li+a*.5)))/(2*$);return[o,s]}function K(e){var r=j(e,2),t=r[0],n=r[1],i=t/ke*(2*$)-$,a=2*(Math.atan(Math.exp(n/ke*(2*$)-$))-Li);return[i*lt,a*lt]}function ut(e){var r=e.latitude,t=e.longitude,n=e.highPrecision,i=n===void 0?!1:n;Z(Number.isFinite(r)&&Number.isFinite(t));var a=ke,o=Math.cos(r*te),s=a/360,f=s/o,l=a/Fi/o,c={unitsPerMeter:[l,l,l],metersPerUnit:[1/l,1/l,1/l],unitsPerDegree:[s,f,l],degreesPerUnit:[1/s,1/f,1/l]};if(i){var p=te*Math.tan(r*te)/o,v=s*p/2,d=a/Fi*p,m=d/f*l;c.unitsPerDegree2=[0,v,d],c.unitsPerMeter2=[m,0,m]}return c}function pt(e){var r=e.height,t=e.pitch,n=e.bearing,i=e.altitude,a=e.scale,o=e.center,s=ge();Se(s,s,[0,0,-i]),In(s,s,-t*te),Fn(s,s,n*te);var f=a/r;return Je(s,s,[f,f,f]),o&&Se(s,s,Tn([],o)),s}function Ci(e){var r=e.width,t=e.height,n=e.altitude,i=e.pitch,a=i===void 0?0:i,o=e.offset,s=e.center,f=e.scale,l=e.nearZMultiplier,c=l===void 0?1:l,p=e.farZMultiplier,v=p===void 0?1:p,d=e.fovy,m=d===void 0?ye(ct):d;n!==void 0&&(m=ye(n));var h=m*te,_=a*te,g=ur(m),M=g;s&&(M+=s[2]*f/Math.cos(_)/t);var y=h*(.5+(o?o[1]:0)/t),x=Math.sin(y)*M/Math.sin(Ce(Math.PI/2-_-y,.01,Math.PI-.01)),P=Math.sin(_)*x+M,b=M*10,S=Math.min(P*v,b);return{fov:h,aspect:r/t,focalDistance:g,near:c,far:S}}function vt(e){var r=Ci(e),t=r.fov,n=r.aspect,i=r.near,a=r.far,o=Ln([],t,n,i,a);return o}function ye(e){return 2*Math.atan(.5/e)*lt}function ur(e){return .5/Math.tan(.5*e*te)}function dt(e,r){var t=j(e,3),n=t[0],i=t[1],a=t[2],o=a===void 0?0:a;return Z(Number.isFinite(n)&&Number.isFinite(i)&&Number.isFinite(o)),ce(r,[n,i,o,1])}function pr(e,r){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=j(e,3),i=n[0],a=n[1],o=n[2];if(Z(Number.isFinite(i)&&Number.isFinite(a),"invalid pixel coordinate"),Number.isFinite(o)){var s=ce(r,[i,a,o,1]);return s}var f=ce(r,[i,a,0,1]),l=ce(r,[i,a,1,1]),c=f[2],p=l[2],v=c===p?0:((t||0)-c)/(p-c);return Xe([],f,l,v)}function Me(e){var r=e.width,t=e.height,n=e.bounds,i=e.minExtent,a=i===void 0?0:i,o=e.maxZoom,s=o===void 0?24:o,f=e.offset,l=f===void 0?[0,0]:f,c=j(n,2),p=j(c[0],2),v=p[0],d=p[1],m=j(c[1],2),h=m[0],_=m[1],g=Ls(e.padding),M=ne([v,Ce(_,-xe,xe)]),y=ne([h,Ce(d,-xe,xe)]),x=[Math.max(Math.abs(y[0]-M[0]),a),Math.max(Math.abs(y[1]-M[1]),a)],P=[r-g.left-g.right-Math.abs(l[0])*2,t-g.top-g.bottom-Math.abs(l[1])*2];Z(P[0]>0&&P[1]>0);var b=P[0]/x[0],S=P[1]/x[1],B=(g.right-g.left)/2/b,N=(g.bottom-g.top)/2/S,z=[(y[0]+M[0])/2+B,(y[1]+M[1])/2+N],L=K(z),E=Math.min(s,lr(Math.abs(Math.min(b,S))));return Z(Number.isFinite(E)),{longitude:L[0],latitude:L[1],zoom:E}}function Ls(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return typeof e=="number"?{top:e,bottom:e,left:e,right:e}:(Z(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var ki=Math.PI/180;function vr(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=e.width,n=e.height,i=e.unproject,a={targetZ:r},o=i([0,n],a),s=i([t,n],a),f,l,c=e.fovy?.5*e.fovy*ki:Math.atan(.5/e.altitude),p=(90-e.pitch)*ki;return c>p-.01?(f=Ni(e,0,r),l=Ni(e,t,r)):(f=i([0,0],a),l=i([t,0],a)),[o,s,l,f]}function Ni(e,r,t){var n=e.pixelUnprojectionMatrix,i=ce(n,[r,0,1,1]),a=ce(n,[r,e.height,1,1]),o=t*e.distanceScales.unitsPerMeter[2],s=(o-i[2])/(a[2]-i[2]),f=Xe([],i,a,s),l=K(f);return l.push(t),l}var ji=function(){function e(){var r=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{width:1,height:1};st(this,e),w(this,"latitude",void 0),w(this,"longitude",void 0),w(this,"zoom",void 0),w(this,"pitch",void 0),w(this,"bearing",void 0),w(this,"altitude",void 0),w(this,"fovy",void 0),w(this,"meterOffset",void 0),w(this,"center",void 0),w(this,"width",void 0),w(this,"height",void 0),w(this,"scale",void 0),w(this,"distanceScales",void 0),w(this,"viewMatrix",void 0),w(this,"projectionMatrix",void 0),w(this,"viewProjectionMatrix",void 0),w(this,"pixelProjectionMatrix",void 0),w(this,"pixelUnprojectionMatrix",void 0),w(this,"equals",function(E){return E instanceof e?E.width===r.width&&E.height===r.height&&Wr(E.projectionMatrix,r.projectionMatrix)&&Wr(E.viewMatrix,r.viewMatrix):!1}),w(this,"project",function(E){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=C.topLeft,J=O===void 0?!0:O,H=r.projectPosition(E),U=dt(H,r.pixelProjectionMatrix),ve=j(U,2),De=ve[0],Ee=ve[1],Te=J?Ee:r.height-Ee;return E.length===2?[De,Te]:[De,Te,U[2]]}),w(this,"unproject",function(E){var C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=C.topLeft,J=O===void 0?!0:O,H=C.targetZ,U=H===void 0?void 0:H,ve=j(E,3),De=ve[0],Ee=ve[1],Te=ve[2],eo=J?Ee:r.height-Ee,ro=U&&U*r.distanceScales.unitsPerMeter[2],to=pr([De,eo,Te],r.pixelUnprojectionMatrix,ro),no=r.unprojectPosition(to),wr=j(no,3),Ar=wr[0],Sr=wr[1],io=wr[2];return Number.isFinite(Te)?[Ar,Sr,io]:Number.isFinite(U)?[Ar,Sr,U]:[Ar,Sr]}),w(this,"projectPosition",function(E){var C=ne(E),O=j(C,2),J=O[0],H=O[1],U=(E[2]||0)*r.distanceScales.unitsPerMeter[2];return[J,H,U]}),w(this,"unprojectPosition",function(E){var C=K(E),O=j(C,2),J=O[0],H=O[1],U=(E[2]||0)*r.distanceScales.metersPerUnit[2];return[J,H,U]});var n=t.width,i=t.height,a=t.altitude,o=a===void 0?null:a,s=t.fovy,f=s===void 0?null:s,l=t.latitude,c=l===void 0?0:l,p=t.longitude,v=p===void 0?0:p,d=t.zoom,m=d===void 0?0:d,h=t.pitch,_=h===void 0?0:h,g=t.bearing,M=g===void 0?0:g,y=t.position,x=y===void 0?null:y,P=t.nearZMultiplier,b=P===void 0?.02:P,S=t.farZMultiplier,B=S===void 0?1.01:S;n=n||1,i=i||1,f===null&&o===null?(o=ct,f=ye(o)):f===null?f=ye(o):o===null&&(o=ur(f));var N=cr(m);o=Math.max(.75,o);var z=ut({longitude:v,latitude:c}),L=ne([v,c]);L.push(0),x&&En(L,L,wn([],x,z.unitsPerMeter)),this.projectionMatrix=vt({width:n,height:i,scale:N,center:L,pitch:_,fovy:f,nearZMultiplier:b,farZMultiplier:B}),this.viewMatrix=pt({height:i,scale:N,center:L,pitch:_,bearing:M,altitude:o}),this.width=n,this.height=i,this.scale=N,this.latitude=c,this.longitude=v,this.zoom=m,this.pitch=_,this.bearing=M,this.altitude=o,this.fovy=f,this.center=L,this.meterOffset=x||[0,0,0],this.distanceScales=z,this._initMatrices(),Object.freeze(this)}return ft(e,[{key:"_initMatrices",value:function(){var t=this.width,n=this.height,i=this.projectionMatrix,a=this.viewMatrix,o=ge();Qe(o,o,i),Qe(o,o,a),this.viewProjectionMatrix=o;var s=ge();Je(s,s,[t/2,-n/2,1]),Se(s,s,[1,-1,0]),Qe(s,s,o);var f=Rn(ge(),s);if(!f)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=s,this.pixelUnprojectionMatrix=f}},{key:"projectFlat",value:function(t){return ne(t)}},{key:"unprojectFlat",value:function(t){return K(t)}},{key:"getMapCenterByLngLatPosition",value:function(t){var n=t.lngLat,i=t.pos,a=pr(i,this.pixelUnprojectionMatrix),o=ne(n),s=Ur([],o,On([],a)),f=Ur([],this.center,s);return K(f)}},{key:"fitBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.width,a=this.height,o=Me(Object.assign({width:i,height:a,bounds:t},n)),s=o.longitude,f=o.latitude,l=o.zoom;return new e({width:i,height:a,longitude:s,latitude:f,zoom:l})}},{key:"getBounds",value:function(t){var n=this.getBoundingRegion(t),i=Math.min.apply(Math,_e(n.map(function(f){return f[0]}))),a=Math.max.apply(Math,_e(n.map(function(f){return f[0]}))),o=Math.min.apply(Math,_e(n.map(function(f){return f[1]}))),s=Math.max.apply(Math,_e(n.map(function(f){return f[1]})));return[[i,o],[a,s]]}},{key:"getBoundingRegion",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return vr(this,t.z||0)}},{key:"getLocationAtPoint",value:function(t){var n=t.lngLat,i=t.pos;return this.getMapCenterByLngLatPosition({lngLat:n,pos:i})}}]),e}();function ks(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Ns(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1247
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function Ns(e,r){if(e){if(typeof e=="string")return Di(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Di(e,r)}}function Di(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function Bi(e){var r=e.layers,t=e.viewport,n=null,i=ks(r),a;try{for(i.s();!(a=i.n()).done;){var o=a.value,s=o.getBounds();s&&(n?(n[0]=Math.min(n[0],s[0][0]),n[1]=Math.min(n[1],s[0][1]),n[2]=Math.max(n[2],s[1][0]),n[3]=Math.max(n[3],s[1][1])):n=[s[0][0],s[0][1],s[1][0],s[1][1]])}}catch(c){i.e(c)}finally{i.f()}var f=t.getBounds();if(!n)return f;var l=js(f);return n[2]-n[0]<l[2]-l[0]||n[3]-n[1]<l[3]-l[1]||(n[0]=Math.max(n[0],l[0]),n[1]=Math.max(n[1],l[1]),n[2]=Math.min(n[2],l[2]),n[3]=Math.min(n[3],l[3])),n}function zi(e){var r=e.bounds,t=e.viewport,n=e.width,i=e.height;if(r[2]<=r[0]||r[3]<=r[1])return null;if(t.resolution!==void 0)return Pe.log.warn("MaskExtension is not supported in GlobeView")(),null;var a=1;if(n-=a*2,i-=a*2,t.isGeospatial){var o=Me({width:n,height:i,bounds:[[r[0],r[1]],[r[2],r[3]]],maxZoom:20}),s=o.longitude,f=o.latitude,l=o.zoom;return new Pe.WebMercatorViewport({longitude:s,latitude:f,zoom:l,x:a,y:a,width:n,height:i})}var c=[(r[0]+r[2])/2,(r[1]+r[3])/2,0],p=Math.min(1048576,n/(r[2]-r[0]),i/(r[3]-r[1]));return new Pe.OrthographicView({x:a,y:a}).makeViewport({width:n,height:i,viewState:{target:c,zoom:Math.log2(p)}})}function js(e){var r={x:e[2]-e[0],y:e[3]-e[1]},t={x:e[0]+.5*r.x,y:e[1]+.5*r.y};return[t.x-r.x,t.y-r.y,t.x+r.x,t.y+r.y]}function Ds(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Bs(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1248
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function Bs(e,r){if(e){if(typeof e=="string")return Vi(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Vi(e,r)}}function Vi(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var dr=function(){function e(){(0,Ui.default)(this,e),(0,X.default)(this,"id","mask-effect"),(0,X.default)(this,"props",null),(0,X.default)(this,"useInPicking",!0),(0,X.default)(this,"order",0),(0,X.default)(this,"dummyMaskMap",void 0),(0,X.default)(this,"channels",[]),(0,X.default)(this,"masks",null),(0,X.default)(this,"maskPass",void 0),(0,X.default)(this,"maskMap",void 0),(0,X.default)(this,"lastViewport",void 0)}return(0,qi.default)(e,[{key:"preRender",value:function(t,n){var i=n.layers,a=n.layerFilter,o=n.viewports,s=n.onViewportActive,f=n.views,l=n.pass,c=!1;if(this.dummyMaskMap||(this.dummyMaskMap=new Yi.Texture2D(t,{width:1,height:1})),l.startsWith("picking"))return{didRender:c};var p=i.filter(function(g){return g.props.visible&&g.props.operation.includes("mask")});if(p.length===0)return this.masks=null,this.channels.length=0,{didRender:c};this.masks={},this.maskPass||(this.maskPass=new Ri(t,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var v=this._sortMaskChannels(p),d=o[0],m=!this.lastViewport||!this.lastViewport.equals(d);for(var h in v){var _=this._renderChannel(v[h],{layerFilter:a,onViewportActive:s,views:f,viewport:d,viewportChanged:m});c||(c=_)}return{didRender:c}}},{key:"_renderChannel",value:function(t,n){var i=n.layerFilter,a=n.onViewportActive,o=n.views,s=n.viewport,f=n.viewportChanged,l=!1,c=this.channels[t.index];if(!c)return l;var p=t===c||c.layers.length!==t.layers.length||t.layerBounds.some(function(h,_){return h!==c.layerBounds[_]});if(t.bounds=c.bounds,t.maskBounds=c.maskBounds,this.channels[t.index]=t,(p||f)&&(this.lastViewport=s,t.bounds=Bi({layers:t.layers,viewport:s}),p||!de(t.bounds,c.bounds))){var v=this.maskPass,d=this.maskMap,m=zi({bounds:t.bounds,viewport:s,width:d.width,height:d.height});t.maskBounds=m?m.getBounds():[0,0,1,1],v.render({pass:"mask",channel:t.index,layers:t.layers,layerFilter:i,viewports:m?[m]:[],onViewportActive:a,views:o,moduleParameters:{devicePixelRatio:1}}),l=!0}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},l}},{key:"_sortMaskChannels",value:function(t){var n=this,i={},a=0,o=Ds(t),s;try{var f=function(){var h=s.value,_=h.root.id,g=i[_];if(!g){if(++a>4)return Wi.log.warn("Too many mask layers. The max supported is 4")(),"continue";g={id:_,index:n.channels.findIndex(function(M){return M?.id===_}),layers:[],layerBounds:[],coordinateOrigin:h.root.props.coordinateOrigin,coordinateSystem:h.root.props.coordinateSystem},i[_]=g}g.layers.push(h),g.layerBounds.push(h.getBounds())};for(o.s();!(s=o.n()).done;)var l=f()}catch(m){o.e(m)}finally{o.f()}for(var c=0;c<4;c++){var p=this.channels[c];(!p||!(p.id in i))&&(this.channels[c]=null)}for(var v in i){var d=i[v];d.index<0&&(d.index=this.channels.findIndex(function(m){return!m}),this.channels[d.index]=d)}return i}},{key:"getModuleParameters",value:function(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}},{key:"cleanup",value:function(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0}}]),e}();function zs(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Vs(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1249
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function Vs(e,r){if(e){if(typeof e=="string")return Gi(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Gi(e,r)}}function Gi(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var mt=2,Ki=function(){function e(){(0,Hi.default)(this,e),(0,D.default)(this,"id","collide-effect"),(0,D.default)(this,"props",null),(0,D.default)(this,"useInPicking",!0),(0,D.default)(this,"order",1),(0,D.default)(this,"channels",{}),(0,D.default)(this,"collidePass",void 0),(0,D.default)(this,"collideFBOs",{}),(0,D.default)(this,"dummyCollideMap",void 0),(0,D.default)(this,"lastViewport",void 0)}return(0,Zi.default)(e,[{key:"preRender",value:function(t,n){var i,a=n.effects,o=n.layers,s=n.layerFilter,f=n.viewports,l=n.onViewportActive,c=n.views,p=n.pass,v=n.preRenderStats,d=v===void 0?{}:v;if(this.dummyCollideMap||(this.dummyCollideMap=new se.Texture2D(t,{width:1,height:1})),!p.startsWith("picking")){var m=o.filter(function(S){var B=S.props,N=B.visible,z=B.collideEnabled;return N&&z});if(m.length===0){this.channels={};return}this.collidePass||(this.collidePass=new yi(t,{id:"default-collide"}));var h=a?.filter(function(S){return S.constructor===dr}),_=(i=d["mask-effect"])===null||i===void 0?void 0:i.didRender,g=this._groupByCollideGroup(t,m),M=f[0],y=!this.lastViewport||!this.lastViewport.equals(M)||_;for(var x in g){var P=this.collideFBOs[x],b=g[x];P.resize({width:t.canvas.width/mt,height:t.canvas.height/mt}),this._render(b,{effects:h,layerFilter:s,onViewportActive:l,views:c,viewport:M,viewportChanged:y})}}}},{key:"_render",value:function(t,n){var i=n.effects,a=n.layerFilter,o=n.onViewportActive,s=n.views,f=n.viewport,l=n.viewportChanged,c=t.collideGroup,p=this.channels[c];if(p){var v=l||t===p||!(0,$i._deepEqual)(p.layers,t.layers,0)||t.layerBounds.some(function(m,h){return!de(m,p.layerBounds[h])});if(this.channels[c]=t,v){this.lastViewport=f;var d=this.collideFBOs[c];this.collidePass.renderCollideMap(d,{pass:"collide",layers:t.layers,effects:i,layerFilter:a,viewports:f?[f]:[],onViewportActive:o,views:s,moduleParameters:{dummyCollideMap:this.dummyCollideMap,devicePixelRatio:(0,se.cssToDeviceRatio)(d.gl)/mt}})}}}},{key:"_groupByCollideGroup",value:function(t,n){var i={},a=zs(n),o;try{for(a.s();!(o=a.n()).done;){var s=o.value,f=s.props.collideGroup,l=i[f];l||(l={collideGroup:f,layers:[],layerBounds:[]},i[f]=l),l.layers.push(s),l.layerBounds.push(s.getBounds())}}catch(_){a.e(_)}finally{a.f()}for(var c=0,p=Object.keys(i);c<p.length;c++){var v=p[c];this.collideFBOs[v]||this.createFBO(t,v),this.channels[v]||(this.channels[v]=i[v])}for(var d=0,m=Object.keys(this.collideFBOs);d<m.length;d++){var h=m[d];i[h]||this.destroyFBO(h)}return i}},{key:"getModuleParameters",value:function(t){var n=t.props.collideGroup,i=this.collideFBOs,a=this.dummyCollideMap;return{collideFBO:i[n],dummyCollideMap:a}}},{key:"cleanup",value:function(){this.dummyCollideMap&&(this.dummyCollideMap.delete(),this.dummyCollideMap=void 0),this.channels={};for(var t=0,n=Object.keys(this.collideFBOs);t<n.length;t++){var i=n[t];this.destroyFBO(i)}this.collideFBOs={},this.lastViewport=void 0}},{key:"createFBO",value:function(t,n){var i,a,o=t.canvas,s=o.width,f=o.height,l=new se.Texture2D(t,{width:s,height:f,parameters:(i={},(0,D.default)(i,10241,9728),(0,D.default)(i,10240,9728),(0,D.default)(i,10242,33071),(0,D.default)(i,10243,33071),i)}),c=new se.Renderbuffer(t,{format:33189,width:s,height:f});this.collideFBOs[n]=new se.Framebuffer(t,{id:"Collide-".concat(n),width:s,height:f,attachments:(a={},(0,D.default)(a,36064,l),(0,D.default)(a,36096,c),a)})}},{key:"destroyFBO",value:function(t){for(var n=this.collideFBOs[t],i=0,a=Object.values(n.attachments);i<a.length;i++){var o=a[i];o.delete()}n.delete(),delete this.collideFBOs[t]}}]),e}();function Us(e){var r=qs();return function(){var n=(0,ht.default)(e),i;if(r){var a=(0,ht.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,ea.default)(this,i)}}function qs(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ws={getCollidePriority:{type:"accessor",value:0},collideEnabled:!0,collideGroup:{type:"string",value:"default"},collideTestProps:{}},mr=function(e){(0,Ji.default)(t,e);var r=Us(t);function t(){return(0,Xi.default)(this,t),r.apply(this,arguments)}return(0,Qi.default)(t,[{key:"getShaders",value:function(){return{modules:[li]}}},{key:"draw",value:function(i){var a=i.uniforms,o=i.context,s=i.moduleParameters,f=this.props.collideEnabled,l=s.collideFBO,c=s.drawToCollideMap,p=f&&Boolean(l);a.collide_enabled=p,c&&(this.props=this.clone(this.props.collideTestProps).props)}},{key:"initializeState",value:function(i,a){var o;if(this.getAttributeManager()!==null){(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new Ki);var s=this.getAttributeManager();s.add({collidePriorities:{size:1,accessor:"getCollidePriority",shaderAttributes:{collidePriorities:{divisor:0},instanceCollidePriorities:{divisor:1}}}})}}},{key:"getNeedsPickingBuffer",value:function(){return this.props.collideEnabled}}]),t}(ra.LayerExtension);(0,_t.default)(mr,"defaultProps",Ws);(0,_t.default)(mr,"extensionName","CollideExtension");var ia=u(I()),aa=u(F()),oa=u(q()),sa=u(W()),gt=u(V()),yt=u(A()),ue=u(T());var ta=u(T()),Ys=`
1250
+ uniform vec4 mask_bounds;
1251
+ uniform bool mask_maskByInstance;
1252
+ vec2 mask_getCoords(vec4 position) {
1253
+ return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1254
+ }
1255
+ `,Gs=`
1256
+ uniform sampler2D mask_texture;
1257
+ uniform int mask_channel;
1258
+ uniform bool mask_enabled;
1259
+ uniform bool mask_inverted;
1260
+ bool mask_isInBounds(vec2 texCoords) {
1261
+ if (!mask_enabled) {
1262
+ return true;
1263
+ }
1264
+ vec4 maskColor = texture2D(mask_texture, texCoords);
1265
+ float maskValue = 1.0;
1266
+ if (mask_channel == 0) {
1267
+ maskValue = maskColor.r;
1268
+ } else if (mask_channel == 1) {
1269
+ maskValue = maskColor.g;
1270
+ } else if (mask_channel == 2) {
1271
+ maskValue = maskColor.b;
1272
+ } else if (mask_channel == 3) {
1273
+ maskValue = maskColor.a;
1274
+ }
1275
+
1276
+ if (mask_inverted) {
1277
+ return maskValue >= 0.5;
1278
+ } else {
1279
+ return maskValue < 0.5;
1280
+ }
1281
+ }
1282
+ `,Hs={"vs:#decl":`
1283
+ varying vec2 mask_texCoords;
1284
+ `,"vs:#main-end":`
1285
+ vec4 mask_common_position;
1286
+ if (mask_maskByInstance) {
1287
+ mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1288
+ } else {
1289
+ mask_common_position = geometry.position;
1290
+ }
1291
+ mask_texCoords = mask_getCoords(mask_common_position);
1292
+ `,"fs:#decl":`
1293
+ varying vec2 mask_texCoords;
1294
+ `,"fs:#main-start":`
1295
+ if (mask_enabled) {
1296
+ bool mask = mask_isInBounds(mask_texCoords);
1297
+
1298
+ // Debug: show extent of render target
1299
+ // gl_FragColor = vec4(mask_texCoords, 0.0, 1.0);
1300
+ gl_FragColor = texture2D(mask_texture, mask_texCoords);
1301
+
1302
+ if (!mask) discard;
1303
+ }
1304
+ `},Zs=function(r){return r&&"maskMap"in r?{mask_texture:r.maskMap}:{}},na={name:"mask",dependencies:[ta.project],vs:Ys,fs:Gs,inject:Hs,getUniforms:Zs};function $s(e){var r=Ks();return function(){var n=(0,gt.default)(e),i;if(r){var a=(0,gt.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,sa.default)(this,i)}}function Ks(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Xs={maskId:"",maskByInstance:void 0,maskInverted:!1},hr=function(e){(0,oa.default)(t,e);var r=$s(t);function t(){return(0,ia.default)(this,t),r.apply(this,arguments)}return(0,aa.default)(t,[{key:"initializeState",value:function(){var i;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new dr)}},{key:"getShaders",value:function(){var i="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(i=Boolean(this.props.maskByInstance)),this.state.maskByInstance=i,{modules:[na]}}},{key:"draw",value:function(i){var a=i.uniforms,o=i.context,s=i.moduleParameters;a.mask_maskByInstance=this.state.maskByInstance;var f=this.props,l=f.maskId,c=f.maskInverted,p=s.maskChannels,v=o.viewport;if(p&&p[l]){var d=p[l],m=d.index,h=d.bounds,_=d.coordinateOrigin,g=p[l].coordinateSystem;a.mask_enabled=!0,a.mask_channel=m,a.mask_inverted=c,g===ue.COORDINATE_SYSTEM.DEFAULT&&(g=v.isGeospatial?ue.COORDINATE_SYSTEM.LNGLAT:ue.COORDINATE_SYSTEM.CARTESIAN);var M={modelMatrix:null,fromCoordinateOrigin:_,fromCoordinateSystem:g},y=this.projectPosition([h[0],h[1],0],M),x=this.projectPosition([h[2],h[3],0],M);a.mask_bounds=[y[0],y[1],x[0],x[1]]}else l&&ue.log.warn("Could not find a mask layer with id: ".concat(l))(),a.mask_enabled=!1}}]),t}(ue.LayerExtension);(0,yt.default)(hr,"defaultProps",Xs);(0,yt.default)(hr,"extensionName","MaskExtension");var $a=u(I()),Ka=u(F()),Xa=u(q()),Qa=u(W()),Ot=u(V()),Et=u(A()),Ja=u(T());var Wa=u(Dr()),Ya=u(I()),Ga=u(F()),G=u(A()),Er=u(Y()),Ha=u(T());var la=u(T()),ie={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},fa=Object.keys(ie).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ie[e],".0;")}).join(`
1305
+ `),_r={name:"terrain",dependencies:[la.project],inject:{"vs:#decl":`
1306
+ uniform float terrain_mode;
1307
+ uniform sampler2D terrain_map;
1308
+ uniform vec4 terrain_bounds;
1309
+ varying vec3 commonPos;
1310
+ `.concat(fa,`
1311
+ `),"vs:#main-start":`
1312
+ if (terrain_mode == TERRAIN_MODE_SKIP) {
1313
+ gl_Position = vec4(0.0);
1314
+ return;
1315
+ }
1316
+ `,"vs:DECKGL_FILTER_GL_POSITION":`
1317
+ commonPos = geometry.position.xyz;
1318
+ if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1319
+ vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1320
+ position = vec4(texCoords * 2.0 - 1.0, 0.0, 1.0);
1321
+ }
1322
+ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
1323
+ vec3 anchor = geometry.worldPosition;
1324
+ anchor.z = 0.0;
1325
+ vec3 anchorCommon = project_position(anchor);
1326
+ vec2 texCoords = (anchorCommon.xy - terrain_bounds.xy) / terrain_bounds.zw;
1327
+ if (texCoords.x >= 0.0 && texCoords.y >= 0.0 && texCoords.x <= 1.0 && texCoords.y <= 1.0) {
1328
+ float terrainZ = texture2D(terrain_map, texCoords).r;
1329
+ geometry.position.z += terrainZ;
1330
+ position = project_common_position_to_clipspace(geometry.position);
1331
+ }
1332
+ }
1333
+ `,"fs:#decl":`
1334
+ uniform float terrain_mode;
1335
+ uniform sampler2D terrain_map;
1336
+ uniform vec4 terrain_bounds;
1337
+ varying vec3 commonPos;
1338
+ `.concat(fa,`
1339
+ `),"fs:#main-start":`
1340
+ if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1341
+ gl_FragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1342
+ return;
1343
+ }
1344
+ `,"fs:DECKGL_FILTER_COLOR":`
1345
+ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY)) {
1346
+ vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1347
+ vec4 pixel = texture2D(terrain_map, texCoords);
1348
+ if (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY) {
1349
+ color = pixel;
1350
+ } else {
1351
+ // pixel is premultiplied
1352
+ color = pixel + color * (1.0 - pixel.a);
1353
+ }
1354
+ return;
1355
+ }
1356
+ `},getUniforms:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in r){var n=r.drawToTerrainHeightMap,i=r.heightMap,a=r.heightMapBounds,o=r.dummyHeightMap,s=r.terrainCover,f=r.useTerrainHeightMap,l=r.terrainSkipRender,c=t.project_uCommonOrigin,p=l?ie.SKIP:ie.NONE,v=o,d=null;if(n)p=ie.WRITE_HEIGHT_MAP,d=a;else if(f&&i)p=ie.USE_HEIGHT_MAP,v=i,d=a;else if(s){var m=r.pickingActive;v=m?s.getPickingFramebuffer():s.getRenderFramebuffer(),m&&(p=ie.SKIP),v?(p=p===ie.SKIP?ie.USE_COVER_ONLY:ie.USE_COVER,d=s.bounds):v=o}return{terrain_mode:p,terrain_map:v,terrain_bounds:d?[d[0]-c[0],d[1]-c[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};var ma=u(I()),ha=u(F()),Q=u(A());var pe=u(A()),be=u(Y());function ca(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function ua(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ca(Object(t),!0).forEach(function(n){(0,pe.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ca(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Ne(e,r){var t;return new be.Framebuffer(e,{id:r.id,attachments:(0,pe.default)({},36064,new be.Texture2D(e,ua(ua({},r.float&&{format:(0,be.isWebGL2)(e)?34836:6408,type:5126}),{},{mipmaps:!1,parameters:(t={},(0,pe.default)(t,10241,9729),(0,pe.default)(t,10240,9729),(0,pe.default)(t,10242,33071),(0,pe.default)(t,10243,33071),t)})))})}var va=u(Dr()),gr=u(T());function Qs(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=Js(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1357
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function Js(e,r){if(e){if(typeof e=="string")return pa(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return pa(e,r)}}function pa(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function yr(e,r){var t=[1/0,1/0,-1/0,-1/0],n=Qs(e),i;try{for(n.s();!(i=n.n()).done;){var a=i.value,o=a.getBounds();if(o){var s=a.projectPosition(o[0],{viewport:r,autoOffset:!1}),f=a.projectPosition(o[1],{viewport:r,autoOffset:!1});t[0]=Math.min(t[0],s[0]),t[1]=Math.min(t[1],s[1]),t[2]=Math.max(t[2],f[0]),t[3]=Math.max(t[3],f[1])}}}catch(l){n.e(l)}finally{n.f()}return Number.isFinite(t[0])?t:null}var ef=2048;function xr(e){var r=e.bounds,t=e.viewport,n=e.border,i=n===void 0?0:n,a=t.isGeospatial;if(r[2]<=r[0]||r[3]<=r[1])return null;var o=t.unprojectPosition([(r[0]+r[2])/2,(r[1]+r[3])/2,0]),s=ef-i*2,f=e.width,l=e.height,c=e.zoom;if(c===void 0){var p=Math.min(f/(r[2]-r[0]),l/(r[3]-r[1]));c=Math.min(Math.log2(p),20)}else if(!f||!l){var v=Math.pow(2,c);if(f=Math.round(Math.abs(r[2]-r[0])*v),l=Math.round(Math.abs(r[3]-r[1])*v),f>s||l>s){var d=s/Math.max(f,l);f=Math.round(f*d),l=Math.round(l*d),c+=Math.log2(d)}}return a?new gr.WebMercatorViewport({x:i,y:i,width:f,height:l,longitude:o[0],latitude:o[1],zoom:c,orthographic:!0}):new gr.OrthographicViewport({x:i,y:i,width:f,height:l,target:o,zoom:c,flipY:!1})}function rf(e,r){var t;if(r&&r.length===2){var n=(0,va.default)(r,2),i=n[0],a=n[1],o=e.getBounds({z:i}),s=e.getBounds({z:a});t=[Math.min(o[0],s[0]),Math.min(o[1],s[1]),Math.max(o[2],s[2]),Math.max(o[3],s[3])]}else t=e.getBounds();var f=e.projectPosition(t.slice(0,2)),l=e.projectPosition(t.slice(2,4));return[f[0],f[1],l[0],l[1]]}function Mr(e,r,t){if(!e)return[0,0,1,1];var n=rf(r,t),i=tf(n);return e[2]-e[0]<=i[2]-i[0]&&e[3]-e[1]<=i[3]-i[1]?e:[Math.max(e[0],i[0]),Math.max(e[1],i[1]),Math.min(e[2],i[2]),Math.min(e[3],i[3])]}function tf(e){var r=e[2]-e[0],t=e[3]-e[1],n=(e[0]+e[2])/2,i=(e[1]+e[3])/2;return[n-r,i-t,n+r,i+t]}function nf(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=af(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1358
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function af(e,r){if(e){if(typeof e=="string")return da(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return da(e,r)}}function da(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var _a=function(){function e(r){(0,ma.default)(this,e),(0,Q.default)(this,"isDirty",!0),(0,Q.default)(this,"targetLayer",void 0),(0,Q.default)(this,"renderViewport",null),(0,Q.default)(this,"bounds",null),(0,Q.default)(this,"fbo",void 0),(0,Q.default)(this,"pickingFbo",void 0),(0,Q.default)(this,"layers",[]),(0,Q.default)(this,"tile",void 0),(0,Q.default)(this,"targetBounds",null),(0,Q.default)(this,"targetBoundsCommon",null),this.targetLayer=r,this.tile=ga(r)}return(0,ha.default)(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}},{key:"shouldUpdate",value:function(t){var n=t.targetLayer,i=t.viewport,a=t.layers,o=t.layerNeedsRedraw;n&&(this.targetLayer=n);var s=i?this._updateViewport(i):!1,f=a?this._updateLayers(a):!1;if(o){var l=nf(this.layers),c;try{for(l.s();!(c=l.n()).done;){var p=c.value;if(o[p]){f=!0;break}}}catch(v){l.e(v)}finally{l.f()}}return f||s}},{key:"_updateLayers",value:function(t){var n=!1;if(t=this.tile?of(this.tile,t):t,t.length!==this.layers.length)n=!0;else for(var i=0;i<t.length;i++){var a=t[i].id;if(a!==this.layers[i]){n=!0;break}}return n&&(this.layers=t.map(function(o){return o.id})),n}},{key:"_updateViewport",value:function(t){var n=this.targetLayer,i=!1;if(this.targetBounds!==n.getBounds()&&(i=!0,this.targetBounds=n.getBounds(),this.targetBoundsCommon=yr([n],t)),!this.targetBoundsCommon)return!1;var a=Math.ceil(t.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var o,s=(o=this.renderViewport)===null||o===void 0?void 0:o.zoom;i=i||a!==s;var f=Mr(this.targetBoundsCommon,t),l=this.bounds;i=i||!l||f.some(function(c,p){return c!==l[p]}),this.bounds=f}return i&&(this.renderViewport=xr({bounds:this.bounds,zoom:a,viewport:t})),i}},{key:"getRenderFramebuffer",value:function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=Ne(this.targetLayer.context.gl,{id:this.id})),this.fbo)}},{key:"getPickingFramebuffer",value:function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=Ne(this.targetLayer.context.gl,{id:"".concat(this.id,"-picking")})),this.pickingFbo)}},{key:"filterLayers",value:function(t){var n=this;return t.filter(function(i){var a=i.id;return n.layers.includes(a)})}},{key:"delete",value:function(){var t=this.fbo,n=this.pickingFbo;t&&(t.texture.delete(),t.delete()),n&&(n.texture.delete(),n.delete())}}]),e}();function of(e,r){return r.filter(function(t){var n=ga(t);return n?sf(e.bbox,n.bbox):!0})}function ga(e){for(;e;){var r=e.props.tile;if(r)return r;e=e.parent}return null}function sf(e,r){return"west"in e&&"west"in r?e.west<r.east&&r.west<e.east&&e.south<r.north&&r.south<e.north:"left"in e&&"left"in r?e.left<r.right&&r.left<e.right&&e.top<r.bottom&&r.top<e.bottom:!1}var xa=u(A()),Ma=u(I()),Pa=u(F()),ba=u(q()),Oa=u(W()),xt=u(V()),Mt=u(Y()),Ea=u(T());function ya(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Pr(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ya(Object(t),!0).forEach(function(n){(0,xa.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ya(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function ff(e){var r=lf();return function(){var n=(0,xt.default)(e),i;if(r){var a=(0,xt.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Oa.default)(this,i)}}function lf(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ta=function(e){(0,ba.default)(t,e);var r=ff(t);function t(){return(0,Ma.default)(this,t),r.apply(this,arguments)}return(0,Pa.default)(t,[{key:"getRenderableLayers",value:function(i,a){for(var o=a.layers,s=[],f=this._getDrawLayerParams(i,a,!0),l=0;l<o.length;l++){var c=o[l];!c.isComposite&&f[l].shouldDrawLayer&&s.push(c)}return s}},{key:"renderHeightMap",value:function(i,a){var o=this,s=i.getRenderFramebuffer(),f=i.renderViewport;!s||!f||(s.resize(f),(0,Mt.withParameters)(this.gl,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return o.render(Pr(Pr({},a),{},{target:s,pass:"terrain-height-map",layers:a.layers,viewports:[f],effects:[]}))}))}},{key:"renderTerrainCover",value:function(i,a){var o=this,s=i.getRenderFramebuffer(),f=i.renderViewport;if(!(!s||!f)){var l=i.filterLayers(a.layers);s.resize(f),(0,Mt.withParameters)(this.gl,{depthTest:!1},function(){return o.render(Pr(Pr({},a),{},{target:s,pass:"terrain-cover-".concat(i.id),layers:l,effects:[],viewports:[f]}))})}}}]),t}(Ea._LayersPass);var Sa=u(I()),Ra=u(F()),Ia=u(qe()),Fa=u(Jr()),La=u(q()),Ca=u(W()),br=u(V()),Pt=u(A()),ka=u(T()),Na=u(Y());function wa(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Aa(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?wa(Object(t),!0).forEach(function(n){(0,Pt.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):wa(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function cf(e){var r=uf();return function(){var n=(0,br.default)(e),i;if(r){var a=(0,br.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Ca.default)(this,i)}}function uf(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ja=function(e){(0,La.default)(t,e);var r=cf(t);function t(){var n;(0,Sa.default)(this,t);for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];return n=r.call.apply(r,[this].concat(a)),(0,Pt.default)((0,Ia.default)(n),"drawParameters",{}),n}return(0,Ra.default)(t,[{key:"getRenderableLayers",value:function(i,a){var o=a.layers,s=[];this.drawParameters={},this._resetColorEncoder(a.pickZ);for(var f=this._getDrawLayerParams(i,a),l=0;l<o.length;l++){var c=o[l];!c.isComposite&&f[l].shouldDrawLayer&&(s.push(c),this.drawParameters[c.id]=f[l].layerParameters)}return s}},{key:"renderTerrainCover",value:function(i,a){var o=this,s=i.getPickingFramebuffer(),f=i.renderViewport;if(!(!s||!f)){var l=i.filterLayers(a.layers),c=i.targetLayer;c.props.pickable&&l.unshift(c),s.resize(f),(0,Na.withParameters)(this.gl,{depthTest:!1},function(){return o.render(Aa(Aa({},a),{},{pickingFBO:s,pass:"terrain-cover-picking-".concat(i.id),layers:l,effects:[],viewports:[f],cullRect:void 0,deviceRect:f,pickZ:!1}))})}}},{key:"getLayerParameters",value:function(i,a,o){if(this.drawParameters[i.id])return this.drawParameters[i.id];var s=(0,Fa.default)((0,br.default)(t.prototype),"getLayerParameters",this).call(this,i,a,o);return s.blend=!0,s}}]),t}(ka._PickLayersPass);var Ba=u(I()),za=u(F()),fe=u(A()),Va=u(Y());var Da=2048,bt=function(){function e(r){(0,Ba.default)(this,e),(0,fe.default)(this,"renderViewport",null),(0,fe.default)(this,"bounds",null),(0,fe.default)(this,"fbo",void 0),(0,fe.default)(this,"gl",void 0),(0,fe.default)(this,"layers",[]),(0,fe.default)(this,"layersBounds",[]),(0,fe.default)(this,"layersBoundsCommon",null),(0,fe.default)(this,"lastViewport",null),this.gl=r}return(0,za.default)(e,[{key:"getRenderFramebuffer",value:function(){return this.renderViewport?(this.fbo||(this.fbo=Ne(this.gl,{id:"height-map",float:!0})),this.fbo):null}},{key:"shouldUpdate",value:function(t){var n=this,i=t.layers,a=t.viewport,o=i.length!==this.layers.length||i.some(function(v,d){return v!==n.layers[d]||v.props.transitions||v.getBounds()!==n.layersBounds[d]});o&&(this.layers=i,this.layersBounds=i.map(function(v){return v.getBounds()}),this.layersBoundsCommon=yr(i,a));var s=!this.lastViewport||!a.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(o||s){var f=Mr(this.layersBoundsCommon,a);this.bounds=f,this.lastViewport=a;var l=a.scale,c=(f[2]-f[0])*l,p=(f[3]-f[1])*l;return this.renderViewport=c>0||p>0?xr({bounds:[a.center[0]-1,a.center[1]-1,a.center[0]+1,a.center[1]+1],zoom:a.zoom,width:Math.min(c,Da),height:Math.min(p,Da),viewport:a}):null,!0}return!1}},{key:"delete",value:function(){this.fbo&&(this.fbo.color.delete(),this.fbo.delete())}}],[{key:"isSupported",value:function(t){return Va.Framebuffer.isSupported(t,{colorBufferFloat:!0})}}]),e}();function Ua(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),t.push.apply(t,n)}return t}function Or(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?Ua(Object(t),!0).forEach(function(n){(0,G.default)(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Ua(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Oe(e,r){var t=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=pf(e))||r&&e&&typeof e.length=="number"){t&&(e=t);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(l){throw l},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1359
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){t=t.call(e)},n:function(){var l=t.next();return a=l.done,l},e:function(l){o=!0,s=l},f:function(){try{!a&&t.return!=null&&t.return()}finally{if(o)throw s}}}}function pf(e,r){if(e){if(typeof e=="string")return qa(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if(t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set")return Array.from(e);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return qa(e,r)}}function qa(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var Za=function(){function e(){(0,Ya.default)(this,e),(0,G.default)(this,"id","terrain-effect"),(0,G.default)(this,"props",null),(0,G.default)(this,"useInPicking",!0),(0,G.default)(this,"isPicking",!1),(0,G.default)(this,"isDrapingEnabled",!1),(0,G.default)(this,"dummyHeightMap",void 0),(0,G.default)(this,"heightMap",void 0),(0,G.default)(this,"terrainPass",void 0),(0,G.default)(this,"terrainPickingPass",void 0),(0,G.default)(this,"terrainCovers",new Map)}return(0,Ga.default)(e,[{key:"initialize",value:function(t){this.dummyHeightMap=new Er.Texture2D(t,{width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new Ta(t,{id:"terrain"}),this.terrainPickingPass=new ja(t,{id:"terrain-picking"}),bt.isSupported(t)?this.heightMap=new bt(t):Ha.log.warn("Terrain offset mode is not supported by this browser")(),Er.ProgramManager.getDefaultProgramManager(t).addDefaultModule(_r)}},{key:"preRender",value:function(t,n){if(!this.dummyHeightMap){this.initialize(t);var i=Oe(n.layers),a;try{for(i.s();!(a=i.n()).done;){var o=a.value;o.props.operation.includes("terrain")&&o.setChangeFlags({extensionsChanged:!0})}}catch(h){i.e(h)}finally{i.f()}}if(n.pickZ){this.isDrapingEnabled=!1;return}var s=n.viewports,f=n.pass,l=f.startsWith("picking");this.isPicking=l,this.isDrapingEnabled=!0;var c=s[0],p=(l?this.terrainPickingPass:this.terrainPass).getRenderableLayers(c,n),v=p.filter(function(h){return h.props.operation.includes("terrain")});if(v.length!==0){if(!l){var d=p.filter(function(h){return h.state.terrainFittingMode==="offset"});d.length>0&&this._updateHeightMap(v,c,n)}var m=p.filter(function(h){return h.state.terrainFittingMode==="drape"});this._updateTerrainCovers(v,m,c,n)}}},{key:"getModuleParameters",value:function(t){var n,i,a=t.state.terrainFittingMode;return{heightMap:(n=this.heightMap)===null||n===void 0?void 0:n.getRenderFramebuffer(),heightMapBounds:(i=this.heightMap)===null||i===void 0?void 0:i.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(t.id):null,useTerrainHeightMap:a==="offset",terrainSkipRender:a==="drape"||!t.props.operation.includes("draw")}}},{key:"cleanup",value:function(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);var t=Oe(this.terrainCovers.values()),n;try{for(t.s();!(n=t.n()).done;){var i=n.value;i.delete()}}catch(a){t.e(a)}finally{t.f()}this.terrainCovers.clear()}},{key:"_updateHeightMap",value:function(t,n,i){if(this.heightMap){var a=this.heightMap.shouldUpdate({layers:t,viewport:n});a&&this.terrainPass.renderHeightMap(this.heightMap,Or(Or({},i),{},{layers:t,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}}},{key:"_updateTerrainCovers",value:function(t,n,i,a){var o={},s=Oe(n),f;try{for(s.s();!(f=s.n()).done;){var l=f.value;l.state.terrainCoverNeedsRedraw&&(o[l.id]=!0,l.state.terrainCoverNeedsRedraw=!1)}}catch(_){s.e(_)}finally{s.f()}var c=Oe(this.terrainCovers.values()),p;try{for(c.s();!(p=c.n()).done;){var v=p.value;v.isDirty=v.isDirty||v.shouldUpdate({layerNeedsRedraw:o})}}catch(_){c.e(_)}finally{c.f()}var d=Oe(t),m;try{for(d.s();!(m=d.n()).done;){var h=m.value;this._updateTerrainCover(h,n,i,a)}}catch(_){d.e(_)}finally{d.f()}this.isPicking||this._pruneTerrainCovers()}},{key:"_updateTerrainCover",value:function(t,n,i,a){var o=this.isPicking?this.terrainPickingPass:this.terrainPass,s=this.terrainCovers.get(t.id);s||(s=new _a(t),this.terrainCovers.set(t.id,s));try{var f=s.shouldUpdate({targetLayer:t,viewport:i,layers:n});(this.isPicking||s.isDirty||f)&&(o.renderTerrainCover(s,Or(Or({},a),{},{layers:n,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),s.isDirty=!1)}catch(l){t.raiseError(l,"Error rendering terrain cover ".concat(s.id))}}},{key:"_pruneTerrainCovers",value:function(){var t=[],n=Oe(this.terrainCovers),i;try{for(n.s();!(i=n.n()).done;){var a=(0,Wa.default)(i.value,2),o=a[0],s=a[1];s.isActive||t.push(o)}}catch(p){n.e(p)}finally{n.f()}for(var f=0,l=t;f<l.length;f++){var c=l[f];this.terrainCovers.delete(c)}}}]),e}();function vf(e){var r=df();return function(){var n=(0,Ot.default)(e),i;if(r){var a=(0,Ot.default)(this).constructor;i=Reflect.construct(n,arguments,a)}else i=n.apply(this,arguments);return(0,Qa.default)(this,i)}}function df(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var mf={terrainFittingMode:void 0},Tr=function(e){(0,Xa.default)(t,e);var r=vf(t);function t(){return(0,$a.default)(this,t),r.apply(this,arguments)}return(0,Ka.default)(t,[{key:"getShaders",value:function(){return{modules:[_r]}}},{key:"initializeState",value:function(){var i;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new Za)}},{key:"updateState",value:function(i){var a=i.props,o=i.oldProps;if(!(this.state.terrainFittingMode&&a.terrainFittingMode===o.terrainFittingMode&&a.extruded===o.extruded)){var s=a.terrainFittingMode;if(!s){var f,l=this.props.extruded,c=(f=this.getAttributeManager())===null||f===void 0?void 0:f.attributes,p=c&&"instancePositions"in c;s=l||p?"offset":"drape"}this.setState({terrainFittingMode:s})}}},{key:"onNeedsRedraw",value:function(){var i=this.state;i.terrainFittingMode==="drape"&&(i.terrainCoverNeedsRedraw=!0)}}]),t}(Ja.LayerExtension);(0,Et.default)(Tr,"defaultProps",mf);(0,Et.default)(Tr,"extensionName","TerrainExtension");return uo(je);})();