@deck.gl/extensions 9.0.0-beta.4 → 9.0.0-beta.6

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 (47) hide show
  1. package/dist/brushing/shader-module.d.ts.map +1 -1
  2. package/dist/brushing/shader-module.js +52 -57
  3. package/dist/clip/clip-extension.d.ts.map +1 -1
  4. package/dist/clip/clip-extension.js +6 -6
  5. package/dist/collision-filter/shader-module.d.ts.map +1 -1
  6. package/dist/collision-filter/shader-module.js +46 -56
  7. package/dist/data-filter/aggregator.d.ts.map +1 -1
  8. package/dist/data-filter/aggregator.js +11 -14
  9. package/dist/data-filter/data-filter-extension.d.ts +2 -1
  10. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  11. package/dist/data-filter/data-filter-extension.js +13 -7
  12. package/dist/data-filter/shader-module.d.ts.map +1 -1
  13. package/dist/data-filter/shader-module.js +70 -78
  14. package/dist/dist.dev.js +297 -302
  15. package/dist/fill-style/fill-style-extension.js +1 -1
  16. package/dist/fill-style/{shaders.glsl.d.ts → shader-module.d.ts} +1 -1
  17. package/dist/fill-style/shader-module.d.ts.map +1 -0
  18. package/dist/fill-style/{shaders.glsl.js → shader-module.js} +27 -33
  19. package/dist/fp64/project64.glsl.js +41 -60
  20. package/dist/index.cjs +374 -432
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/mask/mask-pass.js +2 -2
  23. package/dist/mask/shader-module.d.ts.map +1 -1
  24. package/dist/mask/shader-module.js +33 -37
  25. package/dist/path-style/shaders.glsl.js +42 -47
  26. package/dist/terrain/shader-module.d.ts.map +1 -1
  27. package/dist/terrain/shader-module.js +30 -32
  28. package/dist/terrain/terrain-pass.js +2 -2
  29. package/dist/terrain/utils.js +2 -2
  30. package/dist/utils/syntax-tags.d.ts +6 -0
  31. package/dist/utils/syntax-tags.d.ts.map +1 -0
  32. package/dist/utils/syntax-tags.js +5 -0
  33. package/dist.min.js +364 -431
  34. package/package.json +8 -8
  35. package/src/brushing/shader-module.ts +4 -3
  36. package/src/clip/clip-extension.ts +10 -9
  37. package/src/collision-filter/shader-module.ts +6 -4
  38. package/src/data-filter/aggregator.ts +8 -13
  39. package/src/data-filter/data-filter-extension.ts +18 -8
  40. package/src/data-filter/shader-module.ts +7 -6
  41. package/src/fill-style/fill-style-extension.ts +1 -1
  42. package/src/fill-style/{shaders.glsl.ts → shader-module.ts} +6 -5
  43. package/src/mask/shader-module.ts +7 -6
  44. package/src/terrain/shader-module.ts +11 -10
  45. package/src/terrain/utils.ts +1 -1
  46. package/src/utils/syntax-tags.ts +5 -0
  47. package/dist/fill-style/shaders.glsl.d.ts.map +0 -1
package/dist.min.js CHANGED
@@ -4,70 +4,64 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['deck'] = factory();
6
6
  else root['deck'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var yt=Object.create;var m=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Vt=Object.getPrototypeOf,Xt=Object.prototype.hasOwnProperty;var Ue=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ge=(e,t)=>{for(var _ in t)m(e,_,{get:t[_],enumerable:!0})},$=(e,t,_,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ht(t))!Xt.call(e,i)&&i!==_&&m(e,i,{get:()=>t[i],enumerable:!(r=bt(t,i))||r.enumerable});return e},M=(e,t,_)=>($(e,t,"default"),_&&$(_,t,"default")),E=(e,t,_)=>(_=e!=null?yt(Vt(e)):{},$(t||!e||!e.__esModule?m(_,"default",{value:e,enumerable:!0}):_,e)),ut=e=>$(m({},"__esModule",{value:!0}),e);var p=Ue((Sr,xe)=>{xe.exports=globalThis.deck});var je=Ue((Br,Ye)=>{Ye.exports=globalThis.luma});var Q={};ge(Q,{BrushingExtension:()=>v,ClipExtension:()=>W,CollisionFilterExtension:()=>Y,DataFilterExtension:()=>U,FillStyleExtension:()=>u,Fp64Extension:()=>b,MaskExtension:()=>j,PathStyleExtension:()=>V,_TerrainExtension:()=>q,project64:()=>oe});var d={},ye=E(p(),1);M(d,E(p(),1));if(!ye.Layer)throw new Error("@deck.gl/core is not found");M(Q,d);var Ve=E(p(),1);var be=E(p(),1),Wt=`
8
- uniform bool brushing_enabled;
9
- uniform int brushing_target;
10
- uniform vec2 brushing_mousePos;
11
- uniform float brushing_radius;
12
-
13
- #ifdef NON_INSTANCED_MODEL
14
- in vec2 brushingTargets;
15
- #else
16
- in vec2 instanceBrushingTargets;
17
- #endif
18
-
19
- out float brushing_isVisible;
20
-
21
- bool brushing_isPointInRange(vec2 position) {
22
- if (!brushing_enabled) {
23
- return true;
24
- }
25
- vec2 source_commonspace = project_position(position);
26
- vec2 target_commonspace = project_position(brushing_mousePos);
27
- float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);
28
-
29
- return distance <= brushing_radius;
30
- }
31
-
32
- bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {
33
- return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);
34
- }
35
-
36
- void brushing_setVisible(bool visible) {
37
- brushing_isVisible = float(visible);
38
- }
39
- `,kt=`
40
- uniform bool brushing_enabled;
41
- in float brushing_isVisible;
42
- `,wt={source:0,target:1,custom:2,source_target:3},Kt={"vs:DECKGL_FILTER_GL_POSITION":`
43
- vec2 brushingTarget;
44
- vec2 brushingSource;
45
- if (brushing_target == 3) {
46
- brushingTarget = geometry.worldPositionAlt.xy;
47
- brushingSource = geometry.worldPosition.xy;
48
- } else if (brushing_target == 0) {
49
- brushingTarget = geometry.worldPosition.xy;
50
- } else if (brushing_target == 1) {
51
- brushingTarget = geometry.worldPositionAlt.xy;
52
- } else {
53
- #ifdef NON_INSTANCED_MODEL
54
- brushingTarget = brushingTargets;
55
- #else
56
- brushingTarget = instanceBrushingTargets;
57
- #endif
58
- }
59
- bool visible;
60
- if (brushing_target == 3) {
61
- visible = brushing_arePointsInRange(brushingSource, brushingTarget);
62
- } else {
63
- visible = brushing_isPointInRange(brushingTarget);
64
- }
65
- brushing_setVisible(visible);
66
- `,"fs:DECKGL_FILTER_COLOR":`
7
+ "use strict";var __exports__=(()=>{var Ct=Object.create;var $=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var kt=Object.getOwnPropertyNames;var Nt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Oe=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ie=(r,e)=>{for(var t in e)$(r,t,{get:e[t],enumerable:!0})},Z=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of kt(e))!wt.call(r,s)&&s!==t&&$(r,s,{get:()=>e[s],enumerable:!(i=St(e,s))||i.enumerable});return r},P=(r,e,t)=>(Z(r,e,"default"),t&&Z(t,e,"default")),d=(r,e,t)=>(t=r!=null?Ct(Nt(r)):{},Z(e||!r||!r.__esModule?$(t,"default",{value:r,enumerable:!0}):t,r)),Bt=r=>Z($({},"__esModule",{value:!0}),r);var m=Oe((gi,Re)=>{Re.exports=globalThis.deck});var Ue=Oe((Ei,Ge)=>{Ge.exports=globalThis.luma});var Y={};Ie(Y,{BrushingExtension:()=>L,ClipExtension:()=>D,CollisionFilterExtension:()=>G,DataFilterExtension:()=>O,FillStyleExtension:()=>B,Fp64Extension:()=>S,MaskExtension:()=>U,PathStyleExtension:()=>N,_TerrainExtension:()=>H,project64:()=>oe});var g={},Ce=d(m(),1);P(g,d(m(),1));if(!Ce.Layer)throw new Error("@deck.gl/core is not found");P(Y,g);var Ne=d(m(),1);var Se=d(m(),1);var Dt=`
8
+ uniform bool brushing_enabled;
9
+ uniform int brushing_target;
10
+ uniform vec2 brushing_mousePos;
11
+ uniform float brushing_radius;
12
+ #ifdef NON_INSTANCED_MODEL
13
+ in vec2 brushingTargets;
14
+ #else
15
+ in vec2 instanceBrushingTargets;
16
+ #endif
17
+ out float brushing_isVisible;
18
+ bool brushing_isPointInRange(vec2 position) {
19
+ if (!brushing_enabled) {
20
+ return true;
21
+ }
22
+ vec2 source_commonspace = project_position(position);
23
+ vec2 target_commonspace = project_position(brushing_mousePos);
24
+ float distance = length((target_commonspace - source_commonspace) / project_uCommonUnitsPerMeter.xy);
25
+ return distance <= brushing_radius;
26
+ }
27
+ bool brushing_arePointsInRange(vec2 sourcePos, vec2 targetPos) {
28
+ return brushing_isPointInRange(sourcePos) || brushing_isPointInRange(targetPos);
29
+ }
30
+ void brushing_setVisible(bool visible) {
31
+ brushing_isVisible = float(visible);
32
+ }
33
+ `,Vt=`
34
+ uniform bool brushing_enabled;
35
+ in float brushing_isVisible;
36
+ `,jt={source:0,target:1,custom:2,source_target:3},zt={"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":`
67
61
  if (brushing_enabled && brushing_isVisible < 0.5) {
68
62
  discard;
69
63
  }
70
- `},He={name:"brushing",dependencies:[be.project],vs:Wt,fs:kt,inject:Kt,getUniforms:e=>{if(!e||!("viewport"in e))return{};let{brushingEnabled:t=!0,brushingRadius:_=1e4,brushingTarget:r="source",mousePosition:i,viewport:s}=e;return{brushing_enabled:Boolean(t&&i&&s.containsPixel(i)),brushing_radius:_,brushing_target:wt[r]||0,brushing_mousePos:i?s.unproject([i.x-s.x,i.y-s.y]):[0,0]}}};var Yt={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},L=class extends Ve.LayerExtension{getShaders(){return{modules:[He]}}initializeState(t,_){let r=this.getAttributeManager();r&&r.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});let i=()=>{this.getCurrentLayer()?.setNeedsRedraw()};this.state.onMouseMove=i,t.deck&&t.deck.eventManager.on({pointermove:i,pointerleave:i})}finalizeState(t,_){if(t.deck){let r=this.state.onMouseMove;t.deck.eventManager.off({pointermove:r,pointerleave:r})}}},v=L;(()=>{L.defaultProps=Yt})(),(()=>{L.extensionName="BrushingExtension"})();var n=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e}(n||{});var F=E(p(),1);var Xe=`
64
+ `},ke={name:"brushing",dependencies:[Se.project],vs:Dt,fs:Vt,inject:zt,getUniforms:r=>{if(!r||!("viewport"in r))return{};let{brushingEnabled:e=!0,brushingRadius:t=1e4,brushingTarget:i="source",mousePosition:s,viewport:o}=r;return{brushing_enabled:Boolean(e&&s&&o.containsPixel(s)),brushing_radius:t,brushing_target:jt[i]||0,brushing_mousePos:s?o.unproject([s.x-o.x,s.y-o.y]):[0,0]}}};var Gt={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},X=class extends Ne.LayerExtension{getShaders(){return{modules:[ke]}}initializeState(e,t){let i=this.getAttributeManager();i&&i.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});let s=()=>{this.getCurrentLayer()?.setNeedsRedraw()};this.state.onMouseMove=s,e.deck&&e.deck.eventManager.on({pointermove:s,pointerleave:s})}finalizeState(e,t){if(e.deck){let i=this.state.onMouseMove;e.deck.eventManager.off({pointermove:i,pointerleave:i})}}},L=X;(()=>{X.defaultProps=Gt})(),(()=>{X.extensionName="BrushingExtension"})();var b=d(m(),1);var we=`
71
65
  uniform DATAFILTER_TYPE filter_min;
72
66
  uniform DATAFILTER_TYPE filter_softMin;
73
67
  uniform DATAFILTER_TYPE filter_softMax;
@@ -76,106 +70,97 @@ uniform bool filter_useSoftMargin;
76
70
  uniform bool filter_enabled;
77
71
  uniform bool filter_transformSize;
78
72
  uniform ivec4 filter_categoryBitMask;
79
-
80
73
  #ifdef NON_INSTANCED_MODEL
81
- #define DATAFILTER_ATTRIB filterValues
82
- #define DATAFILTER_ATTRIB_64LOW filterValues64Low
83
- #define DATACATEGORY_ATTRIB filterCategoryValues
74
+ #define DATAFILTER_ATTRIB filterValues
75
+ #define DATAFILTER_ATTRIB_64LOW filterValues64Low
76
+ #define DATACATEGORY_ATTRIB filterCategoryValues
84
77
  #else
85
- #define DATAFILTER_ATTRIB instanceFilterValues
86
- #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
87
- #define DATACATEGORY_ATTRIB instanceFilterCategoryValues
78
+ #define DATAFILTER_ATTRIB instanceFilterValues
79
+ #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
80
+ #define DATACATEGORY_ATTRIB instanceFilterCategoryValues
88
81
  #endif
89
-
90
82
  in DATAFILTER_TYPE DATAFILTER_ATTRIB;
91
83
  #ifdef DATAFILTER_DOUBLE
92
- in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
93
-
94
- uniform DATAFILTER_TYPE filter_min64High;
95
- uniform DATAFILTER_TYPE filter_max64High;
84
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
85
+ uniform DATAFILTER_TYPE filter_min64High;
86
+ uniform DATAFILTER_TYPE filter_max64High;
96
87
  #endif
97
88
  in DATACATEGORY_TYPE DATACATEGORY_ATTRIB;
98
-
99
89
  out float dataFilter_value;
100
-
101
90
  float dataFilter_reduceValue(float value) {
102
- return value;
91
+ return value;
103
92
  }
104
93
  float dataFilter_reduceValue(vec2 value) {
105
- return min(value.x, value.y);
94
+ return min(value.x, value.y);
106
95
  }
107
96
  float dataFilter_reduceValue(vec3 value) {
108
- return min(min(value.x, value.y), value.z);
97
+ return min(min(value.x, value.y), value.z);
109
98
  }
110
99
  float dataFilter_reduceValue(vec4 value) {
111
- return min(min(value.x, value.y), min(value.z, value.w));
100
+ return min(min(value.x, value.y), min(value.z, value.w));
112
101
  }
113
102
  void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax, DATACATEGORY_TYPE category) {
114
- if (filter_enabled) {
115
- if (filter_useSoftMargin) {
116
- dataFilter_value = dataFilter_reduceValue(
117
- smoothstep(filter_min, filter_softMin, valueFromMin) *
118
- (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
119
- );
120
- } else {
121
- dataFilter_value = dataFilter_reduceValue(
122
- step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
123
- );
124
- }
125
-
126
- #if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
127
- int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
128
- #elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
129
- ivec2 dataFilter_masks = ivec2(
130
- filter_categoryBitMask[int(category.x / 32.0)],
131
- filter_categoryBitMask[int(category.y / 32.0) + 2]
132
- );
133
- #elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
134
- ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
135
- #else // Four 32-bit masks
136
- ivec4 dataFilter_masks = filter_categoryBitMask;
137
- #endif
138
-
139
- // Shift mask and extract relevant bits
140
- DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
141
- dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
142
-
143
- #if DATACATEGORY_CHANNELS == 1
144
- if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
145
- #else
146
- if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
147
- #endif
148
- } else {
149
- dataFilter_value = 1.0;
150
- }
103
+ if (filter_enabled) {
104
+ if (filter_useSoftMargin) {
105
+ dataFilter_value = dataFilter_reduceValue(
106
+ smoothstep(filter_min, filter_softMin, valueFromMin) *
107
+ (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
108
+ );
109
+ } else {
110
+ dataFilter_value = dataFilter_reduceValue(
111
+ step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
112
+ );
113
+ }
114
+ #if DATACATEGORY_CHANNELS == 1
115
+ int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
116
+ #elif DATACATEGORY_CHANNELS == 2
117
+ ivec2 dataFilter_masks = ivec2(
118
+ filter_categoryBitMask[int(category.x / 32.0)],
119
+ filter_categoryBitMask[int(category.y / 32.0) + 2]
120
+ );
121
+ #elif DATACATEGORY_CHANNELS == 3
122
+ ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
123
+ #else
124
+ ivec4 dataFilter_masks = filter_categoryBitMask;
125
+ #endif
126
+ DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
127
+ dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
128
+ #if DATACATEGORY_CHANNELS == 1
129
+ if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
130
+ #else
131
+ if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
132
+ #endif
133
+ } else {
134
+ dataFilter_value = 1.0;
135
+ }
151
136
  }
152
- `,ue=`
137
+ `,Be=`
153
138
  uniform bool filter_transformColor;
154
139
  in float dataFilter_value;
155
- `;function We(e){if(!e||!("extensions"in e))return{};let{filterRange:t=[-1,1],filterEnabled:_=!0,filterTransformSize:r=!0,filterTransformColor:i=!0}=e,s=e.filterSoftRange||t;return{...Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:s[0],filter_softMax:s[1],filter_max:t[1]}:{filter_min:t.map(o=>o[0]),filter_softMin:s.map(o=>o[0]),filter_softMax:s.map(o=>o[1]),filter_max:t.map(o=>o[1])},filter_enabled:_,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:_&&r,filter_transformColor:_&&i}}function jt(e){if(!e||!("extensions"in e))return{};let t=We(e);if(Number.isFinite(t.filter_min)){let _=Math.fround(t.filter_min);t.filter_min-=_,t.filter_softMin-=_,t.filter_min64High=_;let r=Math.fround(t.filter_max);t.filter_max-=r,t.filter_softMax-=r,t.filter_max64High=r}else{let _=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((i,s)=>i-_[s]),t.filter_softMin=t.filter_softMin.map((i,s)=>i-_[s]),t.filter_min64High=_;let r=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((i,s)=>i-r[s]),t.filter_softMax=t.filter_softMax.map((i,s)=>i-r[s]),t.filter_max64High=r}return t}var ke={"vs:#main-start":`
156
- #ifdef DATAFILTER_DOUBLE
157
- dataFilter_setValue(
158
- DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
159
- DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW,
160
- DATACATEGORY_ATTRIB
161
- );
162
- #else
163
- dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB, DATACATEGORY_ATTRIB);
164
- #endif
165
- `,"vs:#main-end":`
166
- if (dataFilter_value == 0.0) {
167
- gl_Position = vec4(0.);
168
- }
169
- `,"vs:DECKGL_FILTER_SIZE":`
170
- if (filter_transformSize) {
171
- size = size * dataFilter_value;
172
- }
173
- `,"fs:DECKGL_FILTER_COLOR":`
174
- if (dataFilter_value == 0.0) discard;
175
- if (filter_transformColor) {
176
- color.a *= dataFilter_value;
177
- }
178
- `},we={name:"data-filter",vs:Xe,fs:ue,inject:ke,getUniforms:We},Ke={name:"data-filter-fp64",vs:Xe,fs:ue,inject:ke,getUniforms:jt};var ze=E(je(),1);var zt=`#version 300 es
140
+ `;function De(r){if(!r||!("extensions"in r))return{};let{filterRange:e=[-1,1],filterEnabled:t=!0,filterTransformSize:i=!0,filterTransformColor:s=!0}=r,o=r.filterSoftRange||e;return{...Number.isFinite(e[0])?{filter_min:e[0],filter_softMin:o[0],filter_softMax:o[1],filter_max:e[1]}:{filter_min:e.map(n=>n[0]),filter_softMin:o.map(n=>n[0]),filter_softMax:o.map(n=>n[1]),filter_max:e.map(n=>n[1])},filter_enabled:t,filter_useSoftMargin:Boolean(r.filterSoftRange),filter_transformSize:t&&i,filter_transformColor:t&&s}}function Ut(r){if(!r||!("extensions"in r))return{};let e=De(r);if(Number.isFinite(e.filter_min)){let t=Math.fround(e.filter_min);e.filter_min-=t,e.filter_softMin-=t,e.filter_min64High=t;let i=Math.fround(e.filter_max);e.filter_max-=i,e.filter_softMax-=i,e.filter_max64High=i}else{let t=e.filter_min.map(Math.fround);e.filter_min=e.filter_min.map((s,o)=>s-t[o]),e.filter_softMin=e.filter_softMin.map((s,o)=>s-t[o]),e.filter_min64High=t;let i=e.filter_max.map(Math.fround);e.filter_max=e.filter_max.map((s,o)=>s-i[o]),e.filter_softMax=e.filter_softMax.map((s,o)=>s-i[o]),e.filter_max64High=i}return e}var Ve={"vs:#main-start":`
141
+ #ifdef DATAFILTER_DOUBLE
142
+ dataFilter_setValue(
143
+ DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
144
+ DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW,
145
+ DATACATEGORY_ATTRIB
146
+ );
147
+ #else
148
+ dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB, DATACATEGORY_ATTRIB);
149
+ #endif
150
+ `,"vs:#main-end":`
151
+ if (dataFilter_value == 0.0) {
152
+ gl_Position = vec4(0.);
153
+ }
154
+ `,"vs:DECKGL_FILTER_SIZE":`
155
+ if (filter_transformSize) {
156
+ size = size * dataFilter_value;
157
+ }
158
+ `,"fs:DECKGL_FILTER_COLOR":`
159
+ if (dataFilter_value == 0.0) discard;
160
+ if (filter_transformColor) {
161
+ color.a *= dataFilter_value;
162
+ }
163
+ `},je={name:"data-filter",vs:we,fs:Be,inject:Ve,getUniforms:De},ze={name:"data-filter-fp64",vs:we,fs:Be,inject:Ve,getUniforms:Ut};var qe=d(Ue(),1);var qt=`#version 300 es
179
164
  #define SHADER_NAME data-filter-vertex-shader
180
165
 
181
166
  #ifdef FLOAT_TARGET
@@ -206,7 +191,7 @@ void main() {
206
191
  #endif
207
192
  gl_PointSize = 1.0;
208
193
  }
209
- `,Zt=`#version 300 es
194
+ `,Wt=`#version 300 es
210
195
  #define SHADER_NAME data-filter-fragment-shader
211
196
  precision highp float;
212
197
 
@@ -220,7 +205,7 @@ void main() {
220
205
  }
221
206
  fragColor = vColor;
222
207
  }
223
- `;function Ze(e){let t=e.gl;return Boolean(t.getExtension("EXT_float_blend")&&(t.getExtension("EXT_color_buffer_float")||t.getExtension("WEBGL_color_buffer_float")))}function qe(e,t){return t?e.createFramebuffer({width:1,height:1,colorAttachments:[e.createTexture({format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:n.FLOAT,mipmaps:!1})]}):e.createFramebuffer({width:256,height:64,colorAttachments:[e.createTexture({format:"rgba8unorm",type:n.FLOAT,mipmaps:!1})]})}function Qe(e,t,_){return t.defines.NON_INSTANCED_MODEL=1,_&&(t.defines.FLOAT_TARGET=1),new ze.Model(e,{id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:n.POINTS,vs:zt,fs:Zt,...t})}var Je={blend:!0,blendFunc:[n.ONE,n.ONE,n.ONE,n.ONE],blendEquation:[n.FUNC_ADD,n.FUNC_ADD],depthTest:!1};var Qt={getFilterValue:{type:"accessor",value:0},getFilterCategory:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterCategories:[0],filterTransformSize:!0,filterTransformColor:!0},$e={1:"float",2:"vec2",3:"vec3",4:"vec4"},G=class extends F.LayerExtension{getShaders(t){let{categorySize:_,filterSize:r,fp64:i}=t.opts;return{modules:[i?Ke:we],defines:{DATACATEGORY_TYPE:$e[_||1],DATACATEGORY_CHANNELS:_,DATAFILTER_TYPE:$e[r||1],DATAFILTER_DOUBLE:Boolean(i)}}}initializeState(t,_){let r=this.getAttributeManager(),{categorySize:i,filterSize:s,fp64:o}=_.opts;r&&r.add({filterValues:{size:s,type:o?n.DOUBLE:n.FLOAT,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}},filterCategoryValues:{size:i,type:n.FLOAT,accessor:"getFilterCategory",transform:i===1?R=>_._getCategoryKey.call(this,R,0):R=>R.map((l,T)=>_._getCategoryKey.call(this,l,T)),shaderAttributes:{filterCategoryValues:{divisor:0},instanceFilterCategoryValues:{divisor:1}}}});let{device:a}=this.context;if(r&&_.opts.countItems){let R=Ze(a);r.add({filterIndices:{size:R?1:2,vertexOffset:1,type:n.UNSIGNED_BYTE,normalized:!0,accessor:(A,{index:f})=>{let c=A&&A.__source?A.__source.index:f;return R?(c+1)%255:[(c+1)%255,Math.floor(c/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let l=qe(a,R),T=Qe(a,_.getShaders.call(this,_),R);this.setState({filterFBO:l,filterModel:T})}}updateState({props:t,oldProps:_,changeFlags:r},i){let s=this.getAttributeManager(),{categorySize:o}=i.opts;if(this.state.filterModel){let a=s.attributes.filterValues.needsUpdate()||s.attributes.filterCategoryValues?.needsUpdate()||t.filterEnabled!==_.filterEnabled||t.filterRange!==_.filterRange||t.filterSoftRange!==_.filterSoftRange||t.filterCategories!==_.filterCategories;a&&this.setState({filterNeedsUpdate:a})}if(s?.attributes.filterCategoryValues){let a=s.attributes.filterCategoryValues.needsUpdate()||!(0,F._deepEqual)(t.filterCategories,_.filterCategories,2);a&&this.setState({categoryBitMaskNeedsUpdate:a}),r.dataChanged&&(this.setState({categoryMap:Array(o).fill(0).map(()=>({}))}),s.attributes.filterCategoryValues.setNeedsUpdate("categoryMap"))}}draw(t,_){let r=this.state.filterFBO,i=this.state.filterModel,s=this.state.filterNeedsUpdate,o=this.state.categoryBitMaskNeedsUpdate,{onFilteredItemsChange:a}=this.props;if(o&&_._updateCategoryBitMask.call(this,t,_),s&&a&&i){let{attributes:{filterValues:R,filterCategoryValues:l,filterIndices:T}}=this.getAttributeManager();i.setVertexCount(this.getNumInstances()),this.context.device.clearWebGL({framebuffer:r,color:[0,0,0,0]}),i.updateModuleSettings(t.moduleParameters),i.setAttributes({...R.getValue(),...l?.getValue(),...T?.getValue()}),i.setUniforms(t.uniforms),i.device.withParametersWebGL({framebuffer:r,...Je,viewport:[0,0,r.width,r.height]},()=>{i.draw(this.context.renderPass)});let A=i.device.readPixelsToArrayWebGL(r),f=0;for(let c=0;c<A.length;c++)f+=A[c];a({id:this.id,count:f}),this.state.filterNeedsUpdate=!1}}finalizeState(){let t=this.state.filterFBO,_=this.state.filterModel;t?.destroy(),_?.destroy()}_updateCategoryBitMask(t,_){let{categorySize:r}=_.opts,{filterCategories:i}=this.props,s=new Uint32Array([0,0,0,0]),o=r===1?[i]:i,a=r===1?128:r===2?64:32;for(let R=0;R<o.length;R++){let l=o[R];for(let T of l){let A=_._getCategoryKey.call(this,T,R);if(A<a){let f=R*(a/32)+Math.floor(A/32);s[f]+=Math.pow(2,A%32)}else F.log.warn(`Exceeded maximum number of categories (${a})`)()}}t.uniforms.filter_categoryBitMask=s,this.state.categoryBitMaskNeedsUpdate=!1}_getCategoryKey(t,_){let r=this.state.categoryMap[_];return t in r||(r[t]=Object.keys(r).length),r[t]}},U=G;(()=>{G.defaultProps=Qt})(),(()=>{G.extensionName="DataFilterExtension"})();var y=E(p(),1);var ee=e=>`${e}`;function te(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],_=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=Math.fround(e),i=e-r;return t[_]=r,t[_+1]=i,t}function Me(e){return e-Math.fround(e)}function Oe(e){let t=new Float32Array(32);for(let _=0;_<4;++_)for(let r=0;r<4;++r){let i=_*4+r;te(e[r*4+_],t,i*2)}return t}var me=ee`\
208
+ `,Ht=["float32-renderable-webgl","texture-blend-float-webgl"];function We(r){return Ht.every(e=>r.features.has(e))}function He(r,e){return e?r.createFramebuffer({width:1,height:1,colorAttachments:[r.createTexture({format:"rgba32float",type:5126,mipmaps:!1})]}):r.createFramebuffer({width:256,height:64,colorAttachments:[r.createTexture({format:"rgba8unorm",type:5126,mipmaps:!1})]})}function Ye(r,e,t){return e.defines.NON_INSTANCED_MODEL=1,t&&(e.defines.FLOAT_TARGET=1),new qe.Model(r,{id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:qt,fs:Wt,...e})}var Ke={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var Kt={getFilterValue:{type:"accessor",value:0},getFilterCategory:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterCategories:[0],filterTransformSize:!0,filterTransformColor:!0},Zt={categorySize:1,filterSize:1,fp64:!1,countItems:!1},Ze={1:"float",2:"vec2",3:"vec3",4:"vec4"},Q=class extends b.LayerExtension{constructor(e){super({...Zt,...e})}getShaders(e){let{categorySize:t,filterSize:i,fp64:s}=e.opts;return{modules:[s?ze:je],defines:{DATACATEGORY_TYPE:Ze[t],DATACATEGORY_CHANNELS:t,DATAFILTER_TYPE:Ze[i],DATAFILTER_DOUBLE:Boolean(s)}}}initializeState(e,t){let i=this.getAttributeManager(),{categorySize:s,filterSize:o,fp64:n}=t.opts;i&&i.add({filterValues:{size:o,type:n?"float64":"float32",accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}},filterCategoryValues:{size:s,accessor:"getFilterCategory",transform:s===1?l=>t._getCategoryKey.call(this,l,0):l=>l.map((f,c)=>t._getCategoryKey.call(this,f,c)),shaderAttributes:{filterCategoryValues:{divisor:0},instanceFilterCategoryValues:{divisor:1}}}});let{device:a}=this.context;if(i&&t.opts.countItems){let l=We(a);i.add({filterIndices:{size:l?1:2,vertexOffset:1,type:"unorm8",accessor:(u,{index:_})=>{let p=u&&u.__source?u.__source.index:_;return l?(p+1)%255:[(p+1)%255,Math.floor(p/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let f=He(a,l),c=Ye(a,t.getShaders.call(this,t),l);this.setState({filterFBO:f,filterModel:c})}}updateState({props:e,oldProps:t,changeFlags:i},s){let o=this.getAttributeManager(),{categorySize:n}=s.opts;if(this.state.filterModel){let a=o.attributes.filterValues.needsUpdate()||o.attributes.filterCategoryValues?.needsUpdate()||e.filterEnabled!==t.filterEnabled||e.filterRange!==t.filterRange||e.filterSoftRange!==t.filterSoftRange||e.filterCategories!==t.filterCategories;a&&this.setState({filterNeedsUpdate:a})}if(o?.attributes.filterCategoryValues){let a=o.attributes.filterCategoryValues.needsUpdate()||!(0,b._deepEqual)(e.filterCategories,t.filterCategories,2);a&&this.setState({categoryBitMaskNeedsUpdate:a}),i.dataChanged&&(this.setState({categoryMap:Array(n).fill(0).map(()=>({}))}),o.attributes.filterCategoryValues.setNeedsUpdate("categoryMap"))}}draw(e,t){let i=this.state.filterFBO,s=this.state.filterModel,o=this.state.filterNeedsUpdate,n=this.state.categoryBitMaskNeedsUpdate,{onFilteredItemsChange:a}=this.props;if(n&&t._updateCategoryBitMask.call(this,e,t),o&&a&&s){let{attributes:{filterValues:l,filterCategoryValues:f,filterIndices:c}}=this.getAttributeManager();s.setVertexCount(this.getNumInstances()),this.context.device.clearWebGL({framebuffer:i,color:[0,0,0,0]}),s.updateModuleSettings(e.moduleParameters),s.setAttributes({...l.getValue(),...f?.getValue(),...c?.getValue()}),s.setUniforms(e.uniforms),s.device.withParametersWebGL({framebuffer:i,...Ke,viewport:[0,0,i.width,i.height]},()=>{s.draw(this.context.renderPass)});let u=s.device.readPixelsToArrayWebGL(i),_=0;for(let p=0;p<u.length;p++)_+=u[p];a({id:this.id,count:_}),this.state.filterNeedsUpdate=!1}}finalizeState(){let e=this.state.filterFBO,t=this.state.filterModel;e?.destroy(),t?.destroy()}_updateCategoryBitMask(e,t){let{categorySize:i}=t.opts,{filterCategories:s}=this.props,o=new Uint32Array([0,0,0,0]),n=i===1?[s]:s,a=i===1?128:i===2?64:32;for(let l=0;l<n.length;l++){let f=n[l];for(let c of f){let u=t._getCategoryKey.call(this,c,l);if(u<a){let _=l*(a/32)+Math.floor(u/32);o[_]+=Math.pow(2,u%32)}else b.log.warn(`Exceeded maximum number of categories (${a})`)()}}e.uniforms.filter_categoryBitMask=o,this.state.categoryBitMaskNeedsUpdate=!1}_getCategoryKey(e,t){let i=this.state.categoryMap[t];return e in i||(i[e]=Object.keys(i).length),i[e]}},O=Q;(()=>{Q.defaultProps=Kt})(),(()=>{Q.extensionName="DataFilterExtension"})();var C=d(m(),1);var J=r=>`${r}`;function ee(r,e=[],t=0){let i=Math.fround(r),s=r-i;return e[t]=i,e[t+1]=s,e}function Pe(r){return r-Math.fround(r)}function ye(r){let e=new Float32Array(32);for(let t=0;t<4;++t)for(let i=0;i<4;++i){let s=t*4+i;ee(r[i*4+t],e,s*2)}return e}var $e=J`\
224
209
  uniform float ONE;
225
210
 
226
211
  /*
@@ -386,7 +371,7 @@ vec2 sqrt_fp64(vec2 a) {
386
371
  return sum_fp64(vec2(yn, 0.0), prod);
387
372
  #endif
388
373
  }
389
- `;var Le=ee`\
374
+ `;var Xe=J`\
390
375
  const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
391
376
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
392
377
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
@@ -1056,86 +1041,67 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
1056
1041
  vec4_dot_fp64(a, tmp, out_val[i]);
1057
1042
  }
1058
1043
  }
1059
- `;var Jt={ONE:1};function $t(){return Jt}var Ge={name:"fp64-arithmetic",vs:me,getUniforms:$t,fp64ify:te,fp64LowPart:Me,fp64ifyMatrix4:Oe},_e={name:"fp64",vs:Le,dependencies:[Ge],fp64ify:te,fp64LowPart:Me,fp64ifyMatrix4:Oe};var wr=1/Math.PI*180,Kr=1/180*Math.PI,mt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...mt}};var g=globalThis.mathgl.config;function Ce(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function P(e,t,_){let r=g.EPSILON;_&&(g.EPSILON=_);try{if(e===t)return!0;if(Ce(e)&&Ce(t)){if(e.length!==t.length)return!1;for(let i=0;i<e.length;++i)if(!P(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=g.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{g.EPSILON=r}}var x=typeof Float32Array<"u"?Float32Array:Array,Fe=Math.random;function re(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var jr=Math.PI/180;var ie={};ge(ie,{add:()=>r_,angle:()=>B_,bezier:()=>N_,ceil:()=>i_,clone:()=>Gt,copy:()=>t_,create:()=>et,cross:()=>n_,dist:()=>b_,distance:()=>st,div:()=>y_,divide:()=>it,dot:()=>Be,equals:()=>U_,exactEquals:()=>v_,floor:()=>s_,forEach:()=>u_,fromValues:()=>e_,hermite:()=>S_,inverse:()=>f_,len:()=>V_,length:()=>tt,lerp:()=>E_,max:()=>a_,min:()=>o_,mul:()=>x_,multiply:()=>rt,negate:()=>A_,normalize:()=>c_,random:()=>d_,rotateX:()=>C_,rotateY:()=>F_,rotateZ:()=>P_,round:()=>R_,scale:()=>l_,scaleAndAdd:()=>T_,set:()=>__,slerp:()=>p_,sqrDist:()=>H_,sqrLen:()=>X_,squaredDistance:()=>ot,squaredLength:()=>at,str:()=>D_,sub:()=>g_,subtract:()=>_t,transformMat3:()=>M_,transformMat4:()=>I_,transformQuat:()=>O_,zero:()=>h_});function et(){let e=new x(3);return x!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Gt(e){let t=new x(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function tt(e){let t=e[0],_=e[1],r=e[2];return Math.sqrt(t*t+_*_+r*r)}function e_(e,t,_){let r=new x(3);return r[0]=e,r[1]=t,r[2]=_,r}function t_(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function __(e,t,_,r){return e[0]=t,e[1]=_,e[2]=r,e}function r_(e,t,_){return e[0]=t[0]+_[0],e[1]=t[1]+_[1],e[2]=t[2]+_[2],e}function _t(e,t,_){return e[0]=t[0]-_[0],e[1]=t[1]-_[1],e[2]=t[2]-_[2],e}function rt(e,t,_){return e[0]=t[0]*_[0],e[1]=t[1]*_[1],e[2]=t[2]*_[2],e}function it(e,t,_){return e[0]=t[0]/_[0],e[1]=t[1]/_[1],e[2]=t[2]/_[2],e}function i_(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function s_(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function o_(e,t,_){return e[0]=Math.min(t[0],_[0]),e[1]=Math.min(t[1],_[1]),e[2]=Math.min(t[2],_[2]),e}function a_(e,t,_){return e[0]=Math.max(t[0],_[0]),e[1]=Math.max(t[1],_[1]),e[2]=Math.max(t[2],_[2]),e}function R_(e,t){return e[0]=re(t[0]),e[1]=re(t[1]),e[2]=re(t[2]),e}function l_(e,t,_){return e[0]=t[0]*_,e[1]=t[1]*_,e[2]=t[2]*_,e}function T_(e,t,_,r){return e[0]=t[0]+_[0]*r,e[1]=t[1]+_[1]*r,e[2]=t[2]+_[2]*r,e}function st(e,t){let _=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(_*_+r*r+i*i)}function ot(e,t){let _=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return _*_+r*r+i*i}function at(e){let t=e[0],_=e[1],r=e[2];return t*t+_*_+r*r}function A_(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function f_(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function c_(e,t){let _=t[0],r=t[1],i=t[2],s=_*_+r*r+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Be(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function n_(e,t,_){let r=t[0],i=t[1],s=t[2],o=_[0],a=_[1],R=_[2];return e[0]=i*R-s*a,e[1]=s*o-r*R,e[2]=r*a-i*o,e}function E_(e,t,_,r){let i=t[0],s=t[1],o=t[2];return e[0]=i+r*(_[0]-i),e[1]=s+r*(_[1]-s),e[2]=o+r*(_[2]-o),e}function p_(e,t,_,r){let i=Math.acos(Math.min(Math.max(Be(t,_),-1),1)),s=Math.sin(i),o=Math.sin((1-r)*i)/s,a=Math.sin(r*i)/s;return e[0]=o*t[0]+a*_[0],e[1]=o*t[1]+a*_[1],e[2]=o*t[2]+a*_[2],e}function S_(e,t,_,r,i,s){let o=s*s,a=o*(2*s-3)+1,R=o*(s-2)+s,l=o*(s-1),T=o*(3-2*s);return e[0]=t[0]*a+_[0]*R+r[0]*l+i[0]*T,e[1]=t[1]*a+_[1]*R+r[1]*l+i[1]*T,e[2]=t[2]*a+_[2]*R+r[2]*l+i[2]*T,e}function N_(e,t,_,r,i,s){let o=1-s,a=o*o,R=s*s,l=a*o,T=3*s*a,A=3*R*o,f=R*s;return e[0]=t[0]*l+_[0]*T+r[0]*A+i[0]*f,e[1]=t[1]*l+_[1]*T+r[1]*A+i[1]*f,e[2]=t[2]*l+_[2]*T+r[2]*A+i[2]*f,e}function d_(e,t){t=t===void 0?1:t;let _=Fe()*2*Math.PI,r=Fe()*2-1,i=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(_)*i,e[1]=Math.sin(_)*i,e[2]=r*t,e}function I_(e,t,_){let r=t[0],i=t[1],s=t[2],o=_[3]*r+_[7]*i+_[11]*s+_[15];return o=o||1,e[0]=(_[0]*r+_[4]*i+_[8]*s+_[12])/o,e[1]=(_[1]*r+_[5]*i+_[9]*s+_[13])/o,e[2]=(_[2]*r+_[6]*i+_[10]*s+_[14])/o,e}function M_(e,t,_){let r=t[0],i=t[1],s=t[2];return e[0]=r*_[0]+i*_[3]+s*_[6],e[1]=r*_[1]+i*_[4]+s*_[7],e[2]=r*_[2]+i*_[5]+s*_[8],e}function O_(e,t,_){let r=_[0],i=_[1],s=_[2],o=_[3],a=t[0],R=t[1],l=t[2],T=i*l-s*R,A=s*a-r*l,f=r*R-i*a,c=i*f-s*A,S=s*T-r*f,J=r*A-i*T,N=o*2;return T*=N,A*=N,f*=N,c*=2,S*=2,J*=2,e[0]=a+T+c,e[1]=R+A+S,e[2]=l+f+J,e}function C_(e,t,_,r){let i=[],s=[];return i[0]=t[0]-_[0],i[1]=t[1]-_[1],i[2]=t[2]-_[2],s[0]=i[0],s[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),s[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function F_(e,t,_,r){let i=[],s=[];return i[0]=t[0]-_[0],i[1]=t[1]-_[1],i[2]=t[2]-_[2],s[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),s[1]=i[1],s[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function P_(e,t,_,r){let i=[],s=[];return i[0]=t[0]-_[0],i[1]=t[1]-_[1],i[2]=t[2]-_[2],s[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),s[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),s[2]=i[2],e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function B_(e,t){let _=e[0],r=e[1],i=e[2],s=t[0],o=t[1],a=t[2],R=Math.sqrt((_*_+r*r+i*i)*(s*s+o*o+a*a)),l=R&&Be(e,t)/R;return Math.acos(Math.min(Math.max(l,-1),1))}function h_(e){return e[0]=0,e[1]=0,e[2]=0,e}function D_(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function v_(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function U_(e,t){let _=e[0],r=e[1],i=e[2],s=t[0],o=t[1],a=t[2];return Math.abs(_-s)<=1e-6*Math.max(1,Math.abs(_),Math.abs(s))&&Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-a)<=1e-6*Math.max(1,Math.abs(i),Math.abs(a))}var g_=_t,x_=rt,y_=it,b_=st,H_=ot,V_=tt,X_=at,u_=function(){let e=et();return function(t,_,r,i,s,o){let a,R;for(_||(_=3),r||(r=0),i?R=Math.min(i*_+r,t.length):R=t.length,a=r;a<R;a+=_)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}}();var se=E(p(),1);var Rt=`
1060
- const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
1061
-
1044
+ `;var $t={ONE:1};function Xt(){return $t}var Qe={name:"fp64-arithmetic",vs:$e,getUniforms:Xt,fp64ify:ee,fp64LowPart:Pe,fp64ifyMatrix4:ye},te={name:"fp64",vs:Xe,dependencies:[Qe],fp64ify:ee,fp64LowPart:Pe,fp64ifyMatrix4:ye};var Bi=1/Math.PI*180,Di=1/180*Math.PI,Qt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Qt}};var I=globalThis.mathgl.config;function Te(r){return Array.isArray(r)||ArrayBuffer.isView(r)&&!(r instanceof DataView)}function E(r,e,t){let i=I.EPSILON;t&&(I.EPSILON=t);try{if(r===e)return!0;if(Te(r)&&Te(e)){if(r.length!==e.length)return!1;for(let s=0;s<r.length;++s)if(!E(r[s],e[s]))return!1;return!0}return r&&r.equals?r.equals(e):e&&e.equals?e.equals(r):typeof r=="number"&&typeof e=="number"?Math.abs(r-e)<=I.EPSILON*Math.max(1,Math.abs(r),Math.abs(e)):!1}finally{I.EPSILON=i}}var R=typeof Float32Array<"u"?Float32Array:Array,be=Math.random;function re(r){return r>=0?Math.round(r):r%.5===0?Math.floor(r):Math.round(r)}var ji=Math.PI/180;var ie={};Ie(ie,{add:()=>sr,angle:()=>Fr,bezier:()=>xr,ceil:()=>or,clone:()=>er,copy:()=>rr,create:()=>Je,cross:()=>mr,dist:()=>Nr,distance:()=>st,div:()=>kr,divide:()=>it,dot:()=>Ae,equals:()=>Rr,exactEquals:()=>Ir,floor:()=>nr,forEach:()=>Vr,fromValues:()=>tr,hermite:()=>gr,inverse:()=>pr,len:()=>Br,length:()=>et,lerp:()=>hr,max:()=>lr,min:()=>ar,mul:()=>Sr,multiply:()=>rt,negate:()=>_r,normalize:()=>dr,random:()=>Pr,rotateX:()=>Er,rotateY:()=>Ar,rotateZ:()=>Mr,round:()=>fr,scale:()=>cr,scaleAndAdd:()=>ur,set:()=>ir,slerp:()=>vr,sqrDist:()=>wr,sqrLen:()=>Dr,squaredDistance:()=>ot,squaredLength:()=>nt,str:()=>Or,sub:()=>Cr,subtract:()=>tt,transformMat3:()=>Tr,transformMat4:()=>yr,transformQuat:()=>br,zero:()=>Lr});function Je(){let r=new R(3);return R!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function er(r){let e=new R(3);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function et(r){let e=r[0],t=r[1],i=r[2];return Math.sqrt(e*e+t*t+i*i)}function tr(r,e,t){let i=new R(3);return i[0]=r,i[1]=e,i[2]=t,i}function rr(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r}function ir(r,e,t,i){return r[0]=e,r[1]=t,r[2]=i,r}function sr(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function tt(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r}function rt(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r}function it(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r[2]=e[2]/t[2],r}function or(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r[2]=Math.ceil(e[2]),r}function nr(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r[2]=Math.floor(e[2]),r}function ar(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r[2]=Math.min(e[2],t[2]),r}function lr(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r[2]=Math.max(e[2],t[2]),r}function fr(r,e){return r[0]=re(e[0]),r[1]=re(e[1]),r[2]=re(e[2]),r}function cr(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r}function ur(r,e,t,i){return r[0]=e[0]+t[0]*i,r[1]=e[1]+t[1]*i,r[2]=e[2]+t[2]*i,r}function st(r,e){let t=e[0]-r[0],i=e[1]-r[1],s=e[2]-r[2];return Math.sqrt(t*t+i*i+s*s)}function ot(r,e){let t=e[0]-r[0],i=e[1]-r[1],s=e[2]-r[2];return t*t+i*i+s*s}function nt(r){let e=r[0],t=r[1],i=r[2];return e*e+t*t+i*i}function _r(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}function pr(r,e){return r[0]=1/e[0],r[1]=1/e[1],r[2]=1/e[2],r}function dr(r,e){let t=e[0],i=e[1],s=e[2],o=t*t+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),r[0]=e[0]*o,r[1]=e[1]*o,r[2]=e[2]*o,r}function Ae(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function mr(r,e,t){let i=e[0],s=e[1],o=e[2],n=t[0],a=t[1],l=t[2];return r[0]=s*l-o*a,r[1]=o*n-i*l,r[2]=i*a-s*n,r}function hr(r,e,t,i){let s=e[0],o=e[1],n=e[2];return r[0]=s+i*(t[0]-s),r[1]=o+i*(t[1]-o),r[2]=n+i*(t[2]-n),r}function vr(r,e,t,i){let s=Math.acos(Math.min(Math.max(Ae(e,t),-1),1)),o=Math.sin(s),n=Math.sin((1-i)*s)/o,a=Math.sin(i*s)/o;return r[0]=n*e[0]+a*t[0],r[1]=n*e[1]+a*t[1],r[2]=n*e[2]+a*t[2],r}function gr(r,e,t,i,s,o){let n=o*o,a=n*(2*o-3)+1,l=n*(o-2)+o,f=n*(o-1),c=n*(3-2*o);return r[0]=e[0]*a+t[0]*l+i[0]*f+s[0]*c,r[1]=e[1]*a+t[1]*l+i[1]*f+s[1]*c,r[2]=e[2]*a+t[2]*l+i[2]*f+s[2]*c,r}function xr(r,e,t,i,s,o){let n=1-o,a=n*n,l=o*o,f=a*n,c=3*o*a,u=3*l*n,_=l*o;return r[0]=e[0]*f+t[0]*c+i[0]*u+s[0]*_,r[1]=e[1]*f+t[1]*c+i[1]*u+s[1]*_,r[2]=e[2]*f+t[2]*c+i[2]*u+s[2]*_,r}function Pr(r,e){e=e===void 0?1:e;let t=be()*2*Math.PI,i=be()*2-1,s=Math.sqrt(1-i*i)*e;return r[0]=Math.cos(t)*s,r[1]=Math.sin(t)*s,r[2]=i*e,r}function yr(r,e,t){let i=e[0],s=e[1],o=e[2],n=t[3]*i+t[7]*s+t[11]*o+t[15];return n=n||1,r[0]=(t[0]*i+t[4]*s+t[8]*o+t[12])/n,r[1]=(t[1]*i+t[5]*s+t[9]*o+t[13])/n,r[2]=(t[2]*i+t[6]*s+t[10]*o+t[14])/n,r}function Tr(r,e,t){let i=e[0],s=e[1],o=e[2];return r[0]=i*t[0]+s*t[3]+o*t[6],r[1]=i*t[1]+s*t[4]+o*t[7],r[2]=i*t[2]+s*t[5]+o*t[8],r}function br(r,e,t){let i=t[0],s=t[1],o=t[2],n=t[3],a=e[0],l=e[1],f=e[2],c=s*f-o*l,u=o*a-i*f,_=i*l-s*a,p=s*_-o*u,h=o*c-i*_,K=i*u-s*c,v=n*2;return c*=v,u*=v,_*=v,p*=2,h*=2,K*=2,r[0]=a+c+p,r[1]=l+u+h,r[2]=f+_+K,r}function Er(r,e,t,i){let s=[],o=[];return s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],o[0]=s[0],o[1]=s[1]*Math.cos(i)-s[2]*Math.sin(i),o[2]=s[1]*Math.sin(i)+s[2]*Math.cos(i),r[0]=o[0]+t[0],r[1]=o[1]+t[1],r[2]=o[2]+t[2],r}function Ar(r,e,t,i){let s=[],o=[];return s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],o[0]=s[2]*Math.sin(i)+s[0]*Math.cos(i),o[1]=s[1],o[2]=s[2]*Math.cos(i)-s[0]*Math.sin(i),r[0]=o[0]+t[0],r[1]=o[1]+t[1],r[2]=o[2]+t[2],r}function Mr(r,e,t,i){let s=[],o=[];return s[0]=e[0]-t[0],s[1]=e[1]-t[1],s[2]=e[2]-t[2],o[0]=s[0]*Math.cos(i)-s[1]*Math.sin(i),o[1]=s[0]*Math.sin(i)+s[1]*Math.cos(i),o[2]=s[2],r[0]=o[0]+t[0],r[1]=o[1]+t[1],r[2]=o[2]+t[2],r}function Fr(r,e){let t=r[0],i=r[1],s=r[2],o=e[0],n=e[1],a=e[2],l=Math.sqrt((t*t+i*i+s*s)*(o*o+n*n+a*a)),f=l&&Ae(r,e)/l;return Math.acos(Math.min(Math.max(f,-1),1))}function Lr(r){return r[0]=0,r[1]=0,r[2]=0,r}function Or(r){return"vec3(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")")}function Ir(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function Rr(r,e){let t=r[0],i=r[1],s=r[2],o=e[0],n=e[1],a=e[2];return Math.abs(t-o)<=1e-6*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(i-n)<=1e-6*Math.max(1,Math.abs(i),Math.abs(n))&&Math.abs(s-a)<=1e-6*Math.max(1,Math.abs(s),Math.abs(a))}var Cr=tt,Sr=rt,kr=it,Nr=st,wr=ot,Br=et,Dr=nt,Vr=function(){let r=Je();return function(e,t,i,s,o,n){let a,l;for(t||(t=3),i||(i=0),s?l=Math.min(s*t+i,e.length):l=e.length,a=i;a<l;a+=t)r[0]=e[a],r[1]=e[a+1],r[2]=e[a+2],o(r,r,n),e[a]=r[0],e[a+1]=r[1],e[a+2]=r[2];return e}}();var se=d(m(),1);var at=`const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
1062
1045
  uniform vec2 project_uViewProjectionMatrixFP64[16];
1063
-
1064
- // longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw
1065
1046
  void mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {
1066
-
1067
1047
  #if defined(NVIDIA_FP64_WORKAROUND)
1068
- out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);
1048
+ out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);
1069
1049
  #else
1070
- out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);
1050
+ out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);
1071
1051
  #endif
1072
- out_val[1] = sum_fp64(PI_FP64,
1073
- log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));
1074
- return;
1052
+ out_val[1] = sum_fp64(PI_FP64,
1053
+ log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));
1054
+ return;
1075
1055
  }
1076
-
1077
1056
  void project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {
1078
- vec2 pos_fp64[2];
1079
- mercatorProject_fp64(position_fp64, pos_fp64);
1080
- out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);
1081
- out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);
1082
-
1083
- return;
1057
+ vec2 pos_fp64[2];
1058
+ mercatorProject_fp64(position_fp64, pos_fp64);
1059
+ out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);
1060
+ out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);
1061
+ return;
1084
1062
  }
1085
-
1086
1063
  void project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {
1087
- vec4 position64xy = vec4(
1088
- position.x, position64xyLow.x,
1089
- position.y, position64xyLow.y);
1090
-
1091
- project_position_fp64(position64xy, out_val);
1064
+ vec4 position64xy = vec4(
1065
+ position.x, position64xyLow.x,
1066
+ position.y, position64xyLow.y);
1067
+ project_position_fp64(position64xy, out_val);
1092
1068
  }
1093
-
1094
1069
  vec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {
1095
- vec2 vertex_pos_clipspace[4];
1096
- mat4_vec4_mul_fp64(project_uViewProjectionMatrixFP64, vertex_pos_modelspace,
1097
- vertex_pos_clipspace);
1098
- return vec4(
1099
- vertex_pos_clipspace[0].x,
1100
- vertex_pos_clipspace[1].x,
1101
- vertex_pos_clipspace[2].x,
1102
- vertex_pos_clipspace[3].x
1103
- );
1070
+ vec2 vertex_pos_clipspace[4];
1071
+ mat4_vec4_mul_fp64(project_uViewProjectionMatrixFP64, vertex_pos_modelspace,
1072
+ vertex_pos_clipspace);
1073
+ return vec4(
1074
+ vertex_pos_clipspace[0].x,
1075
+ vertex_pos_clipspace[1].x,
1076
+ vertex_pos_clipspace[2].x,
1077
+ vertex_pos_clipspace[3].x
1078
+ );
1104
1079
  }
1105
-
1106
1080
  vec4 project_position_to_clipspace(
1107
- vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition
1081
+ vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition
1108
1082
  ) {
1109
- // This is the local offset to the instance position
1110
- vec2 offset64[4];
1111
- vec4_fp64(vec4(offset, 0.0), offset64);
1112
-
1113
- float z = project_size(position.z);
1114
-
1115
- // Apply web mercator projection (depends on coordinate system imn use)
1116
- vec2 projectedPosition64xy[2];
1117
- project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);
1118
-
1119
- vec2 commonPosition64[4];
1120
- commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);
1121
- commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);
1122
- commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));
1123
- commonPosition64[3] = vec2(1.0, 0.0);
1124
-
1125
- commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);
1126
-
1127
- return project_common_position_to_clipspace_fp64(commonPosition64);
1083
+ vec2 offset64[4];
1084
+ vec4_fp64(vec4(offset, 0.0), offset64);
1085
+ float z = project_size(position.z);
1086
+ vec2 projectedPosition64xy[2];
1087
+ project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);
1088
+ vec2 commonPosition64[4];
1089
+ commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);
1090
+ commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);
1091
+ commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));
1092
+ commonPosition64[3] = vec2(1.0, 0.0);
1093
+ commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);
1094
+ return project_common_position_to_clipspace_fp64(commonPosition64);
1128
1095
  }
1129
-
1130
1096
  vec4 project_position_to_clipspace(
1131
- vec3 position, vec3 position64xyLow, vec3 offset
1097
+ vec3 position, vec3 position64xyLow, vec3 offset
1132
1098
  ) {
1133
- vec4 commonPosition;
1134
- return project_position_to_clipspace(
1135
- position, position64xyLow, offset, commonPosition
1136
- );
1099
+ vec4 commonPosition;
1100
+ return project_position_to_clipspace(
1101
+ position, position64xyLow, offset, commonPosition
1102
+ );
1137
1103
  }
1138
- `;var{fp64ify:W_,fp64ifyMatrix4:k_}=_e,oe={name:"project64",dependencies:[se.project,_e],vs:Rt,getUniforms:K_},w_=(0,se._memoize)(Y_);function K_(e){if(e&&"viewport"in e){let{viewProjectionMatrix:t,scale:_}=e.viewport;return w_({viewProjectionMatrix:t,scale:_})}return{}}function Y_({viewProjectionMatrix:e,scale:t}){let _=k_(e),r=W_(t);return{project_uViewProjectionMatrixFP64:_,project64_uViewProjectionMatrix:_,project64_uScale:r}}var he=class extends y.LayerExtension{getShaders(){let{coordinateSystem:t}=this.props;if(t!==y.COORDINATE_SYSTEM.LNGLAT&&t!==y.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[oe]}}},b=he;(()=>{he.extensionName="Fp64Extension"})();var H=E(p(),1);var lt={inject:{"vs:#decl":`
1104
+ `;var{fp64ify:jr,fp64ifyMatrix4:zr}=te,oe={name:"project64",dependencies:[se.project,te],vs:at,getUniforms:Ur},Gr=(0,se._memoize)(qr);function Ur(r){if(r&&"viewport"in r){let{viewProjectionMatrix:e,scale:t}=r.viewport;return Gr({viewProjectionMatrix:e,scale:t})}return{}}function qr({viewProjectionMatrix:r,scale:e}){let t=zr(r),i=jr(e);return{project_uViewProjectionMatrixFP64:t,project64_uViewProjectionMatrix:t,project64_uScale:i}}var Me=class extends C.LayerExtension{getShaders(){let{coordinateSystem:e}=this.props;if(e!==C.COORDINATE_SYSTEM.LNGLAT&&e!==C.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[oe]}}},S=Me;(()=>{Me.extensionName="Fp64Extension"})();var k=d(m(),1);var lt={inject:{"vs:#decl":`
1139
1105
  in vec2 instanceDashArrays;
1140
1106
  in float instanceDashOffsets;
1141
1107
  out vec2 vDashArray;
@@ -1150,315 +1116,282 @@ uniform bool dashGapPickable;
1150
1116
  in vec2 vDashArray;
1151
1117
  in float vDashOffset;
1152
1118
  `,"fs:#main-start":`
1153
- float solidLength = vDashArray.x;
1154
- float gapLength = vDashArray.y;
1155
- float unitLength = solidLength + gapLength;
1156
-
1157
- float offset;
1158
-
1159
- if (unitLength > 0.0) {
1160
- if (dashAlignMode == 0.0) {
1161
- offset = vDashOffset;
1162
- } else {
1163
- unitLength = vPathLength / round(vPathLength / unitLength);
1164
- offset = solidLength / 2.0;
1165
- }
1166
-
1167
- float unitOffset = mod(vPathPosition.y + offset, unitLength);
1168
-
1169
- if (gapLength > 0.0 && unitOffset > solidLength) {
1170
- if (capType <= 0.5) {
1171
- if (!(dashGapPickable && bool(picking.isActive))) {
1172
- discard;
1173
- }
1174
- } else {
1175
- // caps are rounded, test the distance to solid ends
1176
- float distToEnd = length(vec2(
1177
- min(unitOffset - solidLength, unitLength - unitOffset),
1178
- vPathPosition.x
1179
- ));
1180
- if (distToEnd > 1.0) {
1181
- if (!(dashGapPickable && bool(picking.isActive))) {
1182
- discard;
1183
- }
1184
- }
1185
- }
1186
- }
1187
- }
1188
- `}},Tt={inject:{"vs:#decl":`
1119
+ float solidLength = vDashArray.x;
1120
+ float gapLength = vDashArray.y;
1121
+ float unitLength = solidLength + gapLength;
1122
+ float offset;
1123
+ if (unitLength > 0.0) {
1124
+ if (dashAlignMode == 0.0) {
1125
+ offset = vDashOffset;
1126
+ } else {
1127
+ unitLength = vPathLength / round(vPathLength / unitLength);
1128
+ offset = solidLength / 2.0;
1129
+ }
1130
+ float unitOffset = mod(vPathPosition.y + offset, unitLength);
1131
+ if (gapLength > 0.0 && unitOffset > solidLength) {
1132
+ if (capType <= 0.5) {
1133
+ if (!(dashGapPickable && bool(picking.isActive))) {
1134
+ discard;
1135
+ }
1136
+ } else {
1137
+ float distToEnd = length(vec2(
1138
+ min(unitOffset - solidLength, unitLength - unitOffset),
1139
+ vPathPosition.x
1140
+ ));
1141
+ if (distToEnd > 1.0) {
1142
+ if (!(dashGapPickable && bool(picking.isActive))) {
1143
+ discard;
1144
+ }
1145
+ }
1146
+ }
1147
+ }
1148
+ }
1149
+ `}},ft={inject:{"vs:#decl":`
1189
1150
  in float instanceOffsets;
1190
1151
  `,"vs:DECKGL_FILTER_SIZE":`
1191
- float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1192
- size *= offsetWidth;
1152
+ float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1153
+ size *= offsetWidth;
1193
1154
  `,"vs:#main-end":`
1194
- float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1195
- float offsetDir = sign(instanceOffsets);
1196
- vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;
1197
- vPathPosition.y *= offsetWidth;
1198
- vPathLength *= offsetWidth;
1155
+ float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1156
+ float offsetDir = sign(instanceOffsets);
1157
+ vPathPosition.x = (vPathPosition.x + offsetDir) * offsetWidth - offsetDir;
1158
+ vPathPosition.y *= offsetWidth;
1159
+ vPathLength *= offsetWidth;
1199
1160
  `,"fs:#main-start":`
1200
- float isInside;
1201
- isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);
1202
- if (isInside == 0.0) {
1203
- discard;
1204
- }
1205
- `}};var j_={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ae=class extends H.LayerExtension{constructor({dash:t=!1,offset:_=!1,highPrecisionDash:r=!1}={}){super({dash:t||r,offset:_,highPrecisionDash:r})}isEnabled(t){return"pathTesselator"in t.state}getShaders(t){if(!t.isEnabled(this))return null;let _={};return t.opts.dash&&(_=(0,H._mergeShaders)(_,lt)),t.opts.offset&&(_=(0,H._mergeShaders)(_,Tt)),_}initializeState(t,_){let r=this.getAttributeManager();!r||!_.isEnabled(this)||(_.opts.dash&&r.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:_.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:_.getDashOffsets.bind(this)}:{size:1,update:i=>{i.constant=!0,i.value=[0]}}}),_.opts.offset&&r.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}updateState(t,_){if(!_.isEnabled(this))return;let r={};_.opts.dash&&(r.dashAlignMode=this.props.dashJustified?1:0,r.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model?.setUniforms(r)}getDashOffsets(t){let _=[0],r=this.props.positionFormat==="XY"?2:3,i=Array.isArray(t[0]),s=i?t.length:t.length/r,o,a;for(let R=0;R<s-1;R++)o=i?t[R]:t.slice(R*r,R*r+r),o=this.projectPosition(o),R>0&&(_[R]=_[R-1]+ie.dist(a,o)),a=o;return _}},V=ae;(()=>{ae.defaultProps=j_})(),(()=>{ae.extensionName="PathStyleExtension"})();var ft=E(p(),1);var X=E(p(),1),z_=`
1161
+ float isInside;
1162
+ isInside = step(-1.0, vPathPosition.x) * step(vPathPosition.x, 1.0);
1163
+ if (isInside == 0.0) {
1164
+ discard;
1165
+ }
1166
+ `}};var Wr={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ne=class extends k.LayerExtension{constructor({dash:e=!1,offset:t=!1,highPrecisionDash:i=!1}={}){super({dash:e||i,offset:t,highPrecisionDash:i})}isEnabled(e){return"pathTesselator"in e.state}getShaders(e){if(!e.isEnabled(this))return null;let t={};return e.opts.dash&&(t=(0,k._mergeShaders)(t,lt)),e.opts.offset&&(t=(0,k._mergeShaders)(t,ft)),t}initializeState(e,t){let i=this.getAttributeManager();!i||!t.isEnabled(this)||(t.opts.dash&&i.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:t.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:t.getDashOffsets.bind(this)}:{size:1,update:s=>{s.constant=!0,s.value=[0]}}}),t.opts.offset&&i.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}updateState(e,t){if(!t.isEnabled(this))return;let i={};t.opts.dash&&(i.dashAlignMode=this.props.dashJustified?1:0,i.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model?.setUniforms(i)}getDashOffsets(e){let t=[0],i=this.props.positionFormat==="XY"?2:3,s=Array.isArray(e[0]),o=s?e.length:e.length/i,n,a;for(let l=0;l<o-1;l++)n=s?e[l]:e.slice(l*i,l*i+i),n=this.projectPosition(n),l>0&&(t[l]=t[l-1]+ie.dist(a,n)),a=n;return t}},N=ne;(()=>{ne.defaultProps=Wr})(),(()=>{ne.extensionName="PathStyleExtension"})();var ut=d(m(),1);var w=d(m(),1);var Hr=`
1206
1167
  #ifdef NON_INSTANCED_MODEL
1207
- #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1208
- #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
1209
- #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets
1168
+ #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1169
+ #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
1170
+ #define FILL_PATTERN_OFFSET_ATTRIB fillPatternOffsets
1210
1171
  #else
1211
- #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames
1212
- #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales
1213
- #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets
1172
+ #define FILL_PATTERN_FRAME_ATTRIB instanceFillPatternFrames
1173
+ #define FILL_PATTERN_SCALE_ATTRIB instanceFillPatternScales
1174
+ #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets
1214
1175
  #endif
1215
-
1216
1176
  in vec4 FILL_PATTERN_FRAME_ATTRIB;
1217
1177
  in float FILL_PATTERN_SCALE_ATTRIB;
1218
1178
  in vec2 FILL_PATTERN_OFFSET_ATTRIB;
1219
-
1220
1179
  uniform bool fill_patternEnabled;
1221
1180
  uniform vec2 fill_patternTextureSize;
1222
-
1223
1181
  out vec2 fill_uv;
1224
1182
  out vec4 fill_patternBounds;
1225
1183
  out vec4 fill_patternPlacement;
1226
- `,Z_=`
1184
+ `,Yr=`
1227
1185
  uniform bool fill_patternEnabled;
1228
1186
  uniform bool fill_patternMask;
1229
1187
  uniform sampler2D fill_patternTexture;
1230
1188
  uniform vec2 fill_uvCoordinateOrigin;
1231
1189
  uniform vec2 fill_uvCoordinateOrigin64Low;
1232
-
1233
1190
  in vec4 fill_patternBounds;
1234
1191
  in vec4 fill_patternPlacement;
1235
1192
  in vec2 fill_uv;
1236
-
1237
1193
  const float FILL_UV_SCALE = 512.0 / 40000000.0;
1238
- `,q_={"vs:DECKGL_FILTER_GL_POSITION":`
1239
- fill_uv = geometry.position.xy;
1240
- `,"vs:DECKGL_FILTER_COLOR":`
1241
- if (fill_patternEnabled) {
1242
- fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);
1243
- fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;
1244
- fill_patternPlacement.zw = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.zw;
1245
- }
1246
- `,"fs:DECKGL_FILTER_COLOR":`
1247
- if (fill_patternEnabled) {
1248
- vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
1249
- vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uvCoordinateOrigin64Low + fill_uv, scale) / scale;
1250
- patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);
1251
-
1252
- vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
1253
-
1254
- vec4 patternColor = texture(fill_patternTexture, texCoords);
1255
- color.a *= patternColor.a;
1256
- if (!fill_patternMask) {
1257
- color.rgb = patternColor.rgb;
1258
- }
1259
- }
1260
- `};function Q_(e,t){if(!e)return{};if("fillPatternTexture"in e){let{fillPatternTexture:_}=e;return{fill_patternTexture:_,fill_patternTextureSize:[_.width,_.height]}}if("viewport"in e){let{fillPatternMask:_=!0,fillPatternEnabled:r=!0}=e,{project_uCommonOrigin:i}=t,s=[(0,X.fp64LowPart)(i[0]),(0,X.fp64LowPart)(i[1])];return{fill_uvCoordinateOrigin:i.slice(0,2),fill_uvCoordinateOrigin64Low:s,fill_patternMask:_,fill_patternEnabled:r}}return{}}var At={name:"fill-pattern",vs:z_,fs:Z_,inject:q_,dependencies:[X.project],getUniforms:Q_};var J_={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:e=>e.pattern},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},Re=class extends ft.LayerExtension{constructor({pattern:t=!1}={}){super({pattern:t})}isEnabled(t){return t.getAttributeManager()!==null&&!("pathTesselator"in t.state)}getShaders(t){return t.isEnabled(this)?{modules:[t.opts.pattern&&At].filter(Boolean)}:null}initializeState(t,_){if(!_.isEnabled(this))return;let r=this.getAttributeManager();_.opts.pattern&&r.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:_.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:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState({props:t,oldProps:_},r){r.isEnabled(this)&&t.fillPatternMapping&&t.fillPatternMapping!==_.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")}draw(t,_){if(!_.isEnabled(this))return;let{fillPatternAtlas:r}=this.props;this.setModuleParameters({fillPatternTexture:r||this.state.emptyTexture})}finalizeState(){this.state.emptyTexture?.delete()}getPatternFrame(t){let{fillPatternMapping:_}=this.getCurrentLayer().props,r=_&&_[t];return r?[r.x,r.y,r.width,r.height]:[0,0,0,0]}},u=Re;(()=>{Re.defaultProps=J_})(),(()=>{Re.extensionName="FillStyleExtension"})();var ct=E(p(),1),$_={clipBounds:[0,0,1,1],clipByInstance:void 0},nt=`
1194
+ `,Kr={"vs:DECKGL_FILTER_GL_POSITION":`
1195
+ fill_uv = geometry.position.xy;
1196
+ `,"vs:DECKGL_FILTER_COLOR":`
1197
+ if (fill_patternEnabled) {
1198
+ fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);
1199
+ fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;
1200
+ fill_patternPlacement.zw = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.zw;
1201
+ }
1202
+ `,"fs:DECKGL_FILTER_COLOR":`
1203
+ if (fill_patternEnabled) {
1204
+ vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
1205
+ vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uvCoordinateOrigin64Low + fill_uv, scale) / scale;
1206
+ patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);
1207
+ vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
1208
+ vec4 patternColor = texture(fill_patternTexture, texCoords);
1209
+ color.a *= patternColor.a;
1210
+ if (!fill_patternMask) {
1211
+ color.rgb = patternColor.rgb;
1212
+ }
1213
+ }
1214
+ `};function Zr(r,e){if(!r)return{};if("fillPatternTexture"in r){let{fillPatternTexture:t}=r;return{fill_patternTexture:t,fill_patternTextureSize:[t.width,t.height]}}if("viewport"in r){let{fillPatternMask:t=!0,fillPatternEnabled:i=!0}=r,{project_uCommonOrigin:s}=e,o=[(0,w.fp64LowPart)(s[0]),(0,w.fp64LowPart)(s[1])];return{fill_uvCoordinateOrigin:s.slice(0,2),fill_uvCoordinateOrigin64Low:o,fill_patternMask:t,fill_patternEnabled:i}}return{}}var ct={name:"fill-pattern",vs:Hr,fs:Yr,inject:Kr,dependencies:[w.project],getUniforms:Zr};var $r={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:r=>r.pattern},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},ae=class extends ut.LayerExtension{constructor({pattern:e=!1}={}){super({pattern:e})}isEnabled(e){return e.getAttributeManager()!==null&&!("pathTesselator"in e.state)}getShaders(e){return e.isEnabled(this)?{modules:[e.opts.pattern&&ct].filter(Boolean)}:null}initializeState(e,t){if(!t.isEnabled(this))return;let i=this.getAttributeManager();t.opts.pattern&&i.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:t.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:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState({props:e,oldProps:t},i){i.isEnabled(this)&&e.fillPatternMapping&&e.fillPatternMapping!==t.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")}draw(e,t){if(!t.isEnabled(this))return;let{fillPatternAtlas:i}=this.props;this.setModuleParameters({fillPatternTexture:i||this.state.emptyTexture})}finalizeState(){this.state.emptyTexture?.delete()}getPatternFrame(e){let{fillPatternMapping:t}=this.getCurrentLayer().props,i=t&&t[e];return i?[i.x,i.y,i.width,i.height]:[0,0,0,0]}},B=ae;(()=>{ae.defaultProps=$r})(),(()=>{ae.extensionName="FillStyleExtension"})();var _t=d(m(),1);var Xr={clipBounds:[0,0,1,1],clipByInstance:void 0},pt=`
1261
1215
  uniform vec4 clip_bounds;
1262
-
1263
1216
  bool clip_isInBounds(vec2 position) {
1264
- return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1217
+ return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1265
1218
  }
1266
- `,m_={name:"clip-vs",vs:nt},L_={"vs:#decl":`
1219
+ `,Qr={name:"clip-vs",vs:pt},Jr={"vs:#decl":`
1267
1220
  out float clip_isVisible;
1268
1221
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1269
- clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
1222
+ clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
1270
1223
  `,"fs:#decl":`
1271
1224
  in float clip_isVisible;
1272
1225
  `,"fs:DECKGL_FILTER_COLOR":`
1273
- if (clip_isVisible < 0.5) discard;
1274
- `},G_={name:"clip-fs",fs:nt},er={"vs:#decl":`
1226
+ if (clip_isVisible < 0.5) discard;
1227
+ `},ei={name:"clip-fs",fs:pt},ti={"vs:#decl":`
1275
1228
  out vec2 clip_commonPosition;
1276
1229
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1277
- clip_commonPosition = geometry.position.xy;
1230
+ clip_commonPosition = geometry.position.xy;
1278
1231
  `,"fs:#decl":`
1279
1232
  in vec2 clip_commonPosition;
1280
1233
  `,"fs:DECKGL_FILTER_COLOR":`
1281
- if (!clip_isInBounds(clip_commonPosition)) discard;
1282
- `},le=class extends ct.LayerExtension{getShaders(){let t="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(t=Boolean(this.props.clipByInstance)),this.state.clipByInstance=t,t?{modules:[m_],inject:L_}:{modules:[G_],inject:er}}draw({uniforms:t}){let{clipBounds:_}=this.props;if(this.state.clipByInstance)t.clip_bounds=_;else{let r=this.projectPosition([_[0],_[1],0]),i=this.projectPosition([_[2],_[3],0]);t.clip_bounds=[Math.min(r[0],i[0]),Math.min(r[1],i[1]),Math.max(r[0],i[0]),Math.max(r[1],i[1])]}}},W=le;(()=>{le.defaultProps=$_})(),(()=>{le.extensionName="ClipExtension"})();var It=E(p(),1);var Et=E(p(),1),tr=`
1234
+ if (!clip_isInBounds(clip_commonPosition)) discard;
1235
+ `},le=class extends _t.LayerExtension{getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(e=Boolean(this.props.clipByInstance)),this.state.clipByInstance=e,e?{modules:[Qr],inject:Jr}:{modules:[ei],inject:ti}}draw({uniforms:e}){let{clipBounds:t}=this.props;if(this.state.clipByInstance)e.clip_bounds=t;else{let i=this.projectPosition([t[0],t[1],0]),s=this.projectPosition([t[2],t[3],0]);e.clip_bounds=[Math.min(i[0],s[0]),Math.min(i[1],s[1]),Math.max(i[0],s[0]),Math.max(i[1],s[1])]}}},D=le;(()=>{le.defaultProps=Xr})(),(()=>{le.extensionName="ClipExtension"})();var xt=d(m(),1);var dt=d(m(),1);var ri=`
1283
1236
  #ifdef NON_INSTANCED_MODEL
1284
1237
  in float collisionPriorities;
1285
1238
  #else
1286
1239
  in float instanceCollisionPriorities;
1287
1240
  #endif
1288
-
1289
1241
  uniform sampler2D collision_texture;
1290
1242
  uniform bool collision_sort;
1291
1243
  uniform bool collision_enabled;
1292
-
1293
1244
  vec2 collision_getCoords(vec4 position) {
1294
- vec4 collision_clipspace = project_common_position_to_clipspace(position);
1295
- return (1.0 + collision_clipspace.xy / collision_clipspace.w) / 2.0;
1245
+ vec4 collision_clipspace = project_common_position_to_clipspace(position);
1246
+ return (1.0 + collision_clipspace.xy / collision_clipspace.w) / 2.0;
1296
1247
  }
1297
-
1298
1248
  float collision_match(vec2 tex, vec3 pickingColor) {
1299
- vec4 collision_pickingColor = texture(collision_texture, tex);
1300
- float delta = dot(abs(collision_pickingColor.rgb - pickingColor), vec3(1.0));
1301
- float e = 0.001;
1302
- return step(delta, e);
1249
+ vec4 collision_pickingColor = texture(collision_texture, tex);
1250
+ float delta = dot(abs(collision_pickingColor.rgb - pickingColor), vec3(1.0));
1251
+ float e = 0.001;
1252
+ return step(delta, e);
1303
1253
  }
1304
-
1305
1254
  float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1306
- if (!collision_enabled) {
1307
- return 1.0;
1308
- }
1309
-
1310
- // Visibility test, sample area of 5x5 pixels in order to fade in/out.
1311
- // Due to the locality, the lookups will be cached
1312
- // This reduces the flicker present when objects are shown/hidden
1313
- const int N = 2;
1314
- float accumulator = 0.0;
1315
- vec2 step = vec2(1.0 / project_uViewportSize);
1316
-
1317
- const float floatN = float(N);
1318
- vec2 delta = -floatN * step;
1319
- for(int i = -N; i <= N; i++) {
1320
- delta.x = -step.x * floatN;
1321
- for(int j = -N; j <= N; j++) {
1322
- accumulator += collision_match(texCoords + delta, pickingColor);
1323
- delta.x += step.x;
1324
- }
1325
- delta.y += step.y;
1326
- }
1327
-
1328
- float W = 2.0 * floatN + 1.0;
1329
- return pow(accumulator / (W * W), 2.2);
1330
- }
1331
- `,_r={"vs:#decl":`
1332
- float collision_fade = 1.0;
1255
+ if (!collision_enabled) {
1256
+ return 1.0;
1257
+ }
1258
+ const int N = 2;
1259
+ float accumulator = 0.0;
1260
+ vec2 step = vec2(1.0 / project_uViewportSize);
1261
+ const float floatN = float(N);
1262
+ vec2 delta = -floatN * step;
1263
+ for(int i = -N; i <= N; i++) {
1264
+ delta.x = -step.x * floatN;
1265
+ for(int j = -N; j <= N; j++) {
1266
+ accumulator += collision_match(texCoords + delta, pickingColor);
1267
+ delta.x += step.x;
1268
+ }
1269
+ delta.y += step.y;
1270
+ }
1271
+ float W = 2.0 * floatN + 1.0;
1272
+ return pow(accumulator / (W * W), 2.2);
1273
+ }
1274
+ `,ii={"vs:#decl":`
1275
+ float collision_fade = 1.0;
1333
1276
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1334
- if (collision_sort) {
1335
- #ifdef NON_INSTANCED_MODEL
1336
- float collisionPriority = collisionPriorities;
1337
- #else
1338
- float collisionPriority = instanceCollisionPriorities;
1339
- #endif
1340
- position.z = -0.001 * collisionPriority * position.w; // Support range -1000 -> 1000
1341
- }
1342
-
1343
- if (collision_enabled) {
1344
- vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1345
- vec2 collision_texCoords = collision_getCoords(collision_common_position);
1346
- collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0);
1347
- if (collision_fade < 0.0001) {
1348
- // Position outside clip space bounds to discard
1349
- position = vec4(0.0, 0.0, 2.0, 1.0);
1350
- }
1351
- }
1352
- `,"vs:DECKGL_FILTER_COLOR":`
1353
- color.a *= collision_fade;
1354
- `},rr=(e,t)=>{if(!e||!("dummyCollisionMap"in e))return{};let{collisionFBO:_,drawToCollisionMap:r,dummyCollisionMap:i}=e;return{collision_sort:Boolean(r),collision_texture:!r&&_?_.colorAttachments[0]:i}},pt={name:"collision",dependencies:[Et.project],vs:tr,inject:_r,getUniforms:rr};var dt=E(p(),1);var St=E(p(),1),k=class extends St._LayersPass{renderCollisionMap(t,_){let i=[0,0,0,0];return this.device.withParametersWebGL({scissorTest:!0,scissor:[1,1,t.width-2*1,t.height-2*1],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({..._,clearColor:i,target:t,pass:"collision"}))}getModuleParameters(){return{drawToCollisionMap:!0,picking:{isActive:1,isAttribute:!1},lightSources:{}}}};var De=E(p(),1);var Nt=E(p(),1),w=class extends Nt._LayersPass{constructor(t,_){super(t,_);let{mapSize:r=2048}=_;this.maskMap=t.createTexture({format:"rgba8unorm",width:r,height:r,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),this.fbo=t.createFramebuffer({id:"maskmap",width:r,height:r,colorAttachments:[this.maskMap]})}render(t){let _=[!1,!1,!1,!1];_[t.channel]=!0;let r=[255,255,255,255];return this.device.withParametersWebGL({blend:!0,blendFunc:[n.ZERO,n.ONE],blendEquation:n.FUNC_SUBTRACT,colorMask:_,depthTest:!1},()=>super.render({...t,clearColor:r,target:this.fbo,pass:"mask"}))}shouldDrawLayer(t){return t.props.operation.includes("mask")}delete(){this.fbo.delete(),this.maskMap.delete()}};var Te=E(p(),1);function B(e,t){let _=[1/0,1/0,-1/0,-1/0];for(let r of e){let i=r.getBounds();if(i){let s=r.projectPosition(i[0],{viewport:t,autoOffset:!1}),o=r.projectPosition(i[1],{viewport:t,autoOffset:!1});_[0]=Math.min(_[0],s[0]),_[1]=Math.min(_[1],s[1]),_[2]=Math.max(_[2],o[0]),_[3]=Math.max(_[3],o[1])}}return Number.isFinite(_[0])?_:null}var ir=2048;function h(e){let{bounds:t,viewport:_,border:r=0}=e,{isGeospatial:i}=_;if(t[2]<=t[0]||t[3]<=t[1])return null;let s=_.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),{width:o,height:a,zoom:R}=e;if(R===void 0){o=o-r*2,a=a-r*2;let l=Math.min(o/(t[2]-t[0]),a/(t[3]-t[1]));R=Math.min(Math.log2(l),20)}else if(!o||!a){let l=2**R;o=Math.round(Math.abs(t[2]-t[0])*l),a=Math.round(Math.abs(t[3]-t[1])*l);let T=ir-r*2;if(o>T||a>T){let A=T/Math.max(o,a);o=Math.round(o*A),a=Math.round(a*A),R+=Math.log2(A)}}return i?new Te.WebMercatorViewport({id:_.id,x:r,y:r,width:o,height:a,longitude:s[0],latitude:s[1],zoom:R,orthographic:!0}):new Te.OrthographicViewport({id:_.id,x:r,y:r,width:o,height:a,target:s,zoom:R,flipY:!1})}function sr(e,t){let _;if(t&&t.length===2){let[s,o]=t,a=e.getBounds({z:s}),R=e.getBounds({z:o});_=[Math.min(a[0],R[0]),Math.min(a[1],R[1]),Math.max(a[2],R[2]),Math.max(a[3],R[3])]}else _=e.getBounds();let r=e.projectPosition(_.slice(0,2)),i=e.projectPosition(_.slice(2,4));return[r[0],r[1],i[0],i[1]]}function D(e,t,_){if(!e)return[0,0,1,1];let r=sr(t,_),i=or(r);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 or(e){let t=e[2]-e[0],_=e[3]-e[1],r=(e[0]+e[2])/2,i=(e[1]+e[3])/2;return[r-t,i-_,r+t,i+_]}var C=class{constructor(){this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.channels=[],this.masks=null}preRender(t,{layers:_,layerFilter:r,viewports:i,onViewportActive:s,views:o,isPicking:a}){let R=!1;if(this.dummyMaskMap||(this.dummyMaskMap=t.createTexture({width:1,height:1})),a)return{didRender:R};let l=_.filter(c=>c.props.visible&&c.props.operation.includes("mask"));if(l.length===0)return this.masks=null,this.channels.length=0,{didRender:R};this.masks={},this.maskPass||(this.maskPass=new w(t,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);let T=this._sortMaskChannels(l),A=i[0],f=!this.lastViewport||!this.lastViewport.equals(A);if(A.resolution!==void 0)return De.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:R};for(let c in T){let S=this._renderChannel(T[c],{layerFilter:r,onViewportActive:s,views:o,viewport:A,viewportChanged:f});R||=S}return{didRender:R}}_renderChannel(t,{layerFilter:_,onViewportActive:r,views:i,viewport:s,viewportChanged:o}){let a=!1,R=this.channels[t.index];if(!R)return a;let l=t===R||t.layers.length!==R.layers.length||t.layers.some((T,A)=>T!==R.layers[A]||T.props.transitions)||t.layerBounds.some((T,A)=>T!==R.layerBounds[A]);if(t.bounds=R.bounds,t.maskBounds=R.maskBounds,this.channels[t.index]=t,l||o){this.lastViewport=s;let T=B(t.layers,s);if(t.bounds=T&&D(T,s),l||!P(t.bounds,R.bounds)){let{maskPass:A,maskMap:f}=this,c=T&&h({bounds:t.bounds,viewport:s,width:f.width,height:f.height,border:1});t.maskBounds=c?c.getBounds():[0,0,1,1],A.render({pass:"mask",channel:t.index,layers:t.layers,layerFilter:_,viewports:c?[c]:[],onViewportActive:r,views:i,moduleParameters:{devicePixelRatio:1}}),a=!0}}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},a}_sortMaskChannels(t){let _={},r=0;for(let i of t){let{id:s}=i.root,o=_[s];if(!o){if(++r>4){De.log.warn("Too many mask layers. The max supported is 4")();continue}o={id:s,index:this.channels.findIndex(a=>a?.id===s),layers:[],layerBounds:[],coordinateOrigin:i.root.props.coordinateOrigin,coordinateSystem:i.root.props.coordinateSystem},_[s]=o}o.layers.push(i),o.layerBounds.push(i.getBounds())}for(let i=0;i<4;i++){let s=this.channels[i];(!s||!(s.id in _))&&(this.channels[i]=null)}for(let i in _){let s=_[i];s.index<0&&(s.index=this.channels.findIndex(o=>!o),this.channels[s.index]=s)}return _}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){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}};var ve=2,K=class{constructor(){this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFBOs={}}preRender(t,{effects:_,layers:r,layerFilter:i,viewports:s,onViewportActive:o,views:a,isPicking:R,preRenderStats:l={}}){if(this.dummyCollisionMap||(this.dummyCollisionMap=t.createTexture({width:1,height:1})),R)return;let T=r.filter(({props:{visible:N,collisionEnabled:Ie}})=>N&&Ie);if(T.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new k(t,{id:"default-collision-filter"}));let A=_?.filter(N=>N.constructor===C),f=l["mask-effect"]?.didRender,c=this._groupByCollisionGroup(t,T),S=s[0],J=!this.lastViewport||!this.lastViewport.equals(S)||f;for(let N in c){let Ie=this.collisionFBOs[N],Ut=c[N],[gt,xt]=t.canvasContext.getPixelSize();Ie.resize({width:gt/ve,height:xt/ve}),this._render(Ut,{effects:A,layerFilter:i,onViewportActive:o,views:a,viewport:S,viewportChanged:J})}}_render(t,{effects:_,layerFilter:r,onViewportActive:i,views:s,viewport:o,viewportChanged:a}){let{collisionGroup:R}=t,l=this.channels[R];if(!l)return;let T=a||t===l||!(0,dt._deepEqual)(l.layers,t.layers,1)||t.layerBounds.some((A,f)=>!P(A,l.layerBounds[f]))||t.allLayersLoaded!==l.allLayersLoaded||t.layers.some(A=>A.props.transitions);if(this.channels[R]=t,T){this.lastViewport=o;let A=this.collisionFBOs[R];this.collisionFilterPass.renderCollisionMap(A,{pass:"collision-filter",isPicking:!0,layers:t.layers,effects:_,layerFilter:r,viewports:o?[o]:[],onViewportActive:i,views:s,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:A.device.canvasContext.getDevicePixelRatio()/ve}})}}_groupByCollisionGroup(t,_){let r={};for(let i of _){let{collisionGroup:s}=i.props,o=r[s];o||(o={collisionGroup:s,layers:[],layerBounds:[],allLayersLoaded:!0},r[s]=o),o.layers.push(i),o.layerBounds.push(i.getBounds()),i.isLoaded||(o.allLayersLoaded=!1)}for(let i of Object.keys(r))this.collisionFBOs[i]||this.createFBO(t,i),this.channels[i]||(this.channels[i]=r[i]);for(let i of Object.keys(this.collisionFBOs))r[i]||this.destroyFBO(i);return r}getModuleParameters(t){let{collisionGroup:_}=t.props,{collisionFBOs:r,dummyCollisionMap:i}=this;return{collisionFBO:r[_],dummyCollisionMap:i}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let t of Object.keys(this.collisionFBOs))this.destroyFBO(t);this.collisionFBOs={},this.lastViewport=void 0}createFBO(t,_){let{width:r,height:i}=t.gl.canvas,s=t.createTexture({format:"rgba8unorm",width:r,height:i,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),o=t.createTexture({format:"depth16unorm",width:r,height:i,mipmaps:!1,dataFormat:6402,type:5125});this.collisionFBOs[_]=t.createFramebuffer({id:`collision-${_}`,width:r,height:i,colorAttachments:[s],depthStencilAttachment:o})}destroyFBO(t){let _=this.collisionFBOs[t];_.colorAttachments[0]?.destroy(),_.depthStencilAttachment?.destroy(),_.destroy(),delete this.collisionFBOs[t]}};var ar={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},Ae=class extends It.LayerExtension{getShaders(){return{modules:[pt]}}draw({uniforms:t,context:_,moduleParameters:r}){let{collisionEnabled:i}=this.props,{collisionFBO:s,drawToCollisionMap:o}=r,a=i&&Boolean(s);t.collision_enabled=a,o&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(t,_){if(this.getAttributeManager()===null)return;this.context.deck?._addDefaultEffect(new K),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}},Y=Ae;(()=>{Ae.defaultProps=ar})(),(()=>{Ae.extensionName="CollisionFilterExtension"})();var O=E(p(),1);var Mt=E(p(),1),Rr=`
1277
+ if (collision_sort) {
1278
+ #ifdef NON_INSTANCED_MODEL
1279
+ float collisionPriority = collisionPriorities;
1280
+ #else
1281
+ float collisionPriority = instanceCollisionPriorities;
1282
+ #endif
1283
+ position.z = -0.001 * collisionPriority * position.w;
1284
+ }
1285
+ if (collision_enabled) {
1286
+ vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1287
+ vec2 collision_texCoords = collision_getCoords(collision_common_position);
1288
+ collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0);
1289
+ if (collision_fade < 0.0001) {
1290
+ position = vec4(0.0, 0.0, 2.0, 1.0);
1291
+ }
1292
+ }
1293
+ `,"vs:DECKGL_FILTER_COLOR":`
1294
+ color.a *= collision_fade;
1295
+ `},si=(r,e)=>{if(!r||!("dummyCollisionMap"in r))return{};let{collisionFBO:t,drawToCollisionMap:i,dummyCollisionMap:s}=r;return{collision_sort:Boolean(i),collision_texture:!i&&t?t.colorAttachments[0]:s}},mt={name:"collision",dependencies:[dt.project],vs:ri,inject:ii,getUniforms:si};var gt=d(m(),1);var ht=d(m(),1),V=class extends ht._LayersPass{renderCollisionMap(e,t){let s=[0,0,0,0];return this.device.withParametersWebGL({scissorTest:!0,scissor:[1,1,e.width-2*1,e.height-2*1],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({...t,clearColor:s,target:e,pass:"collision"}))}getModuleParameters(){return{drawToCollisionMap:!0,picking:{isActive:1,isAttribute:!1},lightSources:{}}}};var Fe=d(m(),1);var vt=d(m(),1),j=class extends vt._LayersPass{constructor(e,t){super(e,t);let{mapSize:i=2048}=t;this.maskMap=e.createTexture({format:"rgba8unorm",width:i,height:i,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),this.fbo=e.createFramebuffer({id:"maskmap",width:i,height:i,colorAttachments:[this.maskMap]})}render(e){let t=[!1,!1,!1,!1];t[e.channel]=!0;let i=[255,255,255,255];return this.device.withParametersWebGL({blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:t,depthTest:!1},()=>super.render({...e,clearColor:i,target:this.fbo,pass:"mask"}))}shouldDrawLayer(e){return e.props.operation.includes("mask")}delete(){this.fbo.delete(),this.maskMap.delete()}};var fe=d(m(),1);function A(r,e){let t=[1/0,1/0,-1/0,-1/0];for(let i of r){let s=i.getBounds();if(s){let o=i.projectPosition(s[0],{viewport:e,autoOffset:!1}),n=i.projectPosition(s[1],{viewport:e,autoOffset:!1});t[0]=Math.min(t[0],o[0]),t[1]=Math.min(t[1],o[1]),t[2]=Math.max(t[2],n[0]),t[3]=Math.max(t[3],n[1])}}return Number.isFinite(t[0])?t:null}var oi=2048;function M(r){let{bounds:e,viewport:t,border:i=0}=r,{isGeospatial:s}=t;if(e[2]<=e[0]||e[3]<=e[1])return null;let o=t.unprojectPosition([(e[0]+e[2])/2,(e[1]+e[3])/2,0]),{width:n,height:a,zoom:l}=r;if(l===void 0){n=n-i*2,a=a-i*2;let f=Math.min(n/(e[2]-e[0]),a/(e[3]-e[1]));l=Math.min(Math.log2(f),20)}else if(!n||!a){let f=2**l;n=Math.round(Math.abs(e[2]-e[0])*f),a=Math.round(Math.abs(e[3]-e[1])*f);let c=oi-i*2;if(n>c||a>c){let u=c/Math.max(n,a);n=Math.round(n*u),a=Math.round(a*u),l+=Math.log2(u)}}return s?new fe.WebMercatorViewport({id:t.id,x:i,y:i,width:n,height:a,longitude:o[0],latitude:o[1],zoom:l,orthographic:!0}):new fe.OrthographicViewport({id:t.id,x:i,y:i,width:n,height:a,target:o,zoom:l,flipY:!1})}function ni(r,e){let t;if(e&&e.length===2){let[o,n]=e,a=r.getBounds({z:o}),l=r.getBounds({z:n});t=[Math.min(a[0],l[0]),Math.min(a[1],l[1]),Math.max(a[2],l[2]),Math.max(a[3],l[3])]}else t=r.getBounds();let i=r.projectPosition(t.slice(0,2)),s=r.projectPosition(t.slice(2,4));return[i[0],i[1],s[0],s[1]]}function F(r,e,t){if(!r)return[0,0,1,1];let i=ni(e,t),s=ai(i);return r[2]-r[0]<=s[2]-s[0]&&r[3]-r[1]<=s[3]-s[1]?r:[Math.max(r[0],s[0]),Math.max(r[1],s[1]),Math.min(r[2],s[2]),Math.min(r[3],s[3])]}function ai(r){let e=r[2]-r[0],t=r[3]-r[1],i=(r[0]+r[2])/2,s=(r[1]+r[3])/2;return[i-e,s-t,i+e,s+t]}var T=class{constructor(){this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.channels=[],this.masks=null}preRender(e,{layers:t,layerFilter:i,viewports:s,onViewportActive:o,views:n,isPicking:a}){let l=!1;if(this.dummyMaskMap||(this.dummyMaskMap=e.createTexture({width:1,height:1})),a)return{didRender:l};let f=t.filter(p=>p.props.visible&&p.props.operation.includes("mask"));if(f.length===0)return this.masks=null,this.channels.length=0,{didRender:l};this.masks={},this.maskPass||(this.maskPass=new j(e,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);let c=this._sortMaskChannels(f),u=s[0],_=!this.lastViewport||!this.lastViewport.equals(u);if(u.resolution!==void 0)return Fe.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:l};for(let p in c){let h=this._renderChannel(c[p],{layerFilter:i,onViewportActive:o,views:n,viewport:u,viewportChanged:_});l||=h}return{didRender:l}}_renderChannel(e,{layerFilter:t,onViewportActive:i,views:s,viewport:o,viewportChanged:n}){let a=!1,l=this.channels[e.index];if(!l)return a;let f=e===l||e.layers.length!==l.layers.length||e.layers.some((c,u)=>c!==l.layers[u]||c.props.transitions)||e.layerBounds.some((c,u)=>c!==l.layerBounds[u]);if(e.bounds=l.bounds,e.maskBounds=l.maskBounds,this.channels[e.index]=e,f||n){this.lastViewport=o;let c=A(e.layers,o);if(e.bounds=c&&F(c,o),f||!E(e.bounds,l.bounds)){let{maskPass:u,maskMap:_}=this,p=c&&M({bounds:e.bounds,viewport:o,width:_.width,height:_.height,border:1});e.maskBounds=p?p.getBounds():[0,0,1,1],u.render({pass:"mask",channel:e.index,layers:e.layers,layerFilter:t,viewports:p?[p]:[],onViewportActive:i,views:s,moduleParameters:{devicePixelRatio:1}}),a=!0}}return this.masks[e.id]={index:e.index,bounds:e.maskBounds,coordinateOrigin:e.coordinateOrigin,coordinateSystem:e.coordinateSystem},a}_sortMaskChannels(e){let t={},i=0;for(let s of e){let{id:o}=s.root,n=t[o];if(!n){if(++i>4){Fe.log.warn("Too many mask layers. The max supported is 4")();continue}n={id:o,index:this.channels.findIndex(a=>a?.id===o),layers:[],layerBounds:[],coordinateOrigin:s.root.props.coordinateOrigin,coordinateSystem:s.root.props.coordinateSystem},t[o]=n}n.layers.push(s),n.layerBounds.push(s.getBounds())}for(let s=0;s<4;s++){let o=this.channels[s];(!o||!(o.id in t))&&(this.channels[s]=null)}for(let s in t){let o=t[s];o.index<0&&(o.index=this.channels.findIndex(n=>!n),this.channels[o.index]=o)}return t}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){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}};var Le=2,z=class{constructor(){this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFBOs={}}preRender(e,{effects:t,layers:i,layerFilter:s,viewports:o,onViewportActive:n,views:a,isPicking:l,preRenderStats:f={}}){if(this.dummyCollisionMap||(this.dummyCollisionMap=e.createTexture({width:1,height:1})),l)return;let c=i.filter(({props:{visible:v,collisionEnabled:xe}})=>v&&xe);if(c.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new V(e,{id:"default-collision-filter"}));let u=t?.filter(v=>v.constructor===T),_=f["mask-effect"]?.didRender,p=this._groupByCollisionGroup(e,c),h=o[0],K=!this.lastViewport||!this.lastViewport.equals(h)||_;for(let v in p){let xe=this.collisionFBOs[v],Ot=p[v],[It,Rt]=e.canvasContext.getPixelSize();xe.resize({width:It/Le,height:Rt/Le}),this._render(Ot,{effects:u,layerFilter:s,onViewportActive:n,views:a,viewport:h,viewportChanged:K})}}_render(e,{effects:t,layerFilter:i,onViewportActive:s,views:o,viewport:n,viewportChanged:a}){let{collisionGroup:l}=e,f=this.channels[l];if(!f)return;let c=a||e===f||!(0,gt._deepEqual)(f.layers,e.layers,1)||e.layerBounds.some((u,_)=>!E(u,f.layerBounds[_]))||e.allLayersLoaded!==f.allLayersLoaded||e.layers.some(u=>u.props.transitions);if(this.channels[l]=e,c){this.lastViewport=n;let u=this.collisionFBOs[l];this.collisionFilterPass.renderCollisionMap(u,{pass:"collision-filter",isPicking:!0,layers:e.layers,effects:t,layerFilter:i,viewports:n?[n]:[],onViewportActive:s,views:o,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:u.device.canvasContext.getDevicePixelRatio()/Le}})}}_groupByCollisionGroup(e,t){let i={};for(let s of t){let{collisionGroup:o}=s.props,n=i[o];n||(n={collisionGroup:o,layers:[],layerBounds:[],allLayersLoaded:!0},i[o]=n),n.layers.push(s),n.layerBounds.push(s.getBounds()),s.isLoaded||(n.allLayersLoaded=!1)}for(let s of Object.keys(i))this.collisionFBOs[s]||this.createFBO(e,s),this.channels[s]||(this.channels[s]=i[s]);for(let s of Object.keys(this.collisionFBOs))i[s]||this.destroyFBO(s);return i}getModuleParameters(e){let{collisionGroup:t}=e.props,{collisionFBOs:i,dummyCollisionMap:s}=this;return{collisionFBO:i[t],dummyCollisionMap:s}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let e of Object.keys(this.collisionFBOs))this.destroyFBO(e);this.collisionFBOs={},this.lastViewport=void 0}createFBO(e,t){let{width:i,height:s}=e.gl.canvas,o=e.createTexture({format:"rgba8unorm",width:i,height:s,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),n=e.createTexture({format:"depth16unorm",width:i,height:s,mipmaps:!1,dataFormat:6402,type:5125});this.collisionFBOs[t]=e.createFramebuffer({id:`collision-${t}`,width:i,height:s,colorAttachments:[o],depthStencilAttachment:n})}destroyFBO(e){let t=this.collisionFBOs[e];t.colorAttachments[0]?.destroy(),t.depthStencilAttachment?.destroy(),t.destroy(),delete this.collisionFBOs[e]}};var li={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},ce=class extends xt.LayerExtension{getShaders(){return{modules:[mt]}}draw({uniforms:e,context:t,moduleParameters:i}){let{collisionEnabled:s}=this.props,{collisionFBO:o,drawToCollisionMap:n}=i,a=s&&Boolean(o);e.collision_enabled=a,n&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(e,t){if(this.getAttributeManager()===null)return;this.context.deck?._addDefaultEffect(new z),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}},G=ce;(()=>{ce.defaultProps=li})(),(()=>{ce.extensionName="CollisionFilterExtension"})();var y=d(m(),1);var Pt=d(m(),1);var fi=`
1355
1296
  uniform vec4 mask_bounds;
1356
1297
  uniform bool mask_maskByInstance;
1357
1298
  vec2 mask_getCoords(vec4 position) {
1358
- return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1299
+ return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1359
1300
  }
1360
- `,lr=`
1301
+ `,ci=`
1361
1302
  uniform sampler2D mask_texture;
1362
1303
  uniform int mask_channel;
1363
1304
  uniform bool mask_enabled;
1364
1305
  uniform bool mask_inverted;
1365
1306
  bool mask_isInBounds(vec2 texCoords) {
1366
- if (!mask_enabled) {
1367
- return true;
1368
- }
1369
- vec4 maskColor = texture(mask_texture, texCoords);
1370
- float maskValue = 1.0;
1371
- if (mask_channel == 0) {
1372
- maskValue = maskColor.r;
1373
- } else if (mask_channel == 1) {
1374
- maskValue = maskColor.g;
1375
- } else if (mask_channel == 2) {
1376
- maskValue = maskColor.b;
1377
- } else if (mask_channel == 3) {
1378
- maskValue = maskColor.a;
1379
- }
1380
-
1381
- if (mask_inverted) {
1382
- return maskValue >= 0.5;
1383
- } else {
1384
- return maskValue < 0.5;
1385
- }
1386
- }
1387
- `,Tr={"vs:#decl":`
1307
+ if (!mask_enabled) {
1308
+ return true;
1309
+ }
1310
+ vec4 maskColor = texture(mask_texture, texCoords);
1311
+ float maskValue = 1.0;
1312
+ if (mask_channel == 0) {
1313
+ maskValue = maskColor.r;
1314
+ } else if (mask_channel == 1) {
1315
+ maskValue = maskColor.g;
1316
+ } else if (mask_channel == 2) {
1317
+ maskValue = maskColor.b;
1318
+ } else if (mask_channel == 3) {
1319
+ maskValue = maskColor.a;
1320
+ }
1321
+ if (mask_inverted) {
1322
+ return maskValue >= 0.5;
1323
+ } else {
1324
+ return maskValue < 0.5;
1325
+ }
1326
+ }
1327
+ `,ui={"vs:#decl":`
1388
1328
  out vec2 mask_texCoords;
1389
1329
  `,"vs:#main-end":`
1390
- vec4 mask_common_position;
1391
- if (mask_maskByInstance) {
1392
- mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1393
- } else {
1394
- mask_common_position = geometry.position;
1395
- }
1396
- mask_texCoords = mask_getCoords(mask_common_position);
1330
+ vec4 mask_common_position;
1331
+ if (mask_maskByInstance) {
1332
+ mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
1333
+ } else {
1334
+ mask_common_position = geometry.position;
1335
+ }
1336
+ mask_texCoords = mask_getCoords(mask_common_position);
1397
1337
  `,"fs:#decl":`
1398
1338
  in vec2 mask_texCoords;
1399
1339
  `,"fs:#main-start":`
1400
- if (mask_enabled) {
1401
- bool mask = mask_isInBounds(mask_texCoords);
1402
-
1403
- // Debug: show extent of render target
1404
- // fragColor = vec4(mask_texCoords, 0.0, 1.0);
1405
- fragColor = texture(mask_texture, mask_texCoords);
1406
-
1407
- if (!mask) discard;
1408
- }
1409
- `},Ar=e=>e&&"maskMap"in e?{mask_texture:e.maskMap}:{},Ot={name:"mask",dependencies:[Mt.project],vs:Rr,fs:lr,inject:Tr,getUniforms:Ar};var fr={maskId:"",maskByInstance:void 0,maskInverted:!1},fe=class extends O.LayerExtension{initializeState(){this.context.deck?._addDefaultEffect(new C)}getShaders(){let t="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(t=Boolean(this.props.maskByInstance)),this.state.maskByInstance=t,{modules:[Ot]}}draw({uniforms:t,context:_,moduleParameters:r}){t.mask_maskByInstance=this.state.maskByInstance;let{maskId:i,maskInverted:s}=this.props,{maskChannels:o}=r,{viewport:a}=_;if(o&&o[i]){let{index:R,bounds:l,coordinateOrigin:T}=o[i],{coordinateSystem:A}=o[i];t.mask_enabled=!0,t.mask_channel=R,t.mask_inverted=s,A===O.COORDINATE_SYSTEM.DEFAULT&&(A=a.isGeospatial?O.COORDINATE_SYSTEM.LNGLAT:O.COORDINATE_SYSTEM.CARTESIAN);let f={modelMatrix:null,fromCoordinateOrigin:T,fromCoordinateSystem:A},c=this.projectPosition([l[0],l[1],0],f),S=this.projectPosition([l[2],l[3],0],f);t.mask_bounds=[c[0],c[1],S[0],S[1]]}else i&&O.log.warn(`Could not find a mask layer with id: ${i}`)(),t.mask_enabled=!1}},j=fe;(()=>{fe.defaultProps=fr})(),(()=>{fe.extensionName="MaskExtension"})();var vt=E(p(),1);var Ne=E(p(),1);var Ft=E(p(),1),I={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Ct=Object.keys(I).map(e=>`const float TERRAIN_MODE_${e} = ${I[e]}.0;`).join(`
1410
- `),ce={name:"terrain",dependencies:[Ft.project],inject:{"vs:#decl":`
1340
+ if (mask_enabled) {
1341
+ bool mask = mask_isInBounds(mask_texCoords);
1342
+ fragColor = texture(mask_texture, mask_texCoords);
1343
+ if (!mask) discard;
1344
+ }
1345
+ `},_i=r=>r&&"maskMap"in r?{mask_texture:r.maskMap}:{},yt={name:"mask",dependencies:[Pt.project],vs:fi,fs:ci,inject:ui,getUniforms:_i};var pi={maskId:"",maskByInstance:void 0,maskInverted:!1},ue=class extends y.LayerExtension{initializeState(){this.context.deck?._addDefaultEffect(new T)}getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(e=Boolean(this.props.maskByInstance)),this.state.maskByInstance=e,{modules:[yt]}}draw({uniforms:e,context:t,moduleParameters:i}){e.mask_maskByInstance=this.state.maskByInstance;let{maskId:s,maskInverted:o}=this.props,{maskChannels:n}=i,{viewport:a}=t;if(n&&n[s]){let{index:l,bounds:f,coordinateOrigin:c}=n[s],{coordinateSystem:u}=n[s];e.mask_enabled=!0,e.mask_channel=l,e.mask_inverted=o,u===y.COORDINATE_SYSTEM.DEFAULT&&(u=a.isGeospatial?y.COORDINATE_SYSTEM.LNGLAT:y.COORDINATE_SYSTEM.CARTESIAN);let _={modelMatrix:null,fromCoordinateOrigin:c,fromCoordinateSystem:u},p=this.projectPosition([f[0],f[1],0],_),h=this.projectPosition([f[2],f[3],0],_);e.mask_bounds=[p[0],p[1],h[0],h[1]]}else s&&y.log.warn(`Could not find a mask layer with id: ${s}`)(),e.mask_enabled=!1}},U=ue;(()=>{ue.defaultProps=pi})(),(()=>{ue.extensionName="MaskExtension"})();var Lt=d(m(),1);var ve=d(m(),1);var bt=d(m(),1);var x={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Tt=Object.keys(x).map(r=>`const float TERRAIN_MODE_${r} = ${x[r]}.0;`).join(`
1346
+ `),_e={name:"terrain",dependencies:[bt.project],inject:{"vs:#decl":`
1411
1347
  uniform float terrain_mode;
1412
1348
  uniform sampler2D terrain_map;
1413
1349
  uniform vec4 terrain_bounds;
1414
1350
  out vec3 commonPos;
1415
- ${Ct}
1416
- `,"vs:#main-start":`
1351
+ `+Tt,"vs:#main-start":`
1417
1352
  if (terrain_mode == TERRAIN_MODE_SKIP) {
1418
- gl_Position = vec4(0.0);
1419
- return;
1353
+ gl_Position = vec4(0.0);
1354
+ return;
1420
1355
  }
1421
1356
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1422
1357
  commonPos = geometry.position.xyz;
1423
1358
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1424
- vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1425
- position = vec4(texCoords * 2.0 - 1.0, 0.0, 1.0);
1426
- commonPos.z += project_uCommonOrigin.z;
1359
+ vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1360
+ position = vec4(texCoords * 2.0 - 1.0, 0.0, 1.0);
1361
+ commonPos.z += project_uCommonOrigin.z;
1427
1362
  }
1428
1363
  if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
1429
- vec3 anchor = geometry.worldPosition;
1430
- anchor.z = 0.0;
1431
- vec3 anchorCommon = project_position(anchor);
1432
- vec2 texCoords = (anchorCommon.xy - terrain_bounds.xy) / terrain_bounds.zw;
1433
- if (texCoords.x >= 0.0 && texCoords.y >= 0.0 && texCoords.x <= 1.0 && texCoords.y <= 1.0) {
1434
- float terrainZ = texture(terrain_map, texCoords).r;
1435
- geometry.position.z += terrainZ;
1436
- position = project_common_position_to_clipspace(geometry.position);
1437
- }
1364
+ vec3 anchor = geometry.worldPosition;
1365
+ anchor.z = 0.0;
1366
+ vec3 anchorCommon = project_position(anchor);
1367
+ vec2 texCoords = (anchorCommon.xy - terrain_bounds.xy) / terrain_bounds.zw;
1368
+ if (texCoords.x >= 0.0 && texCoords.y >= 0.0 && texCoords.x <= 1.0 && texCoords.y <= 1.0) {
1369
+ float terrainZ = texture(terrain_map, texCoords).r;
1370
+ geometry.position.z += terrainZ;
1371
+ position = project_common_position_to_clipspace(geometry.position);
1372
+ }
1438
1373
  }
1439
- `,"fs:#decl":`
1374
+ `,"fs:#decl":`
1440
1375
  uniform float terrain_mode;
1441
1376
  uniform sampler2D terrain_map;
1442
1377
  uniform vec4 terrain_bounds;
1443
1378
  in vec3 commonPos;
1444
- ${Ct}
1445
- `,"fs:#main-start":`
1379
+ `+Tt,"fs:#main-start":`
1446
1380
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1447
- fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1448
- return;
1381
+ fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1382
+ return;
1449
1383
  }
1450
- `,"fs:DECKGL_FILTER_COLOR":`
1384
+ `,"fs:DECKGL_FILTER_COLOR":`
1451
1385
  if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY)) {
1452
- vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1453
- vec4 pixel = texture(terrain_map, texCoords);
1454
- if (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY) {
1455
- color = pixel;
1456
- } else {
1457
- // pixel is premultiplied
1458
- color = pixel + color * (1.0 - pixel.a);
1459
- }
1460
- return;
1386
+ vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1387
+ vec4 pixel = texture(terrain_map, texCoords);
1388
+ if (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY) {
1389
+ color = pixel;
1390
+ } else {
1391
+ color = pixel + color * (1.0 - pixel.a);
1392
+ }
1393
+ return;
1461
1394
  }
1462
- `},getUniforms:(e={},t)=>{if("dummyHeightMap"in e){let{drawToTerrainHeightMap:_,heightMap:r,heightMapBounds:i,dummyHeightMap:s,terrainCover:o,useTerrainHeightMap:a,terrainSkipRender:R}=e,{project_uCommonOrigin:l}=t,T=R?I.SKIP:I.NONE,A=s,f=null;if(_)T=I.WRITE_HEIGHT_MAP,f=i;else if(a&&r)T=I.USE_HEIGHT_MAP,A=r,f=i;else if(o){let c=e.picking?.isActive;A=c?o.getPickingFramebuffer():o.getRenderFramebuffer(),c&&(T=I.SKIP),A?(T=T===I.SKIP?I.USE_COVER_ONLY:I.USE_COVER,f=o.bounds):A=s}return{terrain_mode:T,terrain_map:A,terrain_bounds:f?[f[0]-l[0],f[1]-l[1],f[2]-f[0],f[3]-f[1]]:[0,0,0,0]}}return null}};function z(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture({...t.float&&{format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:n.FLOAT},mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}})]})}var ne=class{constructor(t){this.isDirty=!0,this.renderViewport=null,this.bounds=null,this.layers=[],this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=t,this.tile=Pt(t)}get id(){return this.targetLayer.id}get isActive(){return Boolean(this.targetLayer.getCurrentLayer())}shouldUpdate({targetLayer:t,viewport:_,layers:r,layerNeedsRedraw:i}){t&&(this.targetLayer=t);let s=_?this._updateViewport(_):!1,o=r?this._updateLayers(r):!1;if(i){for(let a of this.layers)if(i[a]){o=!0;break}}return o||s}_updateLayers(t){let _=!1;if(t=this.tile?cr(this.tile,t):t,t.length!==this.layers.length)_=!0;else for(let r=0;r<t.length;r++)if(t[r].id!==this.layers[r]){_=!0;break}return _&&(this.layers=t.map(r=>r.id)),_}_updateViewport(t){let _=this.targetLayer,r=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){r=!0,this.targetBounds=this.tile.boundingBox;let s=t.projectPosition(this.targetBounds[0]),o=t.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[s[0],s[1],o[0],o[1]]}}else this.targetBounds!==_.getBounds()&&(r=!0,this.targetBounds=_.getBounds(),this.targetBoundsCommon=B([_],t));if(!this.targetBoundsCommon)return!1;let i=Math.ceil(t.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{let s=this.renderViewport?.zoom;r=r||i!==s;let o=D(this.targetBoundsCommon,t),a=this.bounds;r=r||!a||o.some((R,l)=>R!==a[l]),this.bounds=o}return r&&(this.renderViewport=h({bounds:this.bounds,zoom:i,viewport:t})),r}getRenderFramebuffer(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=z(this.targetLayer.context.device,{id:this.id})),this.fbo)}getPickingFramebuffer(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=z(this.targetLayer.context.device,{id:`${this.id}-picking`})),this.pickingFbo)}filterLayers(t){return t.filter(({id:_})=>this.layers.includes(_))}delete(){let{fbo:t,pickingFbo:_}=this;t&&(t.colorAttachments[0].destroy(),t.destroy()),_&&(_.colorAttachments[0].destroy(),_.destroy())}};function cr(e,t){return t.filter(_=>{let r=Pt(_);return r?nr(e.boundingBox,r.boundingBox):!0})}function Pt(e){for(;e;){let{tile:t}=e.props;if(t)return t;e=e.parent}return null}function nr(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var Bt=E(p(),1),Ee=class extends Bt._LayersPass{getRenderableLayers(t,_){let{layers:r}=_,i=[],s=this._getDrawLayerParams(t,_,!0);for(let o=0;o<r.length;o++){let a=r[o];!a.isComposite&&s[o].shouldDrawLayer&&i.push(a)}return i}renderHeightMap(t,_){let r=t.getRenderFramebuffer(),i=t.renderViewport;!r||!i||(r.resize(i),this.device.withParametersWebGL({clearColor:[0,0,0,0],blend:!0,blendFunc:[n.ONE,n.ONE],blendEquation:n.MAX,depthTest:!1},()=>this.render({..._,target:r,pass:"terrain-height-map",layers:_.layers,viewports:[i],effects:[]})))}renderTerrainCover(t,_){let r=t.getRenderFramebuffer(),i=t.renderViewport;if(!r||!i)return;let s=t.filterLayers(_.layers);r.resize(i),this.device.withParametersWebGL({clearColor:[0,0,0,0],depthTest:!1},()=>this.render({..._,target:r,pass:`terrain-cover-${t.id}`,layers:s,effects:[],viewports:[i]}))}};var ht=E(p(),1),pe=class extends ht._PickLayersPass{constructor(){super(...arguments),this.drawParameters={}}getRenderableLayers(t,_){let{layers:r}=_,i=[];this.drawParameters={},this._resetColorEncoder(_.pickZ);let s=this._getDrawLayerParams(t,_);for(let o=0;o<r.length;o++){let a=r[o];!a.isComposite&&s[o].shouldDrawLayer&&(i.push(a),this.drawParameters[a.id]=s[o].layerParameters)}return i}renderTerrainCover(t,_){let r=t.getPickingFramebuffer(),i=t.renderViewport;if(!r||!i)return;let s=t.filterLayers(_.layers),o=t.targetLayer;o.props.pickable&&s.unshift(o),r.resize(i),this.device.withParametersWebGL({depthTest:!1},()=>this.render({..._,pickingFBO:r,pass:`terrain-cover-picking-${t.id}`,layers:s,effects:[],viewports:[i],cullRect:void 0,deviceRect:i,pickZ:!1}))}getLayerParameters(t,_,r){if(this.drawParameters[t.id])return this.drawParameters[t.id];let i=super.getLayerParameters(t,_,r);return i.blend=!0,i}};var Dt=2048,Z=class{static isSupported(t){return t.isTextureFormatRenderable("rgba32float")}constructor(t){this.renderViewport=null,this.bounds=null,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=t}getRenderFramebuffer(){return this.renderViewport?(this.fbo||(this.fbo=z(this.device,{id:"height-map",float:!0})),this.fbo):null}shouldUpdate({layers:t,viewport:_}){let r=t.length!==this.layers.length||t.some((s,o)=>s!==this.layers[o]||s.props.transitions||s.getBounds()!==this.layersBounds[o]);r&&(this.layers=t,this.layersBounds=t.map(s=>s.getBounds()),this.layersBoundsCommon=B(t,_));let i=!this.lastViewport||!_.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(r||i){let s=D(this.layersBoundsCommon,_);if(s[2]<=s[0]||s[3]<=s[1])return this.renderViewport=null,!1;this.bounds=s,this.lastViewport=_;let o=_.scale,a=(s[2]-s[0])*o,R=(s[3]-s[1])*o;return this.renderViewport=a>0||R>0?h({bounds:[_.center[0]-1,_.center[1]-1,_.center[0]+1,_.center[1]+1],zoom:_.zoom,width:Math.min(a,Dt),height:Math.min(R,Dt),viewport:_}):null,!0}return!1}delete(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())}};var Se=class{constructor(){this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.terrainCovers=new Map}initialize(t){this.dummyHeightMap=t.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new Ee(t,{id:"terrain"}),this.terrainPickingPass=new pe(t,{id:"terrain-picking"}),Z.isSupported(t)?this.heightMap=new Z(t):Ne.log.warn("Terrain offset mode is not supported by this browser")(),(0,Ne.getShaderAssembler)().addDefaultModule(ce)}preRender(t,_){if(!this.dummyHeightMap){this.initialize(t);for(let l of _.layers)l.props.operation.includes("terrain")&&l.setChangeFlags({extensionsChanged:!0})}if(_.pickZ){this.isDrapingEnabled=!1;return}let{viewports:r}=_,i=_.pass.startsWith("picking");this.isPicking=i,this.isDrapingEnabled=!0;let s=r[0],o=(i?this.terrainPickingPass:this.terrainPass).getRenderableLayers(s,_),a=o.filter(l=>l.props.operation.includes("terrain"));if(a.length===0)return;i||o.filter(T=>T.state.terrainDrawMode==="offset").length>0&&this._updateHeightMap(a,s,_);let R=o.filter(l=>l.state.terrainDrawMode==="drape");this._updateTerrainCovers(a,R,s,_)}getModuleParameters(t){let{terrainDrawMode:_}=t.state;return{heightMap:this.heightMap?.getRenderFramebuffer(),heightMapBounds:this.heightMap?.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(t.id):null,useTerrainHeightMap:_==="offset",terrainSkipRender:_==="drape"||!t.props.operation.includes("draw")}}cleanup(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);for(let t of this.terrainCovers.values())t.delete();this.terrainCovers.clear()}_updateHeightMap(t,_,r){!this.heightMap||!this.heightMap.shouldUpdate({layers:t,viewport:_})||this.terrainPass.renderHeightMap(this.heightMap,{...r,layers:t,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}})}_updateTerrainCovers(t,_,r,i){let s={};for(let o of _)o.state.terrainCoverNeedsRedraw&&(s[o.id]=!0,o.state.terrainCoverNeedsRedraw=!1);for(let o of this.terrainCovers.values())o.isDirty=o.isDirty||o.shouldUpdate({layerNeedsRedraw:s});for(let o of t)this._updateTerrainCover(o,_,r,i);this.isPicking||this._pruneTerrainCovers()}_updateTerrainCover(t,_,r,i){let s=this.isPicking?this.terrainPickingPass:this.terrainPass,o=this.terrainCovers.get(t.id);o||(o=new ne(t),this.terrainCovers.set(t.id,o));try{let a=o.shouldUpdate({targetLayer:t,viewport:r,layers:_});(this.isPicking||o.isDirty||a)&&(s.renderTerrainCover(o,{...i,layers:_,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}}),this.isPicking||(o.isDirty=!1))}catch(a){t.raiseError(a,`Error rendering terrain cover ${o.id}`)}}_pruneTerrainCovers(){let t=[];for(let[_,r]of this.terrainCovers)r.isActive||t.push(_);for(let _ of t)this.terrainCovers.delete(_)}};var Er={terrainDrawMode:void 0},de=class extends vt.LayerExtension{getShaders(){return{modules:[ce]}}initializeState(){this.context.deck?._addDefaultEffect(new Se)}updateState(t){let{props:_,oldProps:r}=t;if(this.state.terrainDrawMode&&_.terrainDrawMode===r.terrainDrawMode&&_.extruded===r.extruded)return;let{terrainDrawMode:i}=_;if(!i){let s=this.props.extruded,o=this.getAttributeManager()?.attributes,a=o&&"instancePositions"in o;i=s||a?"offset":"drape"}this.setState({terrainDrawMode:i})}onNeedsRedraw(){let t=this.state;t.terrainDrawMode==="drape"&&(t.terrainCoverNeedsRedraw=!0)}},q=de;(()=>{de.defaultProps=Er})(),(()=>{de.extensionName="TerrainExtension"})();return ut(Q);})();
1395
+ `},getUniforms:(r={},e)=>{if("dummyHeightMap"in r){let{drawToTerrainHeightMap:t,heightMap:i,heightMapBounds:s,dummyHeightMap:o,terrainCover:n,useTerrainHeightMap:a,terrainSkipRender:l}=r,{project_uCommonOrigin:f}=e,c=l?x.SKIP:x.NONE,u=o,_=null;if(t)c=x.WRITE_HEIGHT_MAP,_=s;else if(a&&i)c=x.USE_HEIGHT_MAP,u=i,_=s;else if(n){let p=r.picking?.isActive;u=p?n.getPickingFramebuffer():n.getRenderFramebuffer(),p&&(c=x.SKIP),u?(c=c===x.SKIP?x.USE_COVER_ONLY:x.USE_COVER,_=n.bounds):u=o}return{terrain_mode:c,terrain_map:u,terrain_bounds:_?[_[0]-f[0],_[1]-f[1],_[2]-_[0],_[3]-_[1]]:[0,0,0,0]}}return null}};function q(r,e){return r.createFramebuffer({id:e.id,colorAttachments:[r.createTexture({...e.float&&{format:"rgba32float",type:5126},mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}})]})}var pe=class{constructor(e){this.isDirty=!0,this.renderViewport=null,this.bounds=null,this.layers=[],this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=e,this.tile=Et(e)}get id(){return this.targetLayer.id}get isActive(){return Boolean(this.targetLayer.getCurrentLayer())}shouldUpdate({targetLayer:e,viewport:t,layers:i,layerNeedsRedraw:s}){e&&(this.targetLayer=e);let o=t?this._updateViewport(t):!1,n=i?this._updateLayers(i):!1;if(s){for(let a of this.layers)if(s[a]){n=!0;break}}return n||o}_updateLayers(e){let t=!1;if(e=this.tile?di(this.tile,e):e,e.length!==this.layers.length)t=!0;else for(let i=0;i<e.length;i++)if(e[i].id!==this.layers[i]){t=!0;break}return t&&(this.layers=e.map(i=>i.id)),t}_updateViewport(e){let t=this.targetLayer,i=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){i=!0,this.targetBounds=this.tile.boundingBox;let o=e.projectPosition(this.targetBounds[0]),n=e.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[o[0],o[1],n[0],n[1]]}}else this.targetBounds!==t.getBounds()&&(i=!0,this.targetBounds=t.getBounds(),this.targetBoundsCommon=A([t],e));if(!this.targetBoundsCommon)return!1;let s=Math.ceil(e.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{let o=this.renderViewport?.zoom;i=i||s!==o;let n=F(this.targetBoundsCommon,e),a=this.bounds;i=i||!a||n.some((l,f)=>l!==a[f]),this.bounds=n}return i&&(this.renderViewport=M({bounds:this.bounds,zoom:s,viewport:e})),i}getRenderFramebuffer(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=q(this.targetLayer.context.device,{id:this.id})),this.fbo)}getPickingFramebuffer(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=q(this.targetLayer.context.device,{id:`${this.id}-picking`})),this.pickingFbo)}filterLayers(e){return e.filter(({id:t})=>this.layers.includes(t))}delete(){let{fbo:e,pickingFbo:t}=this;e&&(e.colorAttachments[0].destroy(),e.destroy()),t&&(t.colorAttachments[0].destroy(),t.destroy())}};function di(r,e){return e.filter(t=>{let i=Et(t);return i?mi(r.boundingBox,i.boundingBox):!0})}function Et(r){for(;r;){let{tile:e}=r.props;if(e)return e;r=r.parent}return null}function mi(r,e){return r&&e?r[0][0]<e[1][0]&&e[0][0]<r[1][0]&&r[0][1]<e[1][1]&&e[0][1]<r[1][1]:!1}var At=d(m(),1),de=class extends At._LayersPass{getRenderableLayers(e,t){let{layers:i}=t,s=[],o=this._getDrawLayerParams(e,t,!0);for(let n=0;n<i.length;n++){let a=i[n];!a.isComposite&&o[n].shouldDrawLayer&&s.push(a)}return s}renderHeightMap(e,t){let i=e.getRenderFramebuffer(),s=e.renderViewport;!i||!s||(i.resize(s),this.device.withParametersWebGL({clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},()=>this.render({...t,target:i,pass:"terrain-height-map",layers:t.layers,viewports:[s],effects:[]})))}renderTerrainCover(e,t){let i=e.getRenderFramebuffer(),s=e.renderViewport;if(!i||!s)return;let o=e.filterLayers(t.layers);i.resize(s),this.device.withParametersWebGL({clearColor:[0,0,0,0],depthTest:!1},()=>this.render({...t,target:i,pass:`terrain-cover-${e.id}`,layers:o,effects:[],viewports:[s]}))}};var Mt=d(m(),1),me=class extends Mt._PickLayersPass{constructor(){super(...arguments),this.drawParameters={}}getRenderableLayers(e,t){let{layers:i}=t,s=[];this.drawParameters={},this._resetColorEncoder(t.pickZ);let o=this._getDrawLayerParams(e,t);for(let n=0;n<i.length;n++){let a=i[n];!a.isComposite&&o[n].shouldDrawLayer&&(s.push(a),this.drawParameters[a.id]=o[n].layerParameters)}return s}renderTerrainCover(e,t){let i=e.getPickingFramebuffer(),s=e.renderViewport;if(!i||!s)return;let o=e.filterLayers(t.layers),n=e.targetLayer;n.props.pickable&&o.unshift(n),i.resize(s),this.device.withParametersWebGL({depthTest:!1},()=>this.render({...t,pickingFBO:i,pass:`terrain-cover-picking-${e.id}`,layers:o,effects:[],viewports:[s],cullRect:void 0,deviceRect:s,pickZ:!1}))}getLayerParameters(e,t,i){if(this.drawParameters[e.id])return this.drawParameters[e.id];let s=super.getLayerParameters(e,t,i);return s.blend=!0,s}};var Ft=2048,W=class{static isSupported(e){return e.isTextureFormatRenderable("rgba32float")}constructor(e){this.renderViewport=null,this.bounds=null,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=e}getRenderFramebuffer(){return this.renderViewport?(this.fbo||(this.fbo=q(this.device,{id:"height-map",float:!0})),this.fbo):null}shouldUpdate({layers:e,viewport:t}){let i=e.length!==this.layers.length||e.some((o,n)=>o!==this.layers[n]||o.props.transitions||o.getBounds()!==this.layersBounds[n]);i&&(this.layers=e,this.layersBounds=e.map(o=>o.getBounds()),this.layersBoundsCommon=A(e,t));let s=!this.lastViewport||!t.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(i||s){let o=F(this.layersBoundsCommon,t);if(o[2]<=o[0]||o[3]<=o[1])return this.renderViewport=null,!1;this.bounds=o,this.lastViewport=t;let n=t.scale,a=(o[2]-o[0])*n,l=(o[3]-o[1])*n;return this.renderViewport=a>0||l>0?M({bounds:[t.center[0]-1,t.center[1]-1,t.center[0]+1,t.center[1]+1],zoom:t.zoom,width:Math.min(a,Ft),height:Math.min(l,Ft),viewport:t}):null,!0}return!1}delete(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())}};var he=class{constructor(){this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.terrainCovers=new Map}initialize(e){this.dummyHeightMap=e.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new de(e,{id:"terrain"}),this.terrainPickingPass=new me(e,{id:"terrain-picking"}),W.isSupported(e)?this.heightMap=new W(e):ve.log.warn("Terrain offset mode is not supported by this browser")(),(0,ve.getShaderAssembler)().addDefaultModule(_e)}preRender(e,t){if(!this.dummyHeightMap){this.initialize(e);for(let f of t.layers)f.props.operation.includes("terrain")&&f.setChangeFlags({extensionsChanged:!0})}if(t.pickZ){this.isDrapingEnabled=!1;return}let{viewports:i}=t,s=t.pass.startsWith("picking");this.isPicking=s,this.isDrapingEnabled=!0;let o=i[0],n=(s?this.terrainPickingPass:this.terrainPass).getRenderableLayers(o,t),a=n.filter(f=>f.props.operation.includes("terrain"));if(a.length===0)return;s||n.filter(c=>c.state.terrainDrawMode==="offset").length>0&&this._updateHeightMap(a,o,t);let l=n.filter(f=>f.state.terrainDrawMode==="drape");this._updateTerrainCovers(a,l,o,t)}getModuleParameters(e){let{terrainDrawMode:t}=e.state;return{heightMap:this.heightMap?.getRenderFramebuffer(),heightMapBounds:this.heightMap?.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(e.id):null,useTerrainHeightMap:t==="offset",terrainSkipRender:t==="drape"||!e.props.operation.includes("draw")}}cleanup(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);for(let e of this.terrainCovers.values())e.delete();this.terrainCovers.clear()}_updateHeightMap(e,t,i){!this.heightMap||!this.heightMap.shouldUpdate({layers:e,viewport:t})||this.terrainPass.renderHeightMap(this.heightMap,{...i,layers:e,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}})}_updateTerrainCovers(e,t,i,s){let o={};for(let n of t)n.state.terrainCoverNeedsRedraw&&(o[n.id]=!0,n.state.terrainCoverNeedsRedraw=!1);for(let n of this.terrainCovers.values())n.isDirty=n.isDirty||n.shouldUpdate({layerNeedsRedraw:o});for(let n of e)this._updateTerrainCover(n,t,i,s);this.isPicking||this._pruneTerrainCovers()}_updateTerrainCover(e,t,i,s){let o=this.isPicking?this.terrainPickingPass:this.terrainPass,n=this.terrainCovers.get(e.id);n||(n=new pe(e),this.terrainCovers.set(e.id,n));try{let a=n.shouldUpdate({targetLayer:e,viewport:i,layers:t});(this.isPicking||n.isDirty||a)&&(o.renderTerrainCover(n,{...s,layers:t,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}}),this.isPicking||(n.isDirty=!1))}catch(a){e.raiseError(a,`Error rendering terrain cover ${n.id}`)}}_pruneTerrainCovers(){let e=[];for(let[t,i]of this.terrainCovers)i.isActive||e.push(t);for(let t of e)this.terrainCovers.delete(t)}};var hi={terrainDrawMode:void 0},ge=class extends Lt.LayerExtension{getShaders(){return{modules:[_e]}}initializeState(){this.context.deck?._addDefaultEffect(new he)}updateState(e){let{props:t,oldProps:i}=e;if(this.state.terrainDrawMode&&t.terrainDrawMode===i.terrainDrawMode&&t.extruded===i.extruded)return;let{terrainDrawMode:s}=t;if(!s){let o=this.props.extruded,n=this.getAttributeManager()?.attributes,a=n&&"instancePositions"in n;s=o||a?"offset":"drape"}this.setState({terrainDrawMode:s})}onNeedsRedraw(){let e=this.state;e.terrainDrawMode==="drape"&&(e.terrainCoverNeedsRedraw=!0)}},H=ge;(()=>{ge.defaultProps=hi})(),(()=>{ge.extensionName="TerrainExtension"})();return Bt(Y);})();
1463
1396
  return __exports__;
1464
1397
  });