@kepler.gl/deckgl-layers 3.3.0-alpha.0 → 3.3.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/cjs/3d-building-layer/3d-building-layer.js +66 -0
  2. package/dist/cjs/3d-building-layer/3d-building-utils.js +166 -0
  3. package/dist/cjs/3d-building-layer/types.js +6 -0
  4. package/dist/cjs/cluster-layer/cluster-layer.js +292 -0
  5. package/dist/cjs/column-layer/enhanced-column-layer.js +160 -0
  6. package/dist/{deckgl-extensions → cjs/deckgl-extensions}/filter-arrow-layer.js +1 -1
  7. package/dist/cjs/deckgl-extensions/filter-shader-module.js +26 -0
  8. package/dist/cjs/globe/atmosphere-layer.js +341 -0
  9. package/dist/cjs/globe/enhanced-multi-icon-layer.js +63 -0
  10. package/dist/cjs/globe/globe-depth-disk-layer.js +145 -0
  11. package/dist/cjs/globe/globe-layers.js +574 -0
  12. package/dist/cjs/globe/globe-stars-layer.js +99 -0
  13. package/dist/cjs/globe/globe-stars-layer.spec.js +42 -0
  14. package/dist/cjs/globe/globe-view.js +404 -0
  15. package/dist/cjs/globe/index.js +140 -0
  16. package/dist/cjs/globe/mvt-label-layer.js +190 -0
  17. package/dist/cjs/grid-layer/enhanced-cpu-grid-layer.js +116 -0
  18. package/dist/cjs/hexagon-layer/enhanced-hexagon-layer.js +134 -0
  19. package/dist/cjs/index.js +163 -0
  20. package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
  21. package/dist/cjs/layer-utils/cluster-utils.js +95 -0
  22. package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
  23. package/dist/cjs/layer-utils/globe-cell-utils.js +203 -0
  24. package/dist/cjs/layer-utils/globe-cell-utils.spec.js +118 -0
  25. package/dist/cjs/layer-utils/shader-utils.js +38 -0
  26. package/dist/cjs/line-layer/line-layer.js +95 -0
  27. package/dist/cjs/raster/images.js +271 -0
  28. package/dist/cjs/raster/pipeline-validation-patch.js +101 -0
  29. package/dist/cjs/raster/raster-layer/raster-layer-shaders.js +163 -0
  30. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
  31. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
  32. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
  33. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
  34. package/dist/cjs/raster/raster-layer/raster-layer.js +287 -0
  35. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  36. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
  37. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
  38. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
  39. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
  40. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer.js +321 -0
  41. package/dist/cjs/raster/raster-processing-uniforms.js +124 -0
  42. package/dist/cjs/raster/types.js +6 -0
  43. package/dist/cjs/raster/util.js +139 -0
  44. package/dist/cjs/raster/webgl/color/colormap.js +45 -0
  45. package/dist/cjs/raster/webgl/color/filter.js +58 -0
  46. package/dist/cjs/raster/webgl/color/gamma-contrast.js +68 -0
  47. package/dist/cjs/raster/webgl/color/linear-rescale.js +35 -0
  48. package/dist/cjs/raster/webgl/color/saturation.js +42 -0
  49. package/dist/cjs/raster/webgl/color/sigmoidal-contrast.js +68 -0
  50. package/dist/{raster → cjs/raster}/webgl/index.js +1 -1
  51. package/dist/cjs/raster/webgl/pansharpen/pansharpen-brovey.js +46 -0
  52. package/dist/cjs/raster/webgl/spectral-indices/evi.js +26 -0
  53. package/dist/cjs/raster/webgl/spectral-indices/msavi.js +25 -0
  54. package/dist/cjs/raster/webgl/spectral-indices/normalized-difference.js +19 -0
  55. package/dist/cjs/raster/webgl/spectral-indices/savi.js +21 -0
  56. package/dist/cjs/raster/webgl/texture/combine-bands.js +65 -0
  57. package/dist/cjs/raster/webgl/texture/mask.js +50 -0
  58. package/dist/cjs/raster/webgl/texture/reorder-bands.js +72 -0
  59. package/dist/cjs/raster/webgl/texture/rgba-image.js +34 -0
  60. package/dist/cjs/raster/webgl/types.js +6 -0
  61. package/dist/cjs/svg-icon-layer/scatterplot-icon-layer.js +88 -0
  62. package/dist/cjs/svg-icon-layer/svg-icon-layer.js +104 -0
  63. package/dist/cjs/wms/wms-layer.js +624 -0
  64. package/dist/esm/3d-building-layer/3d-building-layer.js +62 -0
  65. package/dist/esm/3d-building-layer/3d-building-utils.js +157 -0
  66. package/dist/esm/3d-building-layer/types.js +3 -0
  67. package/dist/esm/cluster-layer/cluster-layer.js +286 -0
  68. package/dist/esm/column-layer/enhanced-column-layer.js +156 -0
  69. package/dist/esm/deckgl-extensions/filter-arrow-layer.js +64 -0
  70. package/dist/esm/deckgl-extensions/filter-shader-module.js +20 -0
  71. package/dist/esm/globe/atmosphere-layer.js +335 -0
  72. package/dist/esm/globe/enhanced-multi-icon-layer.js +60 -0
  73. package/dist/esm/globe/globe-depth-disk-layer.js +140 -0
  74. package/dist/esm/globe/globe-layers.js +566 -0
  75. package/dist/esm/globe/globe-stars-layer.js +92 -0
  76. package/dist/esm/globe/globe-stars-layer.spec.js +40 -0
  77. package/dist/esm/globe/globe-view.js +398 -0
  78. package/dist/esm/globe/index.js +26 -0
  79. package/dist/esm/globe/mvt-label-layer.js +187 -0
  80. package/dist/esm/grid-layer/enhanced-cpu-grid-layer.js +112 -0
  81. package/dist/esm/hexagon-layer/enhanced-hexagon-layer.js +130 -0
  82. package/dist/esm/index.js +22 -0
  83. package/dist/esm/layer-utils/aggregation-utils.js +172 -0
  84. package/dist/esm/layer-utils/cluster-utils.js +89 -0
  85. package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
  86. package/dist/esm/layer-utils/globe-cell-utils.js +197 -0
  87. package/dist/esm/layer-utils/globe-cell-utils.spec.js +115 -0
  88. package/dist/esm/layer-utils/shader-utils.js +32 -0
  89. package/dist/esm/line-layer/line-layer.js +91 -0
  90. package/dist/esm/raster/images.js +267 -0
  91. package/dist/esm/raster/pipeline-validation-patch.js +94 -0
  92. package/dist/esm/raster/raster-layer/raster-layer-shaders.js +153 -0
  93. package/dist/esm/raster/raster-layer/raster-layer-webgl1.fs.js +5 -0
  94. package/dist/esm/raster/raster-layer/raster-layer-webgl1.vs.js +5 -0
  95. package/dist/esm/raster/raster-layer/raster-layer-webgl2.fs.js +5 -0
  96. package/dist/esm/raster/raster-layer/raster-layer-webgl2.vs.js +5 -0
  97. package/dist/esm/raster/raster-layer/raster-layer.js +283 -0
  98. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +30 -0
  99. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +5 -0
  100. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +5 -0
  101. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +5 -0
  102. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +5 -0
  103. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer.js +318 -0
  104. package/dist/esm/raster/raster-processing-uniforms.js +118 -0
  105. package/dist/esm/raster/types.js +3 -0
  106. package/dist/esm/raster/util.js +134 -0
  107. package/dist/esm/raster/webgl/color/colormap.js +39 -0
  108. package/dist/esm/raster/webgl/color/filter.js +52 -0
  109. package/dist/esm/raster/webgl/color/gamma-contrast.js +62 -0
  110. package/dist/esm/raster/webgl/color/linear-rescale.js +29 -0
  111. package/dist/esm/raster/webgl/color/saturation.js +36 -0
  112. package/dist/esm/raster/webgl/color/sigmoidal-contrast.js +62 -0
  113. package/dist/esm/raster/webgl/index.js +26 -0
  114. package/dist/esm/raster/webgl/pansharpen/pansharpen-brovey.js +40 -0
  115. package/dist/esm/raster/webgl/spectral-indices/evi.js +20 -0
  116. package/dist/esm/raster/webgl/spectral-indices/msavi.js +19 -0
  117. package/dist/esm/raster/webgl/spectral-indices/normalized-difference.js +13 -0
  118. package/dist/esm/raster/webgl/spectral-indices/savi.js +15 -0
  119. package/dist/esm/raster/webgl/texture/combine-bands.js +58 -0
  120. package/dist/esm/raster/webgl/texture/mask.js +44 -0
  121. package/dist/esm/raster/webgl/texture/reorder-bands.js +65 -0
  122. package/dist/esm/raster/webgl/texture/rgba-image.js +28 -0
  123. package/dist/esm/raster/webgl/types.js +3 -0
  124. package/dist/esm/svg-icon-layer/scatterplot-icon-layer.js +84 -0
  125. package/dist/esm/svg-icon-layer/svg-icon-layer.js +101 -0
  126. package/dist/esm/wms/wms-layer.js +619 -0
  127. package/dist/globe/atmosphere-layer.d.ts +58 -0
  128. package/dist/globe/enhanced-multi-icon-layer.d.ts +6 -0
  129. package/dist/globe/globe-depth-disk-layer.d.ts +19 -0
  130. package/dist/globe/globe-layers.d.ts +108 -0
  131. package/dist/globe/globe-stars-layer.d.ts +10 -0
  132. package/dist/globe/globe-stars-layer.spec.d.ts +1 -0
  133. package/dist/globe/globe-view.d.ts +23 -0
  134. package/dist/globe/index.d.ts +8 -0
  135. package/dist/globe/mvt-label-layer.d.ts +7928 -0
  136. package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +145 -56
  137. package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +145 -56
  138. package/dist/index.d.ts +2 -0
  139. package/dist/layer-utils/aggregation-utils.d.ts +44 -0
  140. package/dist/layer-utils/cluster-utils.d.ts +6 -1
  141. package/dist/layer-utils/globe-cell-utils.d.ts +30 -0
  142. package/dist/layer-utils/globe-cell-utils.spec.d.ts +1 -0
  143. package/dist/layer-utils/shader-utils.d.ts +1 -0
  144. package/dist/raster/images.d.ts +10 -1
  145. package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
  146. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
  147. package/dist/raster/raster-processing-uniforms.d.ts +38 -0
  148. package/dist/raster/util.d.ts +15 -0
  149. package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +4 -1
  150. package/dist/wms/wms-layer.d.ts +32 -2
  151. package/package.json +37 -25
  152. package/dist/3d-building-layer/3d-building-layer.js +0 -66
  153. package/dist/3d-building-layer/3d-building-utils.js +0 -166
  154. package/dist/3d-building-layer/types.js +0 -6
  155. package/dist/cluster-layer/cluster-layer.js +0 -296
  156. package/dist/column-layer/enhanced-column-layer.js +0 -135
  157. package/dist/deckgl-extensions/filter-shader-module.js +0 -26
  158. package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -69
  159. package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -87
  160. package/dist/index.js +0 -140
  161. package/dist/layer-utils/cluster-utils.js +0 -93
  162. package/dist/layer-utils/cpu-aggregator.js +0 -798
  163. package/dist/layer-utils/shader-utils.js +0 -29
  164. package/dist/line-layer/line-layer.js +0 -95
  165. package/dist/raster/images.js +0 -259
  166. package/dist/raster/pipeline-validation-patch.js +0 -60
  167. package/dist/raster/raster-layer/raster-layer-shaders.js +0 -129
  168. package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +0 -10
  169. package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +0 -10
  170. package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +0 -10
  171. package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +0 -10
  172. package/dist/raster/raster-layer/raster-layer.js +0 -256
  173. package/dist/raster/raster-mesh-layer/matrix.d.ts +0 -4
  174. package/dist/raster/raster-mesh-layer/matrix.js +0 -18
  175. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +0 -38
  176. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +0 -10
  177. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +0 -10
  178. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +0 -10
  179. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +0 -10
  180. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +0 -282
  181. package/dist/raster/types.js +0 -6
  182. package/dist/raster/util.js +0 -29
  183. package/dist/raster/webgl/color/colormap.js +0 -45
  184. package/dist/raster/webgl/color/filter.js +0 -58
  185. package/dist/raster/webgl/color/gamma-contrast.js +0 -68
  186. package/dist/raster/webgl/color/linear-rescale.js +0 -35
  187. package/dist/raster/webgl/color/saturation.js +0 -42
  188. package/dist/raster/webgl/color/sigmoidal-contrast.js +0 -68
  189. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +0 -46
  190. package/dist/raster/webgl/spectral-indices/evi.js +0 -26
  191. package/dist/raster/webgl/spectral-indices/msavi.js +0 -25
  192. package/dist/raster/webgl/spectral-indices/normalized-difference.js +0 -19
  193. package/dist/raster/webgl/spectral-indices/savi.js +0 -21
  194. package/dist/raster/webgl/texture/combine-bands.js +0 -65
  195. package/dist/raster/webgl/texture/mask.js +0 -50
  196. package/dist/raster/webgl/texture/reorder-bands.js +0 -72
  197. package/dist/raster/webgl/texture/rgba-image.js +0 -34
  198. package/dist/raster/webgl/types.js +0 -6
  199. package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -51
  200. package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
  201. package/dist/wms/wms-layer.js +0 -351
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.buildRasterFragmentShader = buildRasterFragmentShader;
8
- exports.buildRasterVertexShader = buildRasterVertexShader;
9
- exports.ensureRasterHooksRegistered = ensureRasterHooksRegistered;
10
- exports.prepareLumaModules = prepareLumaModules;
11
- exports.rasterUniforms = void 0;
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _shadertools = require("@luma.gl/shadertools");
14
- // SPDX-License-Identifier: MIT
15
- // Copyright contributors to the kepler.gl project
16
-
17
- /**
18
- * UBO-based shader module for raster layer uniforms.
19
- * Replaces the old standalone `uniform float desaturate` etc.
20
- */
21
- var rasterUniformBlock = "uniform rasterUniforms {\n vec4 bounds;\n float coordinateConversion;\n float desaturate;\n float opacity;\n vec3 tintColor;\n vec4 transparentColor;\n} raster;\n";
22
- var rasterUniforms = exports.rasterUniforms = {
23
- name: 'raster',
24
- vs: rasterUniformBlock,
25
- fs: rasterUniformBlock,
26
- uniformTypes: {
27
- bounds: 'vec4<f32>',
28
- coordinateConversion: 'f32',
29
- desaturate: 'f32',
30
- opacity: 'f32',
31
- tintColor: 'vec3<f32>',
32
- transparentColor: 'vec4<f32>'
33
- }
34
- };
35
-
36
- /**
37
- * Register custom DECKGL_CREATE_COLOR and DECKGL_MUTATE_COLOR shader hooks
38
- * with the default ShaderAssembler. These hooks are used by the raster layer's
39
- * custom shader modules (rgbaImage, combineBands, colormap, etc.).
40
- *
41
- * In luma.gl 8.x these were registered via ProgramManager; in luma.gl 9.x
42
- * we register them with the ShaderAssembler singleton.
43
- *
44
- * NOTE: We must check the assembler's hook list every time rather than using
45
- * a module-level boolean guard, because deck.gl's getShaderAssembler() clears
46
- * _hookFunctions when a new Deck instance is created (e.g. during image export).
47
- */
48
- function ensureRasterHooksRegistered() {
49
- var assembler = _shadertools.ShaderAssembler.getDefaultShaderAssembler();
50
- // @ts-expect-error _hookFunctions is private in ShaderAssembler
51
- var existingHooks = assembler._hookFunctions || [];
52
- var hookNames = existingHooks.map(function (h) {
53
- return typeof h === 'string' ? h : h.hook;
54
- });
55
- if (!hookNames.some(function (h) {
56
- return h === null || h === void 0 ? void 0 : h.includes('DECKGL_CREATE_COLOR');
57
- })) {
58
- assembler.addShaderHook('fs:DECKGL_CREATE_COLOR(inout vec4 image, vec2 coord)');
59
- }
60
- if (!hookNames.some(function (h) {
61
- return h === null || h === void 0 ? void 0 : h.includes('DECKGL_MUTATE_COLOR');
62
- })) {
63
- assembler.addShaderHook('fs:DECKGL_MUTATE_COLOR(inout vec4 image, vec2 coord)');
64
- }
65
- }
66
-
67
- /**
68
- * Convert kepler.gl's custom raster shader modules into luma.gl 9 compatible
69
- * format. Ensures fs2 (WebGL2) shaders are used and texture2D -> texture.
70
- */
71
-
72
- function prepareLumaModules(modules) {
73
- return modules.map(function (mod) {
74
- var fs = mod.fs2 || mod.fs || '';
75
- var result = {
76
- name: mod.name,
77
- // Replace texture2D with texture for GLSL 300 es
78
- fs: fs.replace(/texture2D\(/g, 'texture('),
79
- dependencies: mod.dependencies,
80
- deprecations: mod.deprecations
81
- };
82
- if (mod.vs) {
83
- result.vs = mod.vs.replace(/texture2D\(/g, 'texture(');
84
- }
85
- if (mod.defines) {
86
- result.defines = mod.defines;
87
- }
88
- if (mod.getUniforms) {
89
- result.getUniforms = mod.getUniforms;
90
- }
91
- if (mod.uniforms) {
92
- result.uniforms = mod.uniforms;
93
- }
94
- if (mod.uniformTypes) {
95
- result.uniformTypes = mod.uniformTypes;
96
- }
97
-
98
- // Convert inject code, replacing texture2D -> texture
99
- if (mod.inject) {
100
- result.inject = {};
101
- for (var _i = 0, _Object$entries = Object.entries(mod.inject); _i < _Object$entries.length; _i++) {
102
- var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
103
- hook = _Object$entries$_i[0],
104
- code = _Object$entries$_i[1];
105
- var codeStr = typeof code === 'string' ? code : code.injection || '';
106
- result.inject[hook] = codeStr.replace(/texture2D\(/g, 'texture(');
107
- }
108
- }
109
- return result;
110
- });
111
- }
112
-
113
- /**
114
- * Build the vertex shader for the raster layer.
115
- * References raster.coordinateConversion from the UBO.
116
- */
117
- function buildRasterVertexShader() {
118
- return "#version 300 es\n#define SHADER_NAME raster-layer-vertex-shader\n\nprecision mediump float;\n\nin vec2 texCoords;\nin vec3 positions;\nin vec3 positions64Low;\n\nout vec2 vTexCoord;\nout vec2 vTexPos;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n\n if (raster.coordinateConversion < -0.5) {\n vTexPos = geometry.position.xy + project.commonOrigin.xy;\n } else if (raster.coordinateConversion > 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
119
- }
120
-
121
- /**
122
- * Build the fragment shader for the raster layer.
123
- * Uses DECKGL_CREATE_COLOR and DECKGL_MUTATE_COLOR hooks which are now
124
- * registered with the ShaderAssembler and populated by module injections.
125
- */
126
- function buildRasterFragmentShader() {
127
- return "#version 300 es\n#define SHADER_NAME raster-layer-fragment-shader\n\nprecision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\nin vec2 vTexCoord;\nin vec2 vTexPos;\n\nout vec4 fragColor;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), raster.desaturate);\n}\n\nvec3 color_tint(vec3 color) {\n return color * raster.tintColor;\n}\n\nvec4 apply_opacity(vec3 color, float alpha) {\n if (raster.transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + raster.transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(raster.transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - raster.bounds[0]) / (raster.bounds[2] - raster.bounds[0]),\n (pos.y - raster.bounds[3]) / (raster.bounds[1] - raster.bounds[3])\n );\n}\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (raster.coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (raster.coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n\n vec4 image = vec4(0.0);\n DECKGL_CREATE_COLOR(image, uv);\n\n DECKGL_MUTATE_COLOR(image, uv);\n\n fragColor = apply_opacity(color_tint(color_desaturate(image.rgb)), raster.opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
128
- }
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2hhZGVydG9vbHMiLCJyZXF1aXJlIiwicmFzdGVyVW5pZm9ybUJsb2NrIiwicmFzdGVyVW5pZm9ybXMiLCJleHBvcnRzIiwibmFtZSIsInZzIiwiZnMiLCJ1bmlmb3JtVHlwZXMiLCJib3VuZHMiLCJjb29yZGluYXRlQ29udmVyc2lvbiIsImRlc2F0dXJhdGUiLCJvcGFjaXR5IiwidGludENvbG9yIiwidHJhbnNwYXJlbnRDb2xvciIsImVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCIsImFzc2VtYmxlciIsIlNoYWRlckFzc2VtYmxlciIsImdldERlZmF1bHRTaGFkZXJBc3NlbWJsZXIiLCJleGlzdGluZ0hvb2tzIiwiX2hvb2tGdW5jdGlvbnMiLCJob29rTmFtZXMiLCJtYXAiLCJoIiwiaG9vayIsInNvbWUiLCJpbmNsdWRlcyIsImFkZFNoYWRlckhvb2siLCJwcmVwYXJlTHVtYU1vZHVsZXMiLCJtb2R1bGVzIiwibW9kIiwiZnMyIiwicmVzdWx0IiwicmVwbGFjZSIsImRlcGVuZGVuY2llcyIsImRlcHJlY2F0aW9ucyIsImRlZmluZXMiLCJnZXRVbmlmb3JtcyIsInVuaWZvcm1zIiwiaW5qZWN0IiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJPYmplY3QiLCJlbnRyaWVzIiwibGVuZ3RoIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29kZSIsImNvZGVTdHIiLCJpbmplY3Rpb24iLCJidWlsZFJhc3RlclZlcnRleFNoYWRlciIsImJ1aWxkUmFzdGVyRnJhZ21lbnRTaGFkZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXItc2hhZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1NoYWRlckFzc2VtYmxlcn0gZnJvbSAnQGx1bWEuZ2wvc2hhZGVydG9vbHMnO1xuaW1wb3J0IHR5cGUge1NoYWRlck1vZHVsZSBhcyBMdW1hU2hhZGVyTW9kdWxlfSBmcm9tICcuLi93ZWJnbC90eXBlcyc7XG5cbi8qKlxuICogVUJPLWJhc2VkIHNoYWRlciBtb2R1bGUgZm9yIHJhc3RlciBsYXllciB1bmlmb3Jtcy5cbiAqIFJlcGxhY2VzIHRoZSBvbGQgc3RhbmRhbG9uZSBgdW5pZm9ybSBmbG9hdCBkZXNhdHVyYXRlYCBldGMuXG4gKi9cbmNvbnN0IHJhc3RlclVuaWZvcm1CbG9jayA9IGBcXFxudW5pZm9ybSByYXN0ZXJVbmlmb3JtcyB7XG4gIHZlYzQgYm91bmRzO1xuICBmbG9hdCBjb29yZGluYXRlQ29udmVyc2lvbjtcbiAgZmxvYXQgZGVzYXR1cmF0ZTtcbiAgZmxvYXQgb3BhY2l0eTtcbiAgdmVjMyB0aW50Q29sb3I7XG4gIHZlYzQgdHJhbnNwYXJlbnRDb2xvcjtcbn0gcmFzdGVyO1xuYDtcblxuZXhwb3J0IGNvbnN0IHJhc3RlclVuaWZvcm1zID0ge1xuICBuYW1lOiAncmFzdGVyJyxcbiAgdnM6IHJhc3RlclVuaWZvcm1CbG9jayxcbiAgZnM6IHJhc3RlclVuaWZvcm1CbG9jayxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgYm91bmRzOiAndmVjNDxmMzI+JyxcbiAgICBjb29yZGluYXRlQ29udmVyc2lvbjogJ2YzMicsXG4gICAgZGVzYXR1cmF0ZTogJ2YzMicsXG4gICAgb3BhY2l0eTogJ2YzMicsXG4gICAgdGludENvbG9yOiAndmVjMzxmMzI+JyxcbiAgICB0cmFuc3BhcmVudENvbG9yOiAndmVjNDxmMzI+J1xuICB9XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVyIGN1c3RvbSBERUNLR0xfQ1JFQVRFX0NPTE9SIGFuZCBERUNLR0xfTVVUQVRFX0NPTE9SIHNoYWRlciBob29rc1xuICogd2l0aCB0aGUgZGVmYXVsdCBTaGFkZXJBc3NlbWJsZXIuIFRoZXNlIGhvb2tzIGFyZSB1c2VkIGJ5IHRoZSByYXN0ZXIgbGF5ZXInc1xuICogY3VzdG9tIHNoYWRlciBtb2R1bGVzIChyZ2JhSW1hZ2UsIGNvbWJpbmVCYW5kcywgY29sb3JtYXAsIGV0Yy4pLlxuICpcbiAqIEluIGx1bWEuZ2wgOC54IHRoZXNlIHdlcmUgcmVnaXN0ZXJlZCB2aWEgUHJvZ3JhbU1hbmFnZXI7IGluIGx1bWEuZ2wgOS54XG4gKiB3ZSByZWdpc3RlciB0aGVtIHdpdGggdGhlIFNoYWRlckFzc2VtYmxlciBzaW5nbGV0b24uXG4gKlxuICogTk9URTogV2UgbXVzdCBjaGVjayB0aGUgYXNzZW1ibGVyJ3MgaG9vayBsaXN0IGV2ZXJ5IHRpbWUgcmF0aGVyIHRoYW4gdXNpbmdcbiAqIGEgbW9kdWxlLWxldmVsIGJvb2xlYW4gZ3VhcmQsIGJlY2F1c2UgZGVjay5nbCdzIGdldFNoYWRlckFzc2VtYmxlcigpIGNsZWFyc1xuICogX2hvb2tGdW5jdGlvbnMgd2hlbiBhIG5ldyBEZWNrIGluc3RhbmNlIGlzIGNyZWF0ZWQgKGUuZy4gZHVyaW5nIGltYWdlIGV4cG9ydCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQoKTogdm9pZCB7XG4gIGNvbnN0IGFzc2VtYmxlciA9IFNoYWRlckFzc2VtYmxlci5nZXREZWZhdWx0U2hhZGVyQXNzZW1ibGVyKCk7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgX2hvb2tGdW5jdGlvbnMgaXMgcHJpdmF0ZSBpbiBTaGFkZXJBc3NlbWJsZXJcbiAgY29uc3QgZXhpc3RpbmdIb29rcyA9IGFzc2VtYmxlci5faG9va0Z1bmN0aW9ucyB8fCBbXTtcbiAgY29uc3QgaG9va05hbWVzID0gZXhpc3RpbmdIb29rcy5tYXAoaCA9PiAodHlwZW9mIGggPT09ICdzdHJpbmcnID8gaCA6IGguaG9vaykpO1xuXG4gIGlmICghaG9va05hbWVzLnNvbWUoaCA9PiBoPy5pbmNsdWRlcygnREVDS0dMX0NSRUFURV9DT0xPUicpKSkge1xuICAgIGFzc2VtYmxlci5hZGRTaGFkZXJIb29rKCdmczpERUNLR0xfQ1JFQVRFX0NPTE9SKGlub3V0IHZlYzQgaW1hZ2UsIHZlYzIgY29vcmQpJyk7XG4gIH1cbiAgaWYgKCFob29rTmFtZXMuc29tZShoID0+IGg/LmluY2x1ZGVzKCdERUNLR0xfTVVUQVRFX0NPTE9SJykpKSB7XG4gICAgYXNzZW1ibGVyLmFkZFNoYWRlckhvb2soJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1IoaW5vdXQgdmVjNCBpbWFnZSwgdmVjMiBjb29yZCknKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQga2VwbGVyLmdsJ3MgY3VzdG9tIHJhc3RlciBzaGFkZXIgbW9kdWxlcyBpbnRvIGx1bWEuZ2wgOSBjb21wYXRpYmxlXG4gKiBmb3JtYXQuIEVuc3VyZXMgZnMyIChXZWJHTDIpIHNoYWRlcnMgYXJlIHVzZWQgYW5kIHRleHR1cmUyRCAtPiB0ZXh0dXJlLlxuICovXG5pbnRlcmZhY2UgTHVtYU1vZHVsZU91dHB1dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZnM6IHN0cmluZztcbiAgdnM/OiBzdHJpbmc7XG4gIGRlZmluZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBnZXRVbmlmb3Jtcz86IChvcHRzOiBvYmplY3QpID0+IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbDtcbiAgdW5pZm9ybXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdW5pZm9ybVR5cGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgaW5qZWN0PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZGVwZW5kZW5jaWVzPzogdW5rbm93bltdO1xuICBkZXByZWNhdGlvbnM/OiB1bmtub3duW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlTHVtYU1vZHVsZXMobW9kdWxlczogTHVtYVNoYWRlck1vZHVsZVtdKTogTHVtYU1vZHVsZU91dHB1dFtdIHtcbiAgcmV0dXJuIG1vZHVsZXMubWFwKG1vZCA9PiB7XG4gICAgY29uc3QgZnMgPSBtb2QuZnMyIHx8IG1vZC5mcyB8fCAnJztcbiAgICBjb25zdCByZXN1bHQ6IEx1bWFNb2R1bGVPdXRwdXQgPSB7XG4gICAgICBuYW1lOiBtb2QubmFtZSxcbiAgICAgIC8vIFJlcGxhY2UgdGV4dHVyZTJEIHdpdGggdGV4dHVyZSBmb3IgR0xTTCAzMDAgZXNcbiAgICAgIGZzOiBmcy5yZXBsYWNlKC90ZXh0dXJlMkRcXCgvZywgJ3RleHR1cmUoJyksXG4gICAgICBkZXBlbmRlbmNpZXM6IG1vZC5kZXBlbmRlbmNpZXMsXG4gICAgICBkZXByZWNhdGlvbnM6IG1vZC5kZXByZWNhdGlvbnNcbiAgICB9O1xuXG4gICAgaWYgKG1vZC52cykge1xuICAgICAgcmVzdWx0LnZzID0gbW9kLnZzLnJlcGxhY2UoL3RleHR1cmUyRFxcKC9nLCAndGV4dHVyZSgnKTtcbiAgICB9XG5cbiAgICBpZiAobW9kLmRlZmluZXMpIHtcbiAgICAgIHJlc3VsdC5kZWZpbmVzID0gbW9kLmRlZmluZXM7XG4gICAgfVxuXG4gICAgaWYgKG1vZC5nZXRVbmlmb3Jtcykge1xuICAgICAgcmVzdWx0LmdldFVuaWZvcm1zID0gbW9kLmdldFVuaWZvcm1zO1xuICAgIH1cblxuICAgIGlmIChtb2QudW5pZm9ybXMpIHtcbiAgICAgIHJlc3VsdC51bmlmb3JtcyA9IG1vZC51bmlmb3JtcztcbiAgICB9XG5cbiAgICBpZiAobW9kLnVuaWZvcm1UeXBlcykge1xuICAgICAgcmVzdWx0LnVuaWZvcm1UeXBlcyA9IG1vZC51bmlmb3JtVHlwZXM7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBpbmplY3QgY29kZSwgcmVwbGFjaW5nIHRleHR1cmUyRCAtPiB0ZXh0dXJlXG4gICAgaWYgKG1vZC5pbmplY3QpIHtcbiAgICAgIHJlc3VsdC5pbmplY3QgPSB7fTtcbiAgICAgIGZvciAoY29uc3QgW2hvb2ssIGNvZGVdIG9mIE9iamVjdC5lbnRyaWVzKG1vZC5pbmplY3QpKSB7XG4gICAgICAgIGNvbnN0IGNvZGVTdHIgPVxuICAgICAgICAgIHR5cGVvZiBjb2RlID09PSAnc3RyaW5nJyA/IGNvZGUgOiAoY29kZSBhcyB7aW5qZWN0aW9uPzogc3RyaW5nfSkuaW5qZWN0aW9uIHx8ICcnO1xuICAgICAgICByZXN1bHQuaW5qZWN0W2hvb2tdID0gY29kZVN0ci5yZXBsYWNlKC90ZXh0dXJlMkRcXCgvZywgJ3RleHR1cmUoJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIHZlcnRleCBzaGFkZXIgZm9yIHRoZSByYXN0ZXIgbGF5ZXIuXG4gKiBSZWZlcmVuY2VzIHJhc3Rlci5jb29yZGluYXRlQ29udmVyc2lvbiBmcm9tIHRoZSBVQk8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJhc3RlclZlcnRleFNoYWRlcigpOiBzdHJpbmcge1xuICByZXR1cm4gYFxcXG4jdmVyc2lvbiAzMDAgZXNcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLWxheWVyLXZlcnRleC1zaGFkZXJcblxucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5cbmluIHZlYzIgdGV4Q29vcmRzO1xuaW4gdmVjMyBwb3NpdGlvbnM7XG5pbiB2ZWMzIHBvc2l0aW9uczY0TG93O1xuXG5vdXQgdmVjMiB2VGV4Q29vcmQ7XG5vdXQgdmVjMiB2VGV4UG9zO1xuXG5jb25zdCB2ZWMzIHBpY2tpbmdDb2xvciA9IHZlYzMoMS4wLCAwLjAsIDAuMCk7XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBwb3NpdGlvbnM7XG4gIGdlb21ldHJ5LnV2ID0gdGV4Q29vcmRzO1xuICBnZW9tZXRyeS5waWNraW5nQ29sb3IgPSBwaWNraW5nQ29sb3I7XG5cbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShwb3NpdGlvbnMsIHBvc2l0aW9uczY0TG93LCB2ZWMzKDAuMCksIGdlb21ldHJ5LnBvc2l0aW9uKTtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuXG4gIHZUZXhDb29yZCA9IHRleENvb3JkcztcblxuICBpZiAocmFzdGVyLmNvb3JkaW5hdGVDb252ZXJzaW9uIDwgLTAuNSkge1xuICAgIHZUZXhQb3MgPSBnZW9tZXRyeS5wb3NpdGlvbi54eSArIHByb2plY3QuY29tbW9uT3JpZ2luLnh5O1xuICB9IGVsc2UgaWYgKHJhc3Rlci5jb29yZGluYXRlQ29udmVyc2lvbiA+IDAuNSkge1xuICAgIHZUZXhQb3MgPSBnZW9tZXRyeS53b3JsZFBvc2l0aW9uLnh5O1xuICB9XG5cbiAgdmVjNCBjb2xvciA9IHZlYzQoMC4wKTtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihjb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgZnJhZ21lbnQgc2hhZGVyIGZvciB0aGUgcmFzdGVyIGxheWVyLlxuICogVXNlcyBERUNLR0xfQ1JFQVRFX0NPTE9SIGFuZCBERUNLR0xfTVVUQVRFX0NPTE9SIGhvb2tzIHdoaWNoIGFyZSBub3dcbiAqIHJlZ2lzdGVyZWQgd2l0aCB0aGUgU2hhZGVyQXNzZW1ibGVyIGFuZCBwb3B1bGF0ZWQgYnkgbW9kdWxlIGluamVjdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJhc3RlckZyYWdtZW50U2hhZGVyKCk6IHN0cmluZyB7XG4gIHJldHVybiBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbGF5ZXItZnJhZ21lbnQtc2hhZGVyXG5cbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xucHJlY2lzaW9uIG1lZGl1bXAgaW50O1xucHJlY2lzaW9uIG1lZGl1bXAgdXNhbXBsZXIyRDtcblxuaW4gdmVjMiB2VGV4Q29vcmQ7XG5pbiB2ZWMyIHZUZXhQb3M7XG5cbm91dCB2ZWM0IGZyYWdDb2xvcjtcblxuLyogcHJvamVjdGlvbiB1dGlscyAqL1xuY29uc3QgZmxvYXQgVElMRV9TSVpFID0gNTEyLjA7XG5jb25zdCBmbG9hdCBQSSA9IDMuMTQxNTkyNjUzNjtcbmNvbnN0IGZsb2F0IFdPUkxEX1NDQUxFID0gVElMRV9TSVpFIC8gUEkgLyAyLjA7XG5cbnZlYzIgbG5nbGF0X3RvX21lcmNhdG9yKHZlYzIgbG5nbGF0KSB7XG4gIGZsb2F0IHggPSBsbmdsYXQueDtcbiAgZmxvYXQgeSA9IGNsYW1wKGxuZ2xhdC55LCAtODkuOSwgODkuOSk7XG4gIHJldHVybiB2ZWMyKFxuICAgIHJhZGlhbnMoeCkgKyBQSSxcbiAgICBQSSArIGxvZyh0YW4oUEkgKiAwLjI1ICsgcmFkaWFucyh5KSAqIDAuNSkpXG4gICkgKiBXT1JMRF9TQ0FMRTtcbn1cblxudmVjMiBtZXJjYXRvcl90b19sbmdsYXQodmVjMiB4eSkge1xuICB4eSAvPSBXT1JMRF9TQ0FMRTtcbiAgcmV0dXJuIGRlZ3JlZXModmVjMihcbiAgICB4eS54IC0gUEksXG4gICAgYXRhbihleHAoeHkueSAtIFBJKSkgKiAyLjAgLSBQSSAqIDAuNVxuICApKTtcbn1cblxudmVjMyBjb2xvcl9kZXNhdHVyYXRlKHZlYzMgY29sb3IpIHtcbiAgZmxvYXQgbHVtaW5hbmNlID0gKGNvbG9yLnIgKyBjb2xvci5nICsgY29sb3IuYikgKiAwLjMzMzMzMzMzMztcbiAgcmV0dXJuIG1peChjb2xvciwgdmVjMyhsdW1pbmFuY2UpLCByYXN0ZXIuZGVzYXR1cmF0ZSk7XG59XG5cbnZlYzMgY29sb3JfdGludCh2ZWMzIGNvbG9yKSB7XG4gIHJldHVybiBjb2xvciAqIHJhc3Rlci50aW50Q29sb3I7XG59XG5cbnZlYzQgYXBwbHlfb3BhY2l0eSh2ZWMzIGNvbG9yLCBmbG9hdCBhbHBoYSkge1xuICBpZiAocmFzdGVyLnRyYW5zcGFyZW50Q29sb3IuYSA9PSAwLjApIHtcbiAgICByZXR1cm4gdmVjNChjb2xvciwgYWxwaGEpO1xuICB9XG4gIGZsb2F0IGJsZW5kZWRBbHBoYSA9IGFscGhhICsgcmFzdGVyLnRyYW5zcGFyZW50Q29sb3IuYSAqICgxLjAgLSBhbHBoYSk7XG4gIGZsb2F0IGhpZ2hMaWdodFJhdGlvID0gYWxwaGEgLyBibGVuZGVkQWxwaGE7XG4gIHZlYzMgYmxlbmRlZFJHQiA9IG1peChyYXN0ZXIudHJhbnNwYXJlbnRDb2xvci5yZ2IsIGNvbG9yLCBoaWdoTGlnaHRSYXRpbyk7XG4gIHJldHVybiB2ZWM0KGJsZW5kZWRSR0IsIGJsZW5kZWRBbHBoYSk7XG59XG5cbnZlYzIgZ2V0VVYodmVjMiBwb3MpIHtcbiAgcmV0dXJuIHZlYzIoXG4gICAgKHBvcy54IC0gcmFzdGVyLmJvdW5kc1swXSkgLyAocmFzdGVyLmJvdW5kc1syXSAtIHJhc3Rlci5ib3VuZHNbMF0pLFxuICAgIChwb3MueSAtIHJhc3Rlci5ib3VuZHNbM10pIC8gKHJhc3Rlci5ib3VuZHNbMV0gLSByYXN0ZXIuYm91bmRzWzNdKVxuICApO1xufVxuXG52b2lkIG1haW4odm9pZCkge1xuICB2ZWMyIHV2ID0gdlRleENvb3JkO1xuICBpZiAocmFzdGVyLmNvb3JkaW5hdGVDb252ZXJzaW9uIDwgLTAuNSkge1xuICAgIHZlYzIgbG5nbGF0ID0gbWVyY2F0b3JfdG9fbG5nbGF0KHZUZXhQb3MpO1xuICAgIHV2ID0gZ2V0VVYobG5nbGF0KTtcbiAgfSBlbHNlIGlmIChyYXN0ZXIuY29vcmRpbmF0ZUNvbnZlcnNpb24gPiAwLjUpIHtcbiAgICB2ZWMyIGNvbW1vblBvcyA9IGxuZ2xhdF90b19tZXJjYXRvcih2VGV4UG9zKTtcbiAgICB1diA9IGdldFVWKGNvbW1vblBvcyk7XG4gIH1cblxuICB2ZWM0IGltYWdlID0gdmVjNCgwLjApO1xuICBERUNLR0xfQ1JFQVRFX0NPTE9SKGltYWdlLCB1dik7XG5cbiAgREVDS0dMX01VVEFURV9DT0xPUihpbWFnZSwgdXYpO1xuXG4gIGZyYWdDb2xvciA9IGFwcGx5X29wYWNpdHkoY29sb3JfdGludChjb2xvcl9kZXNhdHVyYXRlKGltYWdlLnJnYikpLCByYXN0ZXIub3BhY2l0eSk7XG5cbiAgZ2VvbWV0cnkudXYgPSB1djtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihmcmFnQ29sb3IsIGdlb21ldHJ5KTtc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
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
- var _default = exports["default"] = "#define SHADER_NAME raster-layer-fragment-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n gl_FragColor = apply_opacity(color_tint(color_desaturate(image.rgb)), opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXItd2ViZ2wxLmZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbGF5ZXItZnJhZ21lbnQtc2hhZGVyXG5cbiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2VuZGlmXG5cbnZhcnlpbmcgdmVjMiB2VGV4Q29vcmQ7XG52YXJ5aW5nIHZlYzIgdlRleFBvcztcblxudW5pZm9ybSBmbG9hdCBkZXNhdHVyYXRlO1xudW5pZm9ybSB2ZWM0IHRyYW5zcGFyZW50Q29sb3I7XG51bmlmb3JtIHZlYzMgdGludENvbG9yO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG51bmlmb3JtIGZsb2F0IGNvb3JkaW5hdGVDb252ZXJzaW9uO1xudW5pZm9ybSB2ZWM0IGJvdW5kcztcblxuLyogcHJvamVjdGlvbiB1dGlscyAqL1xuY29uc3QgZmxvYXQgVElMRV9TSVpFID0gNTEyLjA7XG5jb25zdCBmbG9hdCBQSSA9IDMuMTQxNTkyNjUzNjtcbmNvbnN0IGZsb2F0IFdPUkxEX1NDQUxFID0gVElMRV9TSVpFIC8gUEkgLyAyLjA7XG5cbi8vIGZyb20gZGVncmVlcyB0byBXZWIgTWVyY2F0b3JcbnZlYzIgbG5nbGF0X3RvX21lcmNhdG9yKHZlYzIgbG5nbGF0KSB7XG4gIGZsb2F0IHggPSBsbmdsYXQueDtcbiAgZmxvYXQgeSA9IGNsYW1wKGxuZ2xhdC55LCAtODkuOSwgODkuOSk7XG4gIHJldHVybiB2ZWMyKFxuICAgIHJhZGlhbnMoeCkgKyBQSSxcbiAgICBQSSArIGxvZyh0YW4oUEkgKiAwLjI1ICsgcmFkaWFucyh5KSAqIDAuNSkpXG4gICkgKiBXT1JMRF9TQ0FMRTtcbn1cblxuLy8gZnJvbSBXZWIgTWVyY2F0b3IgdG8gZGVncmVlc1xudmVjMiBtZXJjYXRvcl90b19sbmdsYXQodmVjMiB4eSkge1xuICB4eSAvPSBXT1JMRF9TQ0FMRTtcbiAgcmV0dXJuIGRlZ3JlZXModmVjMihcbiAgICB4eS54IC0gUEksXG4gICAgYXRhbihleHAoeHkueSAtIFBJKSkgKiAyLjAgLSBQSSAqIDAuNVxuICApKTtcbn1cbi8qIEVuZCBwcm9qZWN0aW9uIHV0aWxzICovXG5cbi8vIGFwcGx5IGRlc2F0dXJhdGlvblxudmVjMyBjb2xvcl9kZXNhdHVyYXRlKHZlYzMgY29sb3IpIHtcbiAgZmxvYXQgbHVtaW5hbmNlID0gKGNvbG9yLnIgKyBjb2xvci5nICsgY29sb3IuYikgKiAwLjMzMzMzMzMzMztcbiAgcmV0dXJuIG1peChjb2xvciwgdmVjMyhsdW1pbmFuY2UpLCBkZXNhdHVyYXRlKTtcbn1cblxuLy8gYXBwbHkgdGludFxudmVjMyBjb2xvcl90aW50KHZlYzMgY29sb3IpIHtcbiAgcmV0dXJuIGNvbG9yICogdGludENvbG9yO1xufVxuXG4vLyBibGVuZCB3aXRoIGJhY2tncm91bmQgY29sb3JcbnZlYzQgYXBwbHlfb3BhY2l0eSh2ZWMzIGNvbG9yLCBmbG9hdCBhbHBoYSkge1xuICBpZiAodHJhbnNwYXJlbnRDb2xvci5hID09IDAuMCkge1xuICAgIHJldHVybiB2ZWM0KGNvbG9yLCBhbHBoYSk7XG4gIH1cbiAgZmxvYXQgYmxlbmRlZEFscGhhID0gYWxwaGEgKyB0cmFuc3BhcmVudENvbG9yLmEgKiAoMS4wIC0gYWxwaGEpO1xuICBmbG9hdCBoaWdoTGlnaHRSYXRpbyA9IGFscGhhIC8gYmxlbmRlZEFscGhhO1xuICB2ZWMzIGJsZW5kZWRSR0IgPSBtaXgodHJhbnNwYXJlbnRDb2xvci5yZ2IsIGNvbG9yLCBoaWdoTGlnaHRSYXRpbyk7XG4gIHJldHVybiB2ZWM0KGJsZW5kZWRSR0IsIGJsZW5kZWRBbHBoYSk7XG59XG5cbnZlYzIgZ2V0VVYodmVjMiBwb3MpIHtcbiAgcmV0dXJuIHZlYzIoXG4gICAgKHBvcy54IC0gYm91bmRzWzBdKSAvIChib3VuZHNbMl0gLSBib3VuZHNbMF0pLFxuICAgIChwb3MueSAtIGJvdW5kc1szXSkgLyAoYm91bmRzWzFdIC0gYm91bmRzWzNdKVxuICApO1xufVxuXG52b2lkIG1haW4odm9pZCkge1xuICB2ZWMyIHV2ID0gdlRleENvb3JkO1xuICBpZiAoY29vcmRpbmF0ZUNvbnZlcnNpb24gPCAtMC41KSB7XG4gICAgdmVjMiBsbmdsYXQgPSBtZXJjYXRvcl90b19sbmdsYXQodlRleFBvcyk7XG4gICAgdXYgPSBnZXRVVihsbmdsYXQpO1xuICB9IGVsc2UgaWYgKGNvb3JkaW5hdGVDb252ZXJzaW9uID4gMC41KSB7XG4gICAgdmVjMiBjb21tb25Qb3MgPSBsbmdsYXRfdG9fbWVyY2F0b3IodlRleFBvcyk7XG4gICAgdXYgPSBnZXRVVihjb21tb25Qb3MpO1xuICB9XG5cbiAgdmVjNCBpbWFnZTtcbiAgREVDS0dMX0NSRUFURV9DT0xPUihpbWFnZSwgdlRleENvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGFwcGx5X29wYWNpdHkoY29sb3JfdGludChjb2xvcl9kZXNhdHVyYXRlKGltYWdlLnJnYikpLCBvcGFjaXR5KTtcblxuICBnZW9tZXRyeS51diA9IHV2O1xuICBERUNLR0xfRklMVEVSX0NPTE9SKGdsX0ZyYWdDb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
- var _default = exports["default"] = "#define SHADER_NAME raster-layer-vertex-shader\n\nattribute vec2 texCoords;\nattribute vec3 positions;\nattribute vec3 positions64Low;\n\nvarying vec2 vTexCoord;\nvarying vec2 vTexPos;\n\nuniform float coordinateConversion;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n\n if (coordinateConversion < -0.5) {\n vTexPos = geometry.position.xy;\n } else if (coordinateConversion > 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXItd2ViZ2wxLnZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbGF5ZXItdmVydGV4LXNoYWRlclxuXG5hdHRyaWJ1dGUgdmVjMiB0ZXhDb29yZHM7XG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM7XG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM2NExvdztcblxudmFyeWluZyB2ZWMyIHZUZXhDb29yZDtcbnZhcnlpbmcgdmVjMiB2VGV4UG9zO1xuXG51bmlmb3JtIGZsb2F0IGNvb3JkaW5hdGVDb252ZXJzaW9uO1xuXG5jb25zdCB2ZWMzIHBpY2tpbmdDb2xvciA9IHZlYzMoMS4wLCAwLjAsIDAuMCk7XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBwb3NpdGlvbnM7XG4gIGdlb21ldHJ5LnV2ID0gdGV4Q29vcmRzO1xuICBnZW9tZXRyeS5waWNraW5nQ29sb3IgPSBwaWNraW5nQ29sb3I7XG5cbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShwb3NpdGlvbnMsIHBvc2l0aW9uczY0TG93LCB2ZWMzKDAuMCksIGdlb21ldHJ5LnBvc2l0aW9uKTtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuXG4gIHZUZXhDb29yZCA9IHRleENvb3JkcztcblxuICBpZiAoY29vcmRpbmF0ZUNvbnZlcnNpb24gPCAtMC41KSB7XG4gICAgdlRleFBvcyA9IGdlb21ldHJ5LnBvc2l0aW9uLnh5O1xuICB9IGVsc2UgaWYgKGNvb3JkaW5hdGVDb252ZXJzaW9uID4gMC41KSB7XG4gICAgdlRleFBvcyA9IGdlb21ldHJ5LndvcmxkUG9zaXRpb24ueHk7XG4gIH1cblxuICB2ZWM0IGNvbG9yID0gdmVjNCgwLjApO1xuICBERUNLR0xfRklMVEVSX0NPTE9SKGNvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
- var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-layer-fragment-shader\n\n// Ref https://www.khronos.org/registry/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf#page=60\nprecision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\nin vec2 vTexCoord;\nin vec2 vTexPos;\n\nout vec4 color;\n\nuniform float desaturate;\nuniform vec4 transparentColor;\nuniform vec3 tintColor;\nuniform float opacity;\n\nuniform float coordinateConversion;\nuniform vec4 bounds;\n\n/* projection utils */\nconst float TILE_SIZE = 512.0;\nconst float PI = 3.1415926536;\nconst float WORLD_SCALE = TILE_SIZE / PI / 2.0;\n\n// from degrees to Web Mercator\nvec2 lnglat_to_mercator(vec2 lnglat) {\n float x = lnglat.x;\n float y = clamp(lnglat.y, -89.9, 89.9);\n return vec2(\n radians(x) + PI,\n PI + log(tan(PI * 0.25 + radians(y) * 0.5))\n ) * WORLD_SCALE;\n}\n\n// from Web Mercator to degrees\nvec2 mercator_to_lnglat(vec2 xy) {\n xy /= WORLD_SCALE;\n return degrees(vec2(\n xy.x - PI,\n atan(exp(xy.y - PI)) * 2.0 - PI * 0.5\n ));\n}\n/* End projection utils */\n\n// apply desaturation\nvec3 color_desaturate(vec3 color) {\n float luminance = (color.r + color.g + color.b) * 0.333333333;\n return mix(color, vec3(luminance), desaturate);\n}\n\n// apply tint\nvec3 color_tint(vec3 color) {\n return color * tintColor;\n}\n\n// blend with background color\nvec4 apply_opacity(vec3 color, float alpha) {\n if (transparentColor.a == 0.0) {\n return vec4(color, alpha);\n }\n float blendedAlpha = alpha + transparentColor.a * (1.0 - alpha);\n float highLightRatio = alpha / blendedAlpha;\n vec3 blendedRGB = mix(transparentColor.rgb, color, highLightRatio);\n return vec4(blendedRGB, blendedAlpha);\n}\n\nvec2 getUV(vec2 pos) {\n return vec2(\n (pos.x - bounds[0]) / (bounds[2] - bounds[0]),\n (pos.y - bounds[3]) / (bounds[1] - bounds[3])\n );\n}\n\nvoid main(void) {\n vec2 uv = vTexCoord;\n if (coordinateConversion < -0.5) {\n vec2 lnglat = mercator_to_lnglat(vTexPos);\n uv = getUV(lnglat);\n } else if (coordinateConversion > 0.5) {\n vec2 commonPos = lnglat_to_mercator(vTexPos);\n uv = getUV(commonPos);\n }\n\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n color = apply_opacity(color_tint(color_desaturate(image.rgb)), opacity);\n\n geometry.uv = uv;\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXItd2ViZ2wyLmZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI3ZlcnNpb24gMzAwIGVzXG4jZGVmaW5lIFNIQURFUl9OQU1FIHJhc3Rlci1sYXllci1mcmFnbWVudC1zaGFkZXJcblxuLy8gUmVmIGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L09wZW5HTC9zcGVjcy9lcy8zLjAvR0xTTF9FU19TcGVjaWZpY2F0aW9uXzMuMDAucGRmI3BhZ2U9NjBcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xucHJlY2lzaW9uIG1lZGl1bXAgaW50O1xucHJlY2lzaW9uIG1lZGl1bXAgdXNhbXBsZXIyRDtcblxuaW4gdmVjMiB2VGV4Q29vcmQ7XG5pbiB2ZWMyIHZUZXhQb3M7XG5cbm91dCB2ZWM0IGNvbG9yO1xuXG51bmlmb3JtIGZsb2F0IGRlc2F0dXJhdGU7XG51bmlmb3JtIHZlYzQgdHJhbnNwYXJlbnRDb2xvcjtcbnVuaWZvcm0gdmVjMyB0aW50Q29sb3I7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnVuaWZvcm0gZmxvYXQgY29vcmRpbmF0ZUNvbnZlcnNpb247XG51bmlmb3JtIHZlYzQgYm91bmRzO1xuXG4vKiBwcm9qZWN0aW9uIHV0aWxzICovXG5jb25zdCBmbG9hdCBUSUxFX1NJWkUgPSA1MTIuMDtcbmNvbnN0IGZsb2F0IFBJID0gMy4xNDE1OTI2NTM2O1xuY29uc3QgZmxvYXQgV09STERfU0NBTEUgPSBUSUxFX1NJWkUgLyBQSSAvIDIuMDtcblxuLy8gZnJvbSBkZWdyZWVzIHRvIFdlYiBNZXJjYXRvclxudmVjMiBsbmdsYXRfdG9fbWVyY2F0b3IodmVjMiBsbmdsYXQpIHtcbiAgZmxvYXQgeCA9IGxuZ2xhdC54O1xuICBmbG9hdCB5ID0gY2xhbXAobG5nbGF0LnksIC04OS45LCA4OS45KTtcbiAgcmV0dXJuIHZlYzIoXG4gICAgcmFkaWFucyh4KSArIFBJLFxuICAgIFBJICsgbG9nKHRhbihQSSAqIDAuMjUgKyByYWRpYW5zKHkpICogMC41KSlcbiAgKSAqIFdPUkxEX1NDQUxFO1xufVxuXG4vLyBmcm9tIFdlYiBNZXJjYXRvciB0byBkZWdyZWVzXG52ZWMyIG1lcmNhdG9yX3RvX2xuZ2xhdCh2ZWMyIHh5KSB7XG4gIHh5IC89IFdPUkxEX1NDQUxFO1xuICByZXR1cm4gZGVncmVlcyh2ZWMyKFxuICAgIHh5LnggLSBQSSxcbiAgICBhdGFuKGV4cCh4eS55IC0gUEkpKSAqIDIuMCAtIFBJICogMC41XG4gICkpO1xufVxuLyogRW5kIHByb2plY3Rpb24gdXRpbHMgKi9cblxuLy8gYXBwbHkgZGVzYXR1cmF0aW9uXG52ZWMzIGNvbG9yX2Rlc2F0dXJhdGUodmVjMyBjb2xvcikge1xuICBmbG9hdCBsdW1pbmFuY2UgPSAoY29sb3IuciArIGNvbG9yLmcgKyBjb2xvci5iKSAqIDAuMzMzMzMzMzMzO1xuICByZXR1cm4gbWl4KGNvbG9yLCB2ZWMzKGx1bWluYW5jZSksIGRlc2F0dXJhdGUpO1xufVxuXG4vLyBhcHBseSB0aW50XG52ZWMzIGNvbG9yX3RpbnQodmVjMyBjb2xvcikge1xuICByZXR1cm4gY29sb3IgKiB0aW50Q29sb3I7XG59XG5cbi8vIGJsZW5kIHdpdGggYmFja2dyb3VuZCBjb2xvclxudmVjNCBhcHBseV9vcGFjaXR5KHZlYzMgY29sb3IsIGZsb2F0IGFscGhhKSB7XG4gIGlmICh0cmFuc3BhcmVudENvbG9yLmEgPT0gMC4wKSB7XG4gICAgcmV0dXJuIHZlYzQoY29sb3IsIGFscGhhKTtcbiAgfVxuICBmbG9hdCBibGVuZGVkQWxwaGEgPSBhbHBoYSArIHRyYW5zcGFyZW50Q29sb3IuYSAqICgxLjAgLSBhbHBoYSk7XG4gIGZsb2F0IGhpZ2hMaWdodFJhdGlvID0gYWxwaGEgLyBibGVuZGVkQWxwaGE7XG4gIHZlYzMgYmxlbmRlZFJHQiA9IG1peCh0cmFuc3BhcmVudENvbG9yLnJnYiwgY29sb3IsIGhpZ2hMaWdodFJhdGlvKTtcbiAgcmV0dXJuIHZlYzQoYmxlbmRlZFJHQiwgYmxlbmRlZEFscGhhKTtcbn1cblxudmVjMiBnZXRVVih2ZWMyIHBvcykge1xuICByZXR1cm4gdmVjMihcbiAgICAocG9zLnggLSBib3VuZHNbMF0pIC8gKGJvdW5kc1syXSAtIGJvdW5kc1swXSksXG4gICAgKHBvcy55IC0gYm91bmRzWzNdKSAvIChib3VuZHNbMV0gLSBib3VuZHNbM10pXG4gICk7XG59XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIHZlYzIgdXYgPSB2VGV4Q29vcmQ7XG4gIGlmIChjb29yZGluYXRlQ29udmVyc2lvbiA8IC0wLjUpIHtcbiAgICB2ZWMyIGxuZ2xhdCA9IG1lcmNhdG9yX3RvX2xuZ2xhdCh2VGV4UG9zKTtcbiAgICB1diA9IGdldFVWKGxuZ2xhdCk7XG4gIH0gZWxzZSBpZiAoY29vcmRpbmF0ZUNvbnZlcnNpb24gPiAwLjUpIHtcbiAgICB2ZWMyIGNvbW1vblBvcyA9IGxuZ2xhdF90b19tZXJjYXRvcih2VGV4UG9zKTtcbiAgICB1diA9IGdldFVWKGNvbW1vblBvcyk7XG4gIH1cblxuICB2ZWM0IGltYWdlO1xuICBERUNLR0xfQ1JFQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIERFQ0tHTF9NVVRBVEVfQ09MT1IoaW1hZ2UsIHZUZXhDb29yZCk7XG5cbiAgY29sb3IgPSBhcHBseV9vcGFjaXR5KGNvbG9yX3RpbnQoY29sb3JfZGVzYXR1cmF0ZShpbWFnZS5yZ2IpKSwgb3BhY2l0eSk7XG5cbiAgZ2VvbWV0cnkudXYgPSB1djtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihjb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
- var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-layer-vertex-shader\n\nprecision mediump float;\n\nin vec2 texCoords;\nin vec3 positions;\nin vec3 positions64Low;\n\nout vec2 vTexCoord;\nout vec2 vTexPos;\n\nuniform float coordinateConversion;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n\n if (coordinateConversion < -0.5) {\n vTexPos = geometry.position.xy;\n } else if (coordinateConversion > 0.5) {\n vTexPos = geometry.worldPosition.xy;\n }\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
10
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXItd2ViZ2wyLnZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI3ZlcnNpb24gMzAwIGVzXG4jZGVmaW5lIFNIQURFUl9OQU1FIHJhc3Rlci1sYXllci12ZXJ0ZXgtc2hhZGVyXG5cbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuXG5pbiB2ZWMyIHRleENvb3JkcztcbmluIHZlYzMgcG9zaXRpb25zO1xuaW4gdmVjMyBwb3NpdGlvbnM2NExvdztcblxub3V0IHZlYzIgdlRleENvb3JkO1xub3V0IHZlYzIgdlRleFBvcztcblxudW5pZm9ybSBmbG9hdCBjb29yZGluYXRlQ29udmVyc2lvbjtcblxuY29uc3QgdmVjMyBwaWNraW5nQ29sb3IgPSB2ZWMzKDEuMCwgMC4wLCAwLjApO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gcG9zaXRpb25zO1xuICBnZW9tZXRyeS51diA9IHRleENvb3JkcztcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gcGlja2luZ0NvbG9yO1xuXG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zaXRpb25zLCBwb3NpdGlvbnM2NExvdywgdmVjMygwLjApLCBnZW9tZXRyeS5wb3NpdGlvbik7XG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcblxuICB2VGV4Q29vcmQgPSB0ZXhDb29yZHM7XG5cbiAgaWYgKGNvb3JkaW5hdGVDb252ZXJzaW9uIDwgLTAuNSkge1xuICAgIHZUZXhQb3MgPSBnZW9tZXRyeS5wb3NpdGlvbi54eTtcbiAgfSBlbHNlIGlmIChjb29yZGluYXRlQ29udmVyc2lvbiA+IDAuNSkge1xuICAgIHZUZXhQb3MgPSBnZW9tZXRyeS53b3JsZFBvc2l0aW9uLnh5O1xuICB9XG5cbiAgdmVjNCBjb2xvciA9IHZlYzQoMC4wKTtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihjb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,256 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _layers = require("@deck.gl/layers");
17
- var _rasterLayerShaders = require("./raster-layer-shaders");
18
- var _images = require("../images");
19
- var _util = require("../util");
20
- var _pipelineValidationPatch = require("../pipeline-validation-patch");
21
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
24
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
25
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
26
- function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
27
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
29
- // Copyright contributors to the kepler.gl project
30
- var defaultProps = _objectSpread(_objectSpread({}, _layers.BitmapLayer.defaultProps), {}, {
31
- modules: {
32
- type: 'array',
33
- value: [],
34
- compare: true
35
- },
36
- images: {
37
- type: 'object',
38
- value: {},
39
- compare: true
40
- },
41
- moduleProps: {
42
- type: 'object',
43
- value: {},
44
- compare: true
45
- },
46
- onRedrawNeeded: {
47
- type: 'function',
48
- value: null,
49
- compare: false
50
- }
51
- });
52
- var RasterLayer = exports["default"] = /*#__PURE__*/function (_BitmapLayer) {
53
- function RasterLayer() {
54
- var _this;
55
- (0, _classCallCheck2["default"])(this, RasterLayer);
56
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
- args[_key] = arguments[_key];
58
- }
59
- _this = _callSuper(this, RasterLayer, [].concat(args));
60
- (0, _defineProperty2["default"])(_this, "_redrawScheduled", false);
61
- return _this;
62
- }
63
- (0, _inherits2["default"])(RasterLayer, _BitmapLayer);
64
- return (0, _createClass2["default"])(RasterLayer, [{
65
- key: "initializeState",
66
- value: function initializeState() {
67
- (0, _pipelineValidationPatch.patchPipelineValidation)();
68
- (0, _rasterLayerShaders.ensureRasterHooksRegistered)();
69
- this.setState({
70
- images: {}
71
- });
72
- _superPropGet(RasterLayer, "initializeState", this, 3)([]);
73
- }
74
- }, {
75
- key: "draw",
76
- value: function draw(_opts) {
77
- var _this$props$opacity;
78
- var _this$state = this.state,
79
- model = _this$state.model,
80
- images = _this$state.images,
81
- coordinateConversion = _this$state.coordinateConversion,
82
- bounds = _this$state.bounds;
83
- var _this$props = this.props,
84
- desaturate = _this$props.desaturate,
85
- transparentColor = _this$props.transparentColor,
86
- tintColor = _this$props.tintColor,
87
- moduleProps = _this$props.moduleProps;
88
- if (!model || !images || Object.keys(images).length === 0 || !Object.values(images).every(function (item) {
89
- return item;
90
- })) {
91
- return;
92
- }
93
-
94
- // Set UBO uniforms for the raster module
95
- model.shaderInputs.setProps({
96
- raster: {
97
- desaturate: desaturate || 0,
98
- transparentColor: (transparentColor || [0, 0, 0, 0]).map(function (x) {
99
- return x ? x / 255 : 0;
100
- }),
101
- tintColor: (tintColor || [255, 255, 255]).slice(0, 3).map(function (x) {
102
- return x / 255;
103
- }),
104
- coordinateConversion: coordinateConversion || 0,
105
- bounds: bounds || [0, 0, 0, 0],
106
- opacity: (_this$props$opacity = this.props.opacity) !== null && _this$props$opacity !== void 0 ? _this$props$opacity : 1
107
- }
108
- });
109
-
110
- // Set props for each custom module through shaderInputs.
111
- // We call getUniforms ourselves to skip modules that return null (inactive).
112
- // Passing allModuleProps directly to setProps would cause the null-fallback
113
- // in ShaderInputs to treat the entire props bag as uniforms/bindings,
114
- // triggering expensive texture rebinding every frame.
115
- var allModuleProps = _objectSpread(_objectSpread({}, moduleProps), images);
116
- var modules = this.props.modules || [];
117
- var _iterator = _createForOfIteratorHelper(modules),
118
- _step;
119
- try {
120
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
121
- var mod = _step.value;
122
- if (mod.getUniforms) {
123
- var result = mod.getUniforms(allModuleProps);
124
- if (result) {
125
- model.shaderInputs.setProps((0, _defineProperty2["default"])({}, mod.name, result));
126
- }
127
- }
128
- }
129
- } catch (err) {
130
- _iterator.e(err);
131
- } finally {
132
- _iterator.f();
133
- }
134
- var drawSuccess = model.draw(this.context.renderPass);
135
- if (!drawSuccess) {
136
- this._scheduleRedraw();
137
- }
138
- }
139
- }, {
140
- key: "_scheduleRedraw",
141
- value: function _scheduleRedraw() {
142
- var _this2 = this;
143
- if (this._redrawScheduled) return;
144
- this._redrawScheduled = true;
145
- requestAnimationFrame(function () {
146
- var _this2$context$layerM;
147
- _this2._redrawScheduled = false;
148
- if (_this2.context.deck) {
149
- // @ts-expect-error accessing private deck.gl property
150
- _this2.context.deck._needsRedraw = 'RasterLayer pipeline pending';
151
- }
152
- (_this2$context$layerM = _this2.context.layerManager) === null || _this2$context$layerM === void 0 || _this2$context$layerM.setNeedsRedraw('RasterLayer pipeline pending');
153
- if (typeof _this2.props.onRedrawNeeded === 'function') {
154
- _this2.props.onRedrawNeeded();
155
- }
156
- });
157
- }
158
- }, {
159
- key: "getShaders",
160
- value: function getShaders() {
161
- var _this$props$modules = this.props.modules,
162
- modules = _this$props$modules === void 0 ? [] : _this$props$modules;
163
- var lumaModules = (0, _rasterLayerShaders.prepareLumaModules)(modules);
164
- var parentShaders = _superPropGet(RasterLayer, "getShaders", this, 3)([]);
165
- return _objectSpread(_objectSpread({}, parentShaders), {}, {
166
- vs: (0, _rasterLayerShaders.buildRasterVertexShader)(),
167
- fs: (0, _rasterLayerShaders.buildRasterFragmentShader)(),
168
- modules: [].concat((0, _toConsumableArray2["default"])(parentShaders.modules || []), [_rasterLayerShaders.rasterUniforms], (0, _toConsumableArray2["default"])(lumaModules))
169
- });
170
- }
171
-
172
- // eslint-disable-next-line complexity
173
- }, {
174
- key: "updateState",
175
- value: function updateState(params) {
176
- var props = params.props,
177
- oldProps = params.oldProps,
178
- changeFlags = params.changeFlags;
179
- var modules = props && props.modules;
180
- var oldModules = oldProps && oldProps.modules;
181
- if (changeFlags.extensionsChanged || !(0, _util.modulesEqual)(modules, oldModules)) {
182
- var _this$state$model, _this$state$model$des, _this$getAttributeMan;
183
- (_this$state$model = this.state.model) === null || _this$state$model === void 0 || (_this$state$model$des = _this$state$model.destroy) === null || _this$state$model$des === void 0 || _this$state$model$des.call(_this$state$model);
184
- // @ts-expect-error _getModel is internal to BitmapLayer
185
- this.state.model = this._getModel(this.context.device || this.context.gl);
186
- (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 || _this$getAttributeMan.invalidateAll();
187
- }
188
- if (props && props.images) {
189
- this.updateImages({
190
- props: props,
191
- oldProps: oldProps
192
- });
193
- }
194
- var attributeManager = this.getAttributeManager();
195
- if (props.bounds !== oldProps.bounds) {
196
- var _this$state$model2;
197
- var oldMesh = this.state.mesh;
198
- var mesh = this._createMesh();
199
- (_this$state$model2 = this.state.model) === null || _this$state$model2 === void 0 || _this$state$model2.setVertexCount(mesh.vertexCount);
200
- for (var key in mesh) {
201
- if (oldMesh && oldMesh[key] !== mesh[key]) {
202
- attributeManager === null || attributeManager === void 0 || attributeManager.invalidate(key);
203
- }
204
- }
205
- this.setState(_objectSpread({
206
- mesh: mesh
207
- }, this._getCoordinateUniforms()));
208
- } else if (props._imageCoordinateSystem !== oldProps._imageCoordinateSystem) {
209
- this.setState(this._getCoordinateUniforms());
210
- }
211
- }
212
- }, {
213
- key: "updateImages",
214
- value: function updateImages(_ref) {
215
- var props = _ref.props,
216
- oldProps = _ref.oldProps;
217
- var images = this.state.images;
218
- var device = this.context.device;
219
- var gl = (device === null || device === void 0 ? void 0 : device.gl) || this.context.gl;
220
- var newImages = (0, _images.loadImages)({
221
- gl: gl,
222
- device: device,
223
- images: images,
224
- imagesData: props.images,
225
- oldImagesData: oldProps.images
226
- });
227
- if (newImages) {
228
- this.setState({
229
- images: newImages
230
- });
231
- }
232
- }
233
- }, {
234
- key: "finalizeState",
235
- value: function finalizeState() {
236
- _superPropGet(RasterLayer, "finalizeState", this, 3)([this.context]);
237
- if (this.state.images) {
238
- for (var _i = 0, _Object$values = Object.values(this.state.images); _i < _Object$values.length; _i++) {
239
- var image = _Object$values[_i];
240
- if (Array.isArray(image)) {
241
- image.map(function (x) {
242
- var _x$delete;
243
- return x && (x.destroy ? x.destroy() : (_x$delete = x["delete"]) === null || _x$delete === void 0 ? void 0 : _x$delete.call(x));
244
- });
245
- } else if (image) {
246
- var _image$delete;
247
- image.destroy ? image.destroy() : (_image$delete = image["delete"]) === null || _image$delete === void 0 ? void 0 : _image$delete.call(image);
248
- }
249
- }
250
- }
251
- }
252
- }]);
253
- }(_layers.BitmapLayer);
254
- RasterLayer.defaultProps = defaultProps;
255
- RasterLayer.layerName = 'RasterLayer';
256
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl9yYXN0ZXJMYXllclNoYWRlcnMiLCJfaW1hZ2VzIiwiX3V0aWwiLCJfcGlwZWxpbmVWYWxpZGF0aW9uUGF0Y2giLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiX3N1cGVyUHJvcEdldCIsInAiLCJfZ2V0MiIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVmYXVsdFByb3BzIiwiQml0bWFwTGF5ZXIiLCJtb2R1bGVzIiwidHlwZSIsImNvbXBhcmUiLCJpbWFnZXMiLCJtb2R1bGVQcm9wcyIsIm9uUmVkcmF3TmVlZGVkIiwiUmFzdGVyTGF5ZXIiLCJleHBvcnRzIiwiX0JpdG1hcExheWVyIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwiY29uY2F0IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJpbml0aWFsaXplU3RhdGUiLCJwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbiIsImVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCIsInNldFN0YXRlIiwiZHJhdyIsIl9vcHRzIiwiX3RoaXMkcHJvcHMkb3BhY2l0eSIsIl90aGlzJHN0YXRlIiwic3RhdGUiLCJtb2RlbCIsImNvb3JkaW5hdGVDb252ZXJzaW9uIiwiYm91bmRzIiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImRlc2F0dXJhdGUiLCJ0cmFuc3BhcmVudENvbG9yIiwidGludENvbG9yIiwidmFsdWVzIiwiZXZlcnkiLCJpdGVtIiwic2hhZGVySW5wdXRzIiwic2V0UHJvcHMiLCJyYXN0ZXIiLCJtYXAiLCJ4Iiwib3BhY2l0eSIsImFsbE1vZHVsZVByb3BzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJtb2QiLCJnZXRVbmlmb3JtcyIsInJlc3VsdCIsImVyciIsImRyYXdTdWNjZXNzIiwiY29udGV4dCIsInJlbmRlclBhc3MiLCJfc2NoZWR1bGVSZWRyYXciLCJfdGhpczIiLCJfcmVkcmF3U2NoZWR1bGVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3RoaXMyJGNvbnRleHQkbGF5ZXJNIiwiZGVjayIsIl9uZWVkc1JlZHJhdyIsImxheWVyTWFuYWdlciIsInNldE5lZWRzUmVkcmF3IiwiZ2V0U2hhZGVycyIsIl90aGlzJHByb3BzJG1vZHVsZXMiLCJsdW1hTW9kdWxlcyIsInByZXBhcmVMdW1hTW9kdWxlcyIsInBhcmVudFNoYWRlcnMiLCJ2cyIsImJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyIiwiZnMiLCJidWlsZFJhc3RlckZyYWdtZW50U2hhZGVyIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJhc3RlclVuaWZvcm1zIiwidXBkYXRlU3RhdGUiLCJwYXJhbXMiLCJvbGRQcm9wcyIsImNoYW5nZUZsYWdzIiwib2xkTW9kdWxlcyIsImV4dGVuc2lvbnNDaGFuZ2VkIiwibW9kdWxlc0VxdWFsIiwiX3RoaXMkc3RhdGUkbW9kZWwiLCJfdGhpcyRzdGF0ZSRtb2RlbCRkZXMiLCJfdGhpcyRnZXRBdHRyaWJ1dGVNYW4iLCJkZXN0cm95IiwiX2dldE1vZGVsIiwiZGV2aWNlIiwiZ2wiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiaW52YWxpZGF0ZUFsbCIsInVwZGF0ZUltYWdlcyIsImF0dHJpYnV0ZU1hbmFnZXIiLCJfdGhpcyRzdGF0ZSRtb2RlbDIiLCJvbGRNZXNoIiwibWVzaCIsIl9jcmVhdGVNZXNoIiwic2V0VmVydGV4Q291bnQiLCJ2ZXJ0ZXhDb3VudCIsImludmFsaWRhdGUiLCJfZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zIiwiX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSIsIl9yZWYiLCJuZXdJbWFnZXMiLCJsb2FkSW1hZ2VzIiwiaW1hZ2VzRGF0YSIsIm9sZEltYWdlc0RhdGEiLCJmaW5hbGl6ZVN0YXRlIiwiX2kiLCJfT2JqZWN0JHZhbHVlcyIsImltYWdlIiwiX3gkZGVsZXRlIiwiX2ltYWdlJGRlbGV0ZSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLWxheWVyL3Jhc3Rlci1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1VwZGF0ZVBhcmFtZXRlcnN9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtCaXRtYXBMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IHtcbiAgYnVpbGRSYXN0ZXJGcmFnbWVudFNoYWRlcixcbiAgYnVpbGRSYXN0ZXJWZXJ0ZXhTaGFkZXIsXG4gIHJhc3RlclVuaWZvcm1zLFxuICBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQsXG4gIHByZXBhcmVMdW1hTW9kdWxlc1xufSBmcm9tICcuL3Jhc3Rlci1sYXllci1zaGFkZXJzJztcbmltcG9ydCB7bG9hZEltYWdlc30gZnJvbSAnLi4vaW1hZ2VzJztcbmltcG9ydCB0eXBlIHtSYXN0ZXJMYXllckFkZGVkUHJvcHMsIEltYWdlU3RhdGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bW9kdWxlc0VxdWFsfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7cGF0Y2hQaXBlbGluZVZhbGlkYXRpb259IGZyb20gJy4uL3BpcGVsaW5lLXZhbGlkYXRpb24tcGF0Y2gnO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIC4uLkJpdG1hcExheWVyLmRlZmF1bHRQcm9wcyxcbiAgbW9kdWxlczoge3R5cGU6ICdhcnJheScsIHZhbHVlOiBbXSwgY29tcGFyZTogdHJ1ZX0sXG4gIGltYWdlczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBtb2R1bGVQcm9wczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBvblJlZHJhd05lZWRlZDoge3R5cGU6ICdmdW5jdGlvbicsIHZhbHVlOiBudWxsLCBjb21wYXJlOiBmYWxzZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhc3RlckxheWVyIGV4dGVuZHMgQml0bWFwTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPiB7XG4gIGRlY2xhcmUgc3RhdGU6IEJpdG1hcExheWVyPFJhc3RlckxheWVyQWRkZWRQcm9wcz5bJ3N0YXRlJ10gJiB7XG4gICAgaW1hZ2VzOiBJbWFnZVN0YXRlO1xuICB9O1xuXG4gIF9yZWRyYXdTY2hlZHVsZWQgPSBmYWxzZTtcblxuICBpbml0aWFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgcGF0Y2hQaXBlbGluZVZhbGlkYXRpb24oKTtcbiAgICBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IHt9fSk7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gIH1cblxuICBkcmF3KF9vcHRzOiB7c2hhZGVyTW9kdWxlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+fSk6IHZvaWQge1xuICAgIGNvbnN0IHttb2RlbCwgaW1hZ2VzLCBjb29yZGluYXRlQ29udmVyc2lvbiwgYm91bmRzfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2Rlc2F0dXJhdGUsIHRyYW5zcGFyZW50Q29sb3IsIHRpbnRDb2xvciwgbW9kdWxlUHJvcHN9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChcbiAgICAgICFtb2RlbCB8fFxuICAgICAgIWltYWdlcyB8fFxuICAgICAgT2JqZWN0LmtleXMoaW1hZ2VzKS5sZW5ndGggPT09IDAgfHxcbiAgICAgICFPYmplY3QudmFsdWVzKGltYWdlcykuZXZlcnkoaXRlbSA9PiBpdGVtKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNldCBVQk8gdW5pZm9ybXMgZm9yIHRoZSByYXN0ZXIgbW9kdWxlXG4gICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtcbiAgICAgIHJhc3Rlcjoge1xuICAgICAgICBkZXNhdHVyYXRlOiBkZXNhdHVyYXRlIHx8IDAsXG4gICAgICAgIHRyYW5zcGFyZW50Q29sb3I6ICh0cmFuc3BhcmVudENvbG9yIHx8IFswLCAwLCAwLCAwXSkubWFwKHggPT4gKHggPyB4IC8gMjU1IDogMCkpLFxuICAgICAgICB0aW50Q29sb3I6ICh0aW50Q29sb3IgfHwgWzI1NSwgMjU1LCAyNTVdKS5zbGljZSgwLCAzKS5tYXAoeCA9PiB4IC8gMjU1KSxcbiAgICAgICAgY29vcmRpbmF0ZUNvbnZlcnNpb246IGNvb3JkaW5hdGVDb252ZXJzaW9uIHx8IDAsXG4gICAgICAgIGJvdW5kczogYm91bmRzIHx8IFswLCAwLCAwLCAwXSxcbiAgICAgICAgb3BhY2l0eTogdGhpcy5wcm9wcy5vcGFjaXR5ID8/IDFcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCBwcm9wcyBmb3IgZWFjaCBjdXN0b20gbW9kdWxlIHRocm91Z2ggc2hhZGVySW5wdXRzLlxuICAgIC8vIFdlIGNhbGwgZ2V0VW5pZm9ybXMgb3Vyc2VsdmVzIHRvIHNraXAgbW9kdWxlcyB0aGF0IHJldHVybiBudWxsIChpbmFjdGl2ZSkuXG4gICAgLy8gUGFzc2luZyBhbGxNb2R1bGVQcm9wcyBkaXJlY3RseSB0byBzZXRQcm9wcyB3b3VsZCBjYXVzZSB0aGUgbnVsbC1mYWxsYmFja1xuICAgIC8vIGluIFNoYWRlcklucHV0cyB0byB0cmVhdCB0aGUgZW50aXJlIHByb3BzIGJhZyBhcyB1bmlmb3Jtcy9iaW5kaW5ncyxcbiAgICAvLyB0cmlnZ2VyaW5nIGV4cGVuc2l2ZSB0ZXh0dXJlIHJlYmluZGluZyBldmVyeSBmcmFtZS5cbiAgICBjb25zdCBhbGxNb2R1bGVQcm9wcyA9IHsuLi5tb2R1bGVQcm9wcywgLi4uaW1hZ2VzfTtcbiAgICBjb25zdCBtb2R1bGVzID0gdGhpcy5wcm9wcy5tb2R1bGVzIHx8IFtdO1xuICAgIGZvciAoY29uc3QgbW9kIG9mIG1vZHVsZXMpIHtcbiAgICAgIGlmIChtb2QuZ2V0VW5pZm9ybXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbW9kLmdldFVuaWZvcm1zKGFsbE1vZHVsZVByb3BzKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIG1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7W21vZC5uYW1lXTogcmVzdWx0fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkcmF3U3VjY2VzcyA9IG1vZGVsLmRyYXcodGhpcy5jb250ZXh0LnJlbmRlclBhc3MpO1xuICAgIGlmICghZHJhd1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3NjaGVkdWxlUmVkcmF3KCk7XG4gICAgfVxuICB9XG5cbiAgX3NjaGVkdWxlUmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWRyYXdTY2hlZHVsZWQpIHJldHVybjtcbiAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuZGVjaykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGFjY2Vzc2luZyBwcml2YXRlIGRlY2suZ2wgcHJvcGVydHlcbiAgICAgICAgdGhpcy5jb250ZXh0LmRlY2suX25lZWRzUmVkcmF3ID0gJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0LmxheWVyTWFuYWdlcj8uc2V0TmVlZHNSZWRyYXcoJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblJlZHJhd05lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVkcmF3TmVlZGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRTaGFkZXJzKCk6IGFueSB7XG4gICAgY29uc3Qge21vZHVsZXMgPSBbXX0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgbHVtYU1vZHVsZXMgPSBwcmVwYXJlTHVtYU1vZHVsZXMobW9kdWxlcyk7XG4gICAgY29uc3QgcGFyZW50U2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJlbnRTaGFkZXJzLFxuICAgICAgdnM6IGJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyKCksXG4gICAgICBmczogYnVpbGRSYXN0ZXJGcmFnbWVudFNoYWRlcigpLFxuICAgICAgbW9kdWxlczogWy4uLihwYXJlbnRTaGFkZXJzLm1vZHVsZXMgfHwgW10pLCByYXN0ZXJVbmlmb3JtcywgLi4ubHVtYU1vZHVsZXNdXG4gICAgfTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIHVwZGF0ZVN0YXRlKHBhcmFtczogVXBkYXRlUGFyYW1ldGVyczxCaXRtYXBMYXllcjxSYXN0ZXJMYXllckFkZGVkUHJvcHM+Pik6IHZvaWQge1xuICAgIGNvbnN0IHtwcm9wcywgb2xkUHJvcHMsIGNoYW5nZUZsYWdzfSA9IHBhcmFtcztcbiAgICBjb25zdCBtb2R1bGVzID0gcHJvcHMgJiYgcHJvcHMubW9kdWxlcztcbiAgICBjb25zdCBvbGRNb2R1bGVzID0gb2xkUHJvcHMgJiYgb2xkUHJvcHMubW9kdWxlcztcblxuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCB8fCAhbW9kdWxlc0VxdWFsKG1vZHVsZXMsIG9sZE1vZHVsZXMpKSB7XG4gICAgICB0aGlzLnN0YXRlLm1vZGVsPy5kZXN0cm95Py4oKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgX2dldE1vZGVsIGlzIGludGVybmFsIHRvIEJpdG1hcExheWVyXG4gICAgICB0aGlzLnN0YXRlLm1vZGVsID0gdGhpcy5fZ2V0TW9kZWwodGhpcy5jb250ZXh0LmRldmljZSB8fCB0aGlzLmNvbnRleHQuZ2wpO1xuICAgICAgdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk/LmludmFsaWRhdGVBbGwoKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMgJiYgcHJvcHMuaW1hZ2VzKSB7XG4gICAgICB0aGlzLnVwZGF0ZUltYWdlcyh7cHJvcHMsIG9sZFByb3BzfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlTWFuYWdlciA9IHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpO1xuXG4gICAgaWYgKHByb3BzLmJvdW5kcyAhPT0gb2xkUHJvcHMuYm91bmRzKSB7XG4gICAgICBjb25zdCBvbGRNZXNoID0gdGhpcy5zdGF0ZS5tZXNoO1xuICAgICAgY29uc3QgbWVzaCA9IHRoaXMuX2NyZWF0ZU1lc2goKTtcbiAgICAgIHRoaXMuc3RhdGUubW9kZWw/LnNldFZlcnRleENvdW50KG1lc2gudmVydGV4Q291bnQpO1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWVzaCkge1xuICAgICAgICBpZiAob2xkTWVzaCAmJiBvbGRNZXNoW2tleV0gIT09IG1lc2hba2V5XSkge1xuICAgICAgICAgIGF0dHJpYnV0ZU1hbmFnZXI/LmludmFsaWRhdGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bWVzaCwgLi4udGhpcy5fZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zKCl9KTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLl9pbWFnZUNvb3JkaW5hdGVTeXN0ZW0gIT09IG9sZFByb3BzLl9pbWFnZUNvb3JkaW5hdGVTeXN0ZW0pIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5fZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUltYWdlcyh7XG4gICAgcHJvcHMsXG4gICAgb2xkUHJvcHNcbiAgfToge1xuICAgIHByb3BzOiBSYXN0ZXJMYXllckFkZGVkUHJvcHM7XG4gICAgb2xkUHJvcHM6IFJhc3RlckxheWVyQWRkZWRQcm9wcztcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHtpbWFnZXN9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBkZXZpY2UgPSB0aGlzLmNvbnRleHQuZGV2aWNlO1xuICAgIGNvbnN0IGdsID0gZGV2aWNlPy5nbCB8fCB0aGlzLmNvbnRleHQuZ2w7XG5cbiAgICBjb25zdCBuZXdJbWFnZXMgPSBsb2FkSW1hZ2VzKHtcbiAgICAgIGdsLFxuICAgICAgZGV2aWNlLFxuICAgICAgaW1hZ2VzLFxuICAgICAgaW1hZ2VzRGF0YTogcHJvcHMuaW1hZ2VzLFxuICAgICAgb2xkSW1hZ2VzRGF0YTogb2xkUHJvcHMuaW1hZ2VzXG4gICAgfSk7XG4gICAgaWYgKG5ld0ltYWdlcykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7aW1hZ2VzOiBuZXdJbWFnZXN9KTtcbiAgICB9XG4gIH1cblxuICBmaW5hbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmZpbmFsaXplU3RhdGUodGhpcy5jb250ZXh0KTtcblxuICAgIGlmICh0aGlzLnN0YXRlLmltYWdlcykge1xuICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhdGUuaW1hZ2VzKSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZSkpIHtcbiAgICAgICAgICBpbWFnZS5tYXAoeCA9PiB4ICYmICh4LmRlc3Ryb3kgPyB4LmRlc3Ryb3koKSA6IHguZGVsZXRlPy4oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGltYWdlKSB7XG4gICAgICAgICAgaW1hZ2UuZGVzdHJveSA/IGltYWdlLmRlc3Ryb3koKSA6IGltYWdlLmRlbGV0ZT8uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuUmFzdGVyTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuUmFzdGVyTGF5ZXIubGF5ZXJOYW1lID0gJ1Jhc3RlckxheWVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUQsT0FBQTtBQU9BLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHdCQUFBLEdBQUFKLE9BQUE7QUFBcUUsU0FBQUssMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLHlCQUFBQyxNQUFBLElBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLENBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsQ0FBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLENBQUEsSUFBQUQsQ0FBQSx1QkFBQUEsQ0FBQSxD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
@@ -1,4 +0,0 @@
1
- import { Viewport } from '@deck.gl/core';
2
- type CoordinateSystem = number;
3
- export declare function shouldComposeModelMatrix(viewport: Viewport, coordinateSystem: CoordinateSystem): boolean;
4
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.shouldComposeModelMatrix = shouldComposeModelMatrix;
7
- var _core = require("@deck.gl/core");
8
- // SPDX-License-Identifier: MIT
9
- // Copyright contributors to the kepler.gl project
10
-
11
- // only apply composeModelMatrix when in cartesian or meter_offsets coordinate system
12
- // with `composeModelMatrix` enabled, the rotation part of the layer's modelMatrix will be composed to instance's transformations
13
- // since rotating latitude and longitude can not provide meaningful results, hence `composeModelMatrix` is disabled
14
- // when in LNGLAT and LNGLAT_OFFSET coordinates.
15
- function shouldComposeModelMatrix(viewport, coordinateSystem) {
16
- return coordinateSystem === _core.COORDINATE_SYSTEM.CARTESIAN || coordinateSystem === _core.COORDINATE_SYSTEM.METER_OFFSETS || coordinateSystem === _core.COORDINATE_SYSTEM.DEFAULT && !viewport.isGeospatial;
17
- }
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJzaG91bGRDb21wb3NlTW9kZWxNYXRyaXgiLCJ2aWV3cG9ydCIsImNvb3JkaW5hdGVTeXN0ZW0iLCJDT09SRElOQVRFX1NZU1RFTSIsIkNBUlRFU0lBTiIsIk1FVEVSX09GRlNFVFMiLCJERUZBVUxUIiwiaXNHZW9zcGF0aWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9tYXRyaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDT09SRElOQVRFX1NZU1RFTSwgVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xudHlwZSBDb29yZGluYXRlU3lzdGVtID0gbnVtYmVyO1xuXG4vLyBvbmx5IGFwcGx5IGNvbXBvc2VNb2RlbE1hdHJpeCB3aGVuIGluIGNhcnRlc2lhbiBvciBtZXRlcl9vZmZzZXRzIGNvb3JkaW5hdGUgc3lzdGVtXG4vLyB3aXRoIGBjb21wb3NlTW9kZWxNYXRyaXhgIGVuYWJsZWQsIHRoZSByb3RhdGlvbiBwYXJ0IG9mIHRoZSBsYXllcidzIG1vZGVsTWF0cml4IHdpbGwgYmUgY29tcG9zZWQgdG8gaW5zdGFuY2UncyB0cmFuc2Zvcm1hdGlvbnNcbi8vIHNpbmNlIHJvdGF0aW5nIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY2FuIG5vdCBwcm92aWRlIG1lYW5pbmdmdWwgcmVzdWx0cywgaGVuY2UgYGNvbXBvc2VNb2RlbE1hdHJpeGAgaXMgZGlzYWJsZWRcbi8vIHdoZW4gaW4gTE5HTEFUIGFuZCBMTkdMQVRfT0ZGU0VUIGNvb3JkaW5hdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENvbXBvc2VNb2RlbE1hdHJpeChcbiAgdmlld3BvcnQ6IFZpZXdwb3J0LFxuICBjb29yZGluYXRlU3lzdGVtOiBDb29yZGluYXRlU3lzdGVtXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5DQVJURVNJQU4gfHxcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5NRVRFUl9PRkZTRVRTIHx8XG4gICAgKGNvb3JkaW5hdGVTeXN0ZW0gPT09IENPT1JESU5BVEVfU1lTVEVNLkRFRkFVTFQgJiYgIXZpZXdwb3J0LmlzR2Vvc3BhdGlhbClcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBSEE7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLHdCQUF3QkEsQ0FDdENDLFFBQWtCLEVBQ2xCQyxnQkFBa0MsRUFDekI7RUFDVCxPQUNFQSxnQkFBZ0IsS0FBS0MsdUJBQWlCLENBQUNDLFNBQVMsSUFDaERGLGdCQUFnQixLQUFLQyx1QkFBaUIsQ0FBQ0UsYUFBYSxJQUNuREgsZ0JBQWdCLEtBQUtDLHVCQUFpQixDQUFDRyxPQUFPLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxZQUFhO0FBRTlFIiwiaWdub3JlTGlzdCI6W119
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.buildRasterMeshFragmentShader = buildRasterMeshFragmentShader;
7
- exports.buildRasterMeshVertexShader = buildRasterMeshVertexShader;
8
- exports.rasterMeshUniforms = void 0;
9
- // SPDX-License-Identifier: MIT
10
- // Copyright contributors to the kepler.gl project
11
-
12
- var rasterMeshUniformBlock = "uniform rasterMeshUniforms {\n float meshOpacity;\n float meshFlatShading;\n} rasterMesh;\n";
13
- var rasterMeshUniforms = exports.rasterMeshUniforms = {
14
- name: 'rasterMesh',
15
- vs: rasterMeshUniformBlock,
16
- fs: rasterMeshUniformBlock,
17
- uniformTypes: {
18
- meshOpacity: 'f32',
19
- meshFlatShading: 'f32'
20
- }
21
- };
22
-
23
- /**
24
- * Build the vertex shader for the raster mesh layer.
25
- */
26
- function buildRasterMeshVertexShader() {
27
- return "#version 300 es\n#define SHADER_NAME raster-mesh-layer-vs\n\nin vec3 positions;\nin vec3 positions64Low;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\n\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\nconst vec3 defaultNormal = vec3(0.0, 0.0, 1.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n normals_commonspace = project_normal(normals);\n geometry.normal = normals_commonspace;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n position_commonspace = geometry.position;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n cameraPosition = project.cameraPosition;\n\n vColor = vec4(colors, 1.0);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
28
- }
29
-
30
- /**
31
- * Build the fragment shader for the raster mesh layer.
32
- * Uses DECKGL_CREATE_COLOR and DECKGL_MUTATE_COLOR hooks registered with
33
- * the ShaderAssembler. Module inject code is assembled by luma.gl.
34
- */
35
- function buildRasterMeshFragmentShader() {
36
- return "#version 300 es\n#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\nprecision mediump int;\nprecision mediump usampler2D;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec2 coord = vTexCoord;\n vec4 image;\n\n DECKGL_CREATE_COLOR(image, coord);\n\n DECKGL_MUTATE_COLOR(image, coord);\n\n vec3 normal;\n if (rasterMesh.meshFlatShading > 0.5) {\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, rasterMesh.meshOpacity);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
37
- }
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyYXN0ZXJNZXNoVW5pZm9ybUJsb2NrIiwicmFzdGVyTWVzaFVuaWZvcm1zIiwiZXhwb3J0cyIsIm5hbWUiLCJ2cyIsImZzIiwidW5pZm9ybVR5cGVzIiwibWVzaE9wYWNpdHkiLCJtZXNoRmxhdFNoYWRpbmciLCJidWlsZFJhc3Rlck1lc2hWZXJ0ZXhTaGFkZXIiLCJidWlsZFJhc3Rlck1lc2hGcmFnbWVudFNoYWRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLW1lc2gtbGF5ZXIvcmFzdGVyLW1lc2gtbGF5ZXItc2hhZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5jb25zdCByYXN0ZXJNZXNoVW5pZm9ybUJsb2NrID0gYFxcXG51bmlmb3JtIHJhc3Rlck1lc2hVbmlmb3JtcyB7XG4gIGZsb2F0IG1lc2hPcGFjaXR5O1xuICBmbG9hdCBtZXNoRmxhdFNoYWRpbmc7XG59IHJhc3Rlck1lc2g7XG5gO1xuXG5leHBvcnQgY29uc3QgcmFzdGVyTWVzaFVuaWZvcm1zID0ge1xuICBuYW1lOiAncmFzdGVyTWVzaCcsXG4gIHZzOiByYXN0ZXJNZXNoVW5pZm9ybUJsb2NrLFxuICBmczogcmFzdGVyTWVzaFVuaWZvcm1CbG9jayxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgbWVzaE9wYWNpdHk6ICdmMzInLFxuICAgIG1lc2hGbGF0U2hhZGluZzogJ2YzMidcbiAgfVxufTtcblxuLyoqXG4gKiBCdWlsZCB0aGUgdmVydGV4IHNoYWRlciBmb3IgdGhlIHJhc3RlciBtZXNoIGxheWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSYXN0ZXJNZXNoVmVydGV4U2hhZGVyKCk6IHN0cmluZyB7XG4gIHJldHVybiBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbWVzaC1sYXllci12c1xuXG5pbiB2ZWMzIHBvc2l0aW9ucztcbmluIHZlYzMgcG9zaXRpb25zNjRMb3c7XG5pbiB2ZWMzIG5vcm1hbHM7XG5pbiB2ZWMzIGNvbG9ycztcbmluIHZlYzIgdGV4Q29vcmRzO1xuXG5vdXQgdmVjMiB2VGV4Q29vcmQ7XG5vdXQgdmVjMyBjYW1lcmFQb3NpdGlvbjtcbm91dCB2ZWMzIG5vcm1hbHNfY29tbW9uc3BhY2U7XG5vdXQgdmVjNCBwb3NpdGlvbl9jb21tb25zcGFjZTtcbm91dCB2ZWM0IHZDb2xvcjtcblxuY29uc3QgdmVjMyBwaWNraW5nQ29sb3IgPSB2ZWMzKDEuMCwgMC4wLCAwLjApO1xuY29uc3QgdmVjMyBkZWZhdWx0Tm9ybWFsID0gdmVjMygwLjAsIDAuMCwgMS4wKTtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IHBvc2l0aW9ucztcbiAgZ2VvbWV0cnkudXYgPSB0ZXhDb29yZHM7XG4gIGdlb21ldHJ5LnBpY2tpbmdDb2xvciA9IHBpY2tpbmdDb2xvcjtcblxuICBub3JtYWxzX2NvbW1vbnNwYWNlID0gcHJvamVjdF9ub3JtYWwobm9ybWFscyk7XG4gIGdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbHNfY29tbW9uc3BhY2U7XG5cbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShwb3NpdGlvbnMsIHBvc2l0aW9uczY0TG93LCB2ZWMzKDAuMCksIGdlb21ldHJ5LnBvc2l0aW9uKTtcbiAgcG9zaXRpb25fY29tbW9uc3BhY2UgPSBnZW9tZXRyeS5wb3NpdGlvbjtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuXG4gIHZUZXhDb29yZCA9IHRleENvb3JkcztcbiAgY2FtZXJhUG9zaXRpb24gPSBwcm9qZWN0LmNhbWVyYVBvc2l0aW9uO1xuXG4gIHZDb2xvciA9IHZlYzQoY29sb3JzLCAxLjApO1xuICBERUNLR0xfRklMVEVSX0NPTE9SKHZDb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgZnJhZ21lbnQgc2hhZGVyIGZvciB0aGUgcmFzdGVyIG1lc2ggbGF5ZXIuXG4gKiBVc2VzIERFQ0tHTF9DUkVBVEVfQ09MT1IgYW5kIERFQ0tHTF9NVVRBVEVfQ09MT1IgaG9va3MgcmVnaXN0ZXJlZCB3aXRoXG4gKiB0aGUgU2hhZGVyQXNzZW1ibGVyLiBNb2R1bGUgaW5qZWN0IGNvZGUgaXMgYXNzZW1ibGVkIGJ5IGx1bWEuZ2wuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJhc3Rlck1lc2hGcmFnbWVudFNoYWRlcigpOiBzdHJpbmcge1xuICByZXR1cm4gYFxcXG4jdmVyc2lvbiAzMDAgZXNcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLW1lc2gtbGF5ZXItZnNcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xucHJlY2lzaW9uIG1lZGl1bXAgaW50O1xucHJlY2lzaW9uIG1lZGl1bXAgdXNhbXBsZXIyRDtcblxuaW4gdmVjMiB2VGV4Q29vcmQ7XG5pbiB2ZWMzIGNhbWVyYVBvc2l0aW9uO1xuaW4gdmVjMyBub3JtYWxzX2NvbW1vbnNwYWNlO1xuaW4gdmVjNCBwb3NpdGlvbl9jb21tb25zcGFjZTtcbmluIHZlYzQgdkNvbG9yO1xuXG5vdXQgdmVjNCBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIGdlb21ldHJ5LnV2ID0gdlRleENvb3JkO1xuICB2ZWMyIGNvb3JkID0gdlRleENvb3JkO1xuICB2ZWM0IGltYWdlO1xuXG4gIERFQ0tHTF9DUkVBVEVfQ09MT1IoaW1hZ2UsIGNvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCBjb29yZCk7XG5cbiAgdmVjMyBub3JtYWw7XG4gIGlmIChyYXN0ZXJNZXNoLm1lc2hGbGF0U2hhZGluZyA+IDAuNSkge1xuICAgIG5vcm1hbCA9IG5vcm1hbGl6ZShjcm9zcyhkRmR4KHBvc2l0aW9uX2NvbW1vbnNwYWNlLnh5eiksIGRGZHkocG9zaXRpb25fY29tbW9uc3BhY2UueHl6KSkpO1xuICB9IGVsc2Uge1xuICAgIG5vcm1hbCA9IG5vcm1hbHNfY29tbW9uc3BhY2U7XG4gIH1cblxuICB2ZWMzIGxpZ2h0Q29sb3IgPSBsaWdodGluZ19nZXRMaWdodENvbG9yKGltYWdlLnJnYiwgY2FtZXJhUG9zaXRpb24sIHBvc2l0aW9uX2NvbW1vbnNwYWNlLnh5eiwgbm9ybWFsKTtcbiAgZnJhZ0NvbG9yID0gdmVjNChsaWdodENvbG9yLCByYXN0ZXJNZXNoLm1lc2hPcGFjaXR5KTtcblxuICBERUNLR0xfRklMVEVSX0NPTE9SKGZyYWdDb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBLElBQU1BLHNCQUFzQixrR0FLM0I7QUFFTSxJQUFNQyxrQkFBa0IsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHO0VBQ2hDRSxJQUFJLEVBQUUsWUFBWTtFQUNsQkMsRUFBRSxFQUFFSixzQkFBc0I7RUFDMUJLLEVBQUUsRUFBRUwsc0JBQXNCO0VBQzFCTSxZQUFZLEVBQUU7SUFDWkMsV0FBVyxFQUFFLEtBQUs7SUFDbEJDLGVBQWUsRUFBRTtFQUNuQjtBQUNGLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ08sU0FBU0MsMkJBQTJCQSxDQUFBLEVBQVc7RUFDcEQ7QUFzQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLDZCQUE2QkEsQ0FBQSxFQUFXO0VBQ3REO0FBc0NGIiwiaWdub3JlTGlzdCI6W119