@kepler.gl/deckgl-layers 3.3.0-alpha.4 → 3.3.0-alpha.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 (190) 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 +220 -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 +569 -0
  12. package/dist/cjs/globe/globe-stars-layer.js +69 -0
  13. package/dist/cjs/globe/globe-view.js +407 -0
  14. package/dist/{globe → cjs/globe}/index.js +1 -1
  15. package/dist/cjs/globe/mvt-label-layer.js +190 -0
  16. package/dist/cjs/grid-layer/enhanced-cpu-grid-layer.js +116 -0
  17. package/dist/cjs/hexagon-layer/enhanced-hexagon-layer.js +134 -0
  18. package/dist/{index.js → cjs/index.js} +1 -1
  19. package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
  20. package/dist/cjs/layer-utils/cluster-utils.js +93 -0
  21. package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
  22. package/dist/cjs/layer-utils/globe-cell-utils.js +173 -0
  23. package/dist/cjs/layer-utils/shader-utils.js +38 -0
  24. package/dist/cjs/line-layer/line-layer.js +95 -0
  25. package/dist/cjs/raster/images.js +271 -0
  26. package/dist/cjs/raster/pipeline-validation-patch.js +101 -0
  27. package/dist/cjs/raster/raster-layer/raster-layer-shaders.js +163 -0
  28. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
  29. package/dist/cjs/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
  30. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
  31. package/dist/cjs/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
  32. package/dist/cjs/raster/raster-layer/raster-layer.js +287 -0
  33. package/dist/cjs/raster/raster-mesh-layer/matrix.js +18 -0
  34. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  35. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
  36. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
  37. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
  38. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
  39. package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer.js +321 -0
  40. package/dist/cjs/raster/raster-processing-uniforms.js +124 -0
  41. package/dist/cjs/raster/types.js +6 -0
  42. package/dist/cjs/raster/util.js +139 -0
  43. package/dist/cjs/raster/webgl/color/colormap.js +45 -0
  44. package/dist/cjs/raster/webgl/color/filter.js +58 -0
  45. package/dist/cjs/raster/webgl/color/gamma-contrast.js +68 -0
  46. package/dist/cjs/raster/webgl/color/linear-rescale.js +35 -0
  47. package/dist/cjs/raster/webgl/color/saturation.js +42 -0
  48. package/dist/cjs/raster/webgl/color/sigmoidal-contrast.js +68 -0
  49. package/dist/{raster → cjs/raster}/webgl/index.js +1 -1
  50. package/dist/cjs/raster/webgl/pansharpen/pansharpen-brovey.js +46 -0
  51. package/dist/cjs/raster/webgl/spectral-indices/evi.js +26 -0
  52. package/dist/cjs/raster/webgl/spectral-indices/msavi.js +25 -0
  53. package/dist/cjs/raster/webgl/spectral-indices/normalized-difference.js +19 -0
  54. package/dist/cjs/raster/webgl/spectral-indices/savi.js +21 -0
  55. package/dist/cjs/raster/webgl/texture/combine-bands.js +65 -0
  56. package/dist/cjs/raster/webgl/texture/mask.js +50 -0
  57. package/dist/cjs/raster/webgl/texture/reorder-bands.js +72 -0
  58. package/dist/cjs/raster/webgl/texture/rgba-image.js +34 -0
  59. package/dist/cjs/raster/webgl/types.js +6 -0
  60. package/dist/cjs/svg-icon-layer/scatterplot-icon-layer.js +88 -0
  61. package/dist/cjs/svg-icon-layer/svg-icon-layer.js +104 -0
  62. package/dist/cjs/wms/wms-layer.js +624 -0
  63. package/dist/esm/3d-building-layer/3d-building-layer.js +62 -0
  64. package/dist/esm/3d-building-layer/3d-building-utils.js +157 -0
  65. package/dist/esm/3d-building-layer/types.js +3 -0
  66. package/dist/esm/cluster-layer/cluster-layer.js +286 -0
  67. package/dist/esm/column-layer/enhanced-column-layer.js +156 -0
  68. package/dist/esm/deckgl-extensions/filter-arrow-layer.js +64 -0
  69. package/dist/esm/deckgl-extensions/filter-shader-module.js +20 -0
  70. package/dist/esm/globe/atmosphere-layer.js +214 -0
  71. package/dist/esm/globe/enhanced-multi-icon-layer.js +60 -0
  72. package/dist/esm/globe/globe-depth-disk-layer.js +140 -0
  73. package/dist/esm/globe/globe-layers.js +561 -0
  74. package/dist/esm/globe/globe-stars-layer.js +63 -0
  75. package/dist/esm/globe/globe-view.js +401 -0
  76. package/dist/esm/globe/index.js +26 -0
  77. package/dist/esm/globe/mvt-label-layer.js +187 -0
  78. package/dist/esm/grid-layer/enhanced-cpu-grid-layer.js +112 -0
  79. package/dist/esm/hexagon-layer/enhanced-hexagon-layer.js +130 -0
  80. package/dist/esm/index.js +22 -0
  81. package/dist/esm/layer-utils/aggregation-utils.js +172 -0
  82. package/dist/esm/layer-utils/cluster-utils.js +86 -0
  83. package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
  84. package/dist/esm/layer-utils/globe-cell-utils.js +167 -0
  85. package/dist/esm/layer-utils/shader-utils.js +32 -0
  86. package/dist/esm/line-layer/line-layer.js +91 -0
  87. package/dist/esm/raster/images.js +267 -0
  88. package/dist/esm/raster/pipeline-validation-patch.js +94 -0
  89. package/dist/esm/raster/raster-layer/raster-layer-shaders.js +153 -0
  90. package/dist/esm/raster/raster-layer/raster-layer-webgl1.fs.js +5 -0
  91. package/dist/esm/raster/raster-layer/raster-layer-webgl1.vs.js +5 -0
  92. package/dist/esm/raster/raster-layer/raster-layer-webgl2.fs.js +5 -0
  93. package/dist/esm/raster/raster-layer/raster-layer-webgl2.vs.js +5 -0
  94. package/dist/esm/raster/raster-layer/raster-layer.js +283 -0
  95. package/dist/esm/raster/raster-mesh-layer/matrix.js +12 -0
  96. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +30 -0
  97. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +5 -0
  98. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +5 -0
  99. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +5 -0
  100. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +5 -0
  101. package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer.js +318 -0
  102. package/dist/esm/raster/raster-processing-uniforms.js +118 -0
  103. package/dist/esm/raster/types.js +3 -0
  104. package/dist/esm/raster/util.js +134 -0
  105. package/dist/esm/raster/webgl/color/colormap.js +39 -0
  106. package/dist/esm/raster/webgl/color/filter.js +52 -0
  107. package/dist/esm/raster/webgl/color/gamma-contrast.js +62 -0
  108. package/dist/esm/raster/webgl/color/linear-rescale.js +29 -0
  109. package/dist/esm/raster/webgl/color/saturation.js +36 -0
  110. package/dist/esm/raster/webgl/color/sigmoidal-contrast.js +62 -0
  111. package/dist/esm/raster/webgl/index.js +26 -0
  112. package/dist/esm/raster/webgl/pansharpen/pansharpen-brovey.js +40 -0
  113. package/dist/esm/raster/webgl/spectral-indices/evi.js +20 -0
  114. package/dist/esm/raster/webgl/spectral-indices/msavi.js +19 -0
  115. package/dist/esm/raster/webgl/spectral-indices/normalized-difference.js +13 -0
  116. package/dist/esm/raster/webgl/spectral-indices/savi.js +15 -0
  117. package/dist/esm/raster/webgl/texture/combine-bands.js +58 -0
  118. package/dist/esm/raster/webgl/texture/mask.js +44 -0
  119. package/dist/esm/raster/webgl/texture/reorder-bands.js +65 -0
  120. package/dist/esm/raster/webgl/texture/rgba-image.js +28 -0
  121. package/dist/esm/raster/webgl/types.js +3 -0
  122. package/dist/esm/svg-icon-layer/scatterplot-icon-layer.js +84 -0
  123. package/dist/esm/svg-icon-layer/svg-icon-layer.js +101 -0
  124. package/dist/esm/wms/wms-layer.js +619 -0
  125. package/dist/globe/atmosphere-layer.d.ts +13 -2
  126. package/dist/globe/globe-depth-disk-layer.d.ts +1 -0
  127. package/dist/globe/globe-layers.d.ts +8 -2
  128. package/dist/raster/images.d.ts +10 -1
  129. package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
  130. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
  131. package/dist/wms/wms-layer.d.ts +8 -0
  132. package/package.json +18 -11
  133. package/dist/3d-building-layer/3d-building-layer.js +0 -66
  134. package/dist/3d-building-layer/3d-building-utils.js +0 -166
  135. package/dist/3d-building-layer/types.js +0 -6
  136. package/dist/cluster-layer/cluster-layer.js +0 -292
  137. package/dist/column-layer/enhanced-column-layer.js +0 -160
  138. package/dist/deckgl-extensions/filter-shader-module.js +0 -26
  139. package/dist/globe/atmosphere-layer.js +0 -184
  140. package/dist/globe/enhanced-multi-icon-layer.js +0 -63
  141. package/dist/globe/globe-depth-disk-layer.js +0 -145
  142. package/dist/globe/globe-layers.js +0 -565
  143. package/dist/globe/globe-stars-layer.js +0 -69
  144. package/dist/globe/globe-view.js +0 -316
  145. package/dist/globe/mvt-label-layer.js +0 -190
  146. package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -116
  147. package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -134
  148. package/dist/layer-utils/aggregation-utils.js +0 -181
  149. package/dist/layer-utils/cluster-utils.js +0 -93
  150. package/dist/layer-utils/cpu-aggregator.js +0 -798
  151. package/dist/layer-utils/globe-cell-utils.js +0 -173
  152. package/dist/layer-utils/shader-utils.js +0 -38
  153. package/dist/line-layer/line-layer.js +0 -95
  154. package/dist/raster/images.js +0 -259
  155. package/dist/raster/pipeline-validation-patch.js +0 -101
  156. package/dist/raster/raster-layer/raster-layer-shaders.js +0 -163
  157. package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +0 -10
  158. package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +0 -10
  159. package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +0 -10
  160. package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +0 -10
  161. package/dist/raster/raster-layer/raster-layer.js +0 -237
  162. package/dist/raster/raster-mesh-layer/matrix.js +0 -18
  163. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +0 -38
  164. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +0 -10
  165. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +0 -10
  166. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +0 -10
  167. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +0 -10
  168. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +0 -271
  169. package/dist/raster/raster-processing-uniforms.js +0 -124
  170. package/dist/raster/types.js +0 -6
  171. package/dist/raster/util.js +0 -139
  172. package/dist/raster/webgl/color/colormap.js +0 -45
  173. package/dist/raster/webgl/color/filter.js +0 -58
  174. package/dist/raster/webgl/color/gamma-contrast.js +0 -68
  175. package/dist/raster/webgl/color/linear-rescale.js +0 -35
  176. package/dist/raster/webgl/color/saturation.js +0 -42
  177. package/dist/raster/webgl/color/sigmoidal-contrast.js +0 -68
  178. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +0 -46
  179. package/dist/raster/webgl/spectral-indices/evi.js +0 -26
  180. package/dist/raster/webgl/spectral-indices/msavi.js +0 -25
  181. package/dist/raster/webgl/spectral-indices/normalized-difference.js +0 -19
  182. package/dist/raster/webgl/spectral-indices/savi.js +0 -21
  183. package/dist/raster/webgl/texture/combine-bands.js +0 -65
  184. package/dist/raster/webgl/texture/mask.js +0 -50
  185. package/dist/raster/webgl/texture/reorder-bands.js +0 -72
  186. package/dist/raster/webgl/texture/rgba-image.js +0 -34
  187. package/dist/raster/webgl/types.js +0 -6
  188. package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -88
  189. package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
  190. package/dist/wms/wms-layer.js +0 -594
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sigmoidalContrast = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // From mapbox/rio-color under the MIT License
11
+ //
12
+ // Sigmoidal contrast is a type of contrast control that
13
+ // adjusts the contrast without saturating highlights or shadows.
14
+ // It allows control over two factors:
15
+ // the contrast range from light to dark, and where the middle value
16
+ // of the mid-tones falls. The result is a non-linear and smooth
17
+ // contrast change.
18
+ // Parameters
19
+ // ----------
20
+ // arr : ndarray, float, 0 .. 1
21
+ // Array of color values to adjust
22
+ // contrast : integer
23
+ // Enhances the intensity differences between the lighter and darker
24
+ // elements of the image. For example, 0 is none, 3 is typical and
25
+ // 20 is a lot.
26
+ // bias : float, between 0 and 1
27
+ // Threshold level for the contrast function to center on
28
+ // (typically centered at 0.5)
29
+ // Notes
30
+ // ----------
31
+ // Sigmoidal contrast is based on the sigmoidal transfer function:
32
+ // .. math:: g(u) = ( 1/(1 + e^{- \alpha * u + \beta)})
33
+ // This sigmoid function is scaled so that the output is bound by
34
+ // the interval [0, 1].
35
+ // .. math:: ( 1/(1 + e^(\beta * (\alpha - u))) - 1/(1 + e^(\beta * \alpha)))/
36
+ // ( 1/(1 + e^(\beta*(\alpha - 1))) - 1/(1 + e^(\beta * \alpha)) )
37
+ // Where :math: `\alpha` is the threshold level, and :math: `\beta` the
38
+ // contrast factor to be applied.
39
+ // References
40
+ // ----------
41
+ // .. [CT] Hany Farid "Fundamentals of Image Processing"
42
+ // http://www.cs.dartmouth.edu/farid/downloads/tutorials/fip.pdf
43
+ var fs = "#define epsilon 0.00000001\n\nuniform sigmoidalContrastUniforms {\n float contrast;\n float bias;\n} sigmoidalContrast;\n\n// NOTE: Input array must have float values between 0 and 1!\n// NOTE: bias must be a scalar float between 0 and 1!\nvec4 calculateSigmoidalContrast(vec4 arr, float contrast, float bias) {\n // We use the names alpha and beta to match documentation.\n float alpha = bias;\n float beta = contrast;\n\n // alpha must be >= 0\n alpha = clamp(alpha, epsilon, alpha);\n\n if (beta > 0.) {\n vec4 numerator = 1. / (1. + exp(beta * (alpha - arr))) - 1. / (\n 1. + exp(beta * alpha)\n );\n float denominator = 1. / (1. + exp(beta * (alpha - 1.))) - 1. / (\n 1. + exp(beta * alpha)\n );\n arr = numerator / denominator;\n } else if (beta < 0.) {\n arr = (\n (beta * alpha) - log(\n (\n 1.0 / (\n (arr / (1.0 + exp((beta * alpha) - beta))) -\n (arr / (1.0 + exp(beta * alpha))) +\n (1.0 / (1.0 + exp(beta * alpha)))\n )\n ) - 1.0)\n ) / beta;\n }\n\n return arr;\n}\n";
44
+ function getUniforms() {
45
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
+ var sigmoidalContrast = opts.sigmoidalContrast,
47
+ sigmoidalBias = opts.sigmoidalBias;
48
+ if (!(Number.isFinite(sigmoidalContrast) || Number.isFinite(sigmoidalBias))) {
49
+ return null;
50
+ }
51
+ return {
52
+ contrast: Number.isFinite(sigmoidalContrast) ? sigmoidalContrast : 0,
53
+ bias: Number.isFinite(sigmoidalBias) ? sigmoidalBias : 0.5
54
+ };
55
+ }
56
+ var sigmoidalContrast = exports.sigmoidalContrast = {
57
+ name: 'sigmoidalContrast',
58
+ fs: fs,
59
+ uniformTypes: {
60
+ contrast: 'f32',
61
+ bias: 'f32'
62
+ },
63
+ getUniforms: getUniforms,
64
+ inject: {
65
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = calculateSigmoidalContrast(image, sigmoidalContrast.contrast, sigmoidalContrast.bias);\n "
66
+ }
67
+ };
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNpZ21vaWRhbENvbnRyYXN0Iiwic2lnbW9pZGFsQmlhcyIsIk51bWJlciIsImlzRmluaXRlIiwiY29udHJhc3QiLCJiaWFzIiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL3NpZ21vaWRhbC1jb250cmFzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gRnJvbSBtYXBib3gvcmlvLWNvbG9yIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxuLy9cbi8vIFNpZ21vaWRhbCBjb250cmFzdCBpcyBhIHR5cGUgb2YgY29udHJhc3QgY29udHJvbCB0aGF0XG4vLyBhZGp1c3RzIHRoZSBjb250cmFzdCB3aXRob3V0IHNhdHVyYXRpbmcgaGlnaGxpZ2h0cyBvciBzaGFkb3dzLlxuLy8gSXQgYWxsb3dzIGNvbnRyb2wgb3ZlciB0d28gZmFjdG9yczpcbi8vIHRoZSBjb250cmFzdCByYW5nZSBmcm9tIGxpZ2h0IHRvIGRhcmssIGFuZCB3aGVyZSB0aGUgbWlkZGxlIHZhbHVlXG4vLyBvZiB0aGUgbWlkLXRvbmVzIGZhbGxzLiBUaGUgcmVzdWx0IGlzIGEgbm9uLWxpbmVhciBhbmQgc21vb3RoXG4vLyBjb250cmFzdCBjaGFuZ2UuXG4vLyBQYXJhbWV0ZXJzXG4vLyAtLS0tLS0tLS0tXG4vLyBhcnIgOiBuZGFycmF5LCBmbG9hdCwgMCAuLiAxXG4vLyAgICAgQXJyYXkgb2YgY29sb3IgdmFsdWVzIHRvIGFkanVzdFxuLy8gY29udHJhc3QgOiBpbnRlZ2VyXG4vLyAgICAgRW5oYW5jZXMgdGhlIGludGVuc2l0eSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBsaWdodGVyIGFuZCBkYXJrZXJcbi8vICAgICBlbGVtZW50cyBvZiB0aGUgaW1hZ2UuIEZvciBleGFtcGxlLCAwIGlzIG5vbmUsIDMgaXMgdHlwaWNhbCBhbmRcbi8vICAgICAyMCBpcyBhIGxvdC5cbi8vIGJpYXMgOiBmbG9hdCwgYmV0d2VlbiAwIGFuZCAxXG4vLyAgICAgVGhyZXNob2xkIGxldmVsIGZvciB0aGUgY29udHJhc3QgZnVuY3Rpb24gdG8gY2VudGVyIG9uXG4vLyAgICAgKHR5cGljYWxseSBjZW50ZXJlZCBhdCAwLjUpXG4vLyBOb3Rlc1xuLy8gLS0tLS0tLS0tLVxuLy8gU2lnbW9pZGFsIGNvbnRyYXN0IGlzIGJhc2VkIG9uIHRoZSBzaWdtb2lkYWwgdHJhbnNmZXIgZnVuY3Rpb246XG4vLyAuLiBtYXRoOjogZyh1KSA9ICggMS8oMSArIGVeey0gXFxhbHBoYSAqIHUgKyBcXGJldGEpfSlcbi8vIFRoaXMgc2lnbW9pZCBmdW5jdGlvbiBpcyBzY2FsZWQgc28gdGhhdCB0aGUgb3V0cHV0IGlzIGJvdW5kIGJ5XG4vLyB0aGUgaW50ZXJ2YWwgWzAsIDFdLlxuLy8gLi4gbWF0aDo6ICggMS8oMSArIGVeKFxcYmV0YSAqIChcXGFscGhhIC0gdSkpKSAtIDEvKDEgKyBlXihcXGJldGEgKiBcXGFscGhhKSkpL1xuLy8gICAgICggMS8oMSArIGVeKFxcYmV0YSooXFxhbHBoYSAtIDEpKSkgLSAxLygxICsgZV4oXFxiZXRhICogXFxhbHBoYSkpIClcbi8vIFdoZXJlIDptYXRoOiBgXFxhbHBoYWAgaXMgdGhlIHRocmVzaG9sZCBsZXZlbCwgYW5kIDptYXRoOiBgXFxiZXRhYCB0aGVcbi8vIGNvbnRyYXN0IGZhY3RvciB0byBiZSBhcHBsaWVkLlxuLy8gUmVmZXJlbmNlc1xuLy8gLS0tLS0tLS0tLVxuLy8gLi4gW0NUXSBIYW55IEZhcmlkIFwiRnVuZGFtZW50YWxzIG9mIEltYWdlIFByb2Nlc3NpbmdcIlxuLy8gICAgICAgICBodHRwOi8vd3d3LmNzLmRhcnRtb3V0aC5lZHUvZmFyaWQvZG93bmxvYWRzL3R1dG9yaWFscy9maXAucGRmXG5jb25zdCBmcyA9IGBcXFxuI2RlZmluZSBlcHNpbG9uIDAuMDAwMDAwMDFcblxudW5pZm9ybSBzaWdtb2lkYWxDb250cmFzdFVuaWZvcm1zIHtcbiAgZmxvYXQgY29udHJhc3Q7XG4gIGZsb2F0IGJpYXM7XG59IHNpZ21vaWRhbENvbnRyYXN0O1xuXG4vLyBOT1RFOiBJbnB1dCBhcnJheSBtdXN0IGhhdmUgZmxvYXQgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSFcbi8vIE5PVEU6IGJpYXMgbXVzdCBiZSBhIHNjYWxhciBmbG9hdCBiZXR3ZWVuIDAgYW5kIDEhXG52ZWM0IGNhbGN1bGF0ZVNpZ21vaWRhbENvbnRyYXN0KHZlYzQgYXJyLCBmbG9hdCBjb250cmFzdCwgZmxvYXQgYmlhcykge1xuICAvLyBXZSB1c2UgdGhlIG5hbWVzIGFscGhhIGFuZCBiZXRhIHRvIG1hdGNoIGRvY3VtZW50YXRpb24uXG4gIGZsb2F0IGFscGhhID0gYmlhcztcbiAgZmxvYXQgYmV0YSA9IGNvbnRyYXN0O1xuXG4gIC8vIGFscGhhIG11c3QgYmUgPj0gMFxuICBhbHBoYSA9IGNsYW1wKGFscGhhLCBlcHNpbG9uLCBhbHBoYSk7XG5cbiAgaWYgKGJldGEgPiAwLikge1xuICAgIHZlYzQgbnVtZXJhdG9yID0gMS4gLyAoMS4gKyBleHAoYmV0YSAqIChhbHBoYSAtIGFycikpKSAtIDEuIC8gKFxuICAgICAgMS4gKyBleHAoYmV0YSAqIGFscGhhKVxuICAgICk7XG4gICAgZmxvYXQgZGVub21pbmF0b3IgPSAxLiAvICgxLiArIGV4cChiZXRhICogKGFscGhhIC0gMS4pKSkgLSAxLiAvIChcbiAgICAgIDEuICsgZXhwKGJldGEgKiBhbHBoYSlcbiAgICApO1xuICAgIGFyciA9IG51bWVyYXRvciAvIGRlbm9taW5hdG9yO1xuICB9IGVsc2UgaWYgKGJldGEgPCAwLikge1xuICAgIGFyciA9IChcbiAgICAgIChiZXRhICogYWxwaGEpIC0gbG9nKFxuICAgICAgICAoXG4gICAgICAgICAgMS4wIC8gKFxuICAgICAgICAgICAgKGFyciAvICgxLjAgKyBleHAoKGJldGEgKiBhbHBoYSkgLSBiZXRhKSkpIC1cbiAgICAgICAgICAgIChhcnIgLyAoMS4wICsgZXhwKGJldGEgKiBhbHBoYSkpKSArXG4gICAgICAgICAgICAoMS4wIC8gKDEuMCArIGV4cChiZXRhICogYWxwaGEpKSlcbiAgICAgICAgICApXG4gICAgICAgICkgLSAxLjApXG4gICAgKSAvIGJldGE7XG4gIH1cblxuICByZXR1cm4gYXJyO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMoXG4gIG9wdHM6IHtzaWdtb2lkYWxDb250cmFzdD86IG51bWJlcjsgc2lnbW9pZGFsQmlhcz86IG51bWJlcn0gPSB7fVxuKTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7c2lnbW9pZGFsQ29udHJhc3QsIHNpZ21vaWRhbEJpYXN9ID0gb3B0cztcblxuICBpZiAoIShOdW1iZXIuaXNGaW5pdGUoc2lnbW9pZGFsQ29udHJhc3QpIHx8IE51bWJlci5pc0Zpbml0ZShzaWdtb2lkYWxCaWFzKSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY29udHJhc3Q6IE51bWJlci5pc0Zpbml0ZShzaWdtb2lkYWxDb250cmFzdCkgPyBzaWdtb2lkYWxDb250cmFzdCA6IDAsXG4gICAgYmlhczogTnVtYmVyLmlzRmluaXRlKHNpZ21vaWRhbEJpYXMpID8gc2lnbW9pZGFsQmlhcyA6IDAuNVxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2lnbW9pZGFsQ29udHJhc3Q6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3NpZ21vaWRhbENvbnRyYXN0JyxcbiAgZnMsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGNvbnRyYXN0OiAnZjMyJyxcbiAgICBiaWFzOiAnZjMyJ1xuICB9LFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSBjYWxjdWxhdGVTaWdtb2lkYWxDb250cmFzdChpbWFnZSwgc2lnbW9pZGFsQ29udHJhc3QuY29udHJhc3QsIHNpZ21vaWRhbENvbnRyYXN0LmJpYXMpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLHlrQ0F5Q1A7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBRUM7RUFBQSxJQURuQkMsSUFBMEQsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBRS9ELElBQU9HLGlCQUFpQixHQUFtQkosSUFBSSxDQUF4Q0ksaUJBQWlCO0lBQUVDLGFBQWEsR0FBSUwsSUFBSSxDQUFyQkssYUFBYTtFQUV2QyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxpQkFBaUIsQ0FBQyxJQUFJRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsYUFBYSxDQUFDLENBQUMsRUFBRTtJQUMzRSxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEcsUUFBUSxFQUFFRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsaUJBQWlCLENBQUMsR0FBR0EsaUJBQWlCLEdBQUcsQ0FBQztJQUNwRUssSUFBSSxFQUFFSCxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsYUFBYSxDQUFDLEdBQUdBLGFBQWEsR0FBRztFQUN6RCxDQUFDO0FBQ0g7QUFFTyxJQUFNRCxpQkFBK0IsR0FBQU0sT0FBQSxDQUFBTixpQkFBQSxHQUFHO0VBQzdDTyxJQUFJLEVBQUUsbUJBQW1CO0VBQ3pCYixFQUFFLEVBQUZBLEVBQUU7RUFDRmMsWUFBWSxFQUFFO0lBQ1pKLFFBQVEsRUFBRSxLQUFLO0lBQ2ZDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRFYsV0FBVyxFQUFYQSxXQUFXO0VBQ1hjLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -132,4 +132,4 @@ var _evi = require("./spectral-indices/evi");
132
132
  var _msavi = require("./spectral-indices/msavi");
133
133
  var _normalizedDifference = require("./spectral-indices/normalized-difference");
134
134
  var _savi = require("./spectral-indices/savi");
135
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tYmluZUJhbmRzIiwicmVxdWlyZSIsIl9yZ2JhSW1hZ2UiLCJfbWFzayIsIl9yZW9yZGVyQmFuZHMiLCJfY29sb3JtYXAiLCJfbGluZWFyUmVzY2FsZSIsIl9zaWdtb2lkYWxDb250cmFzdCIsIl9nYW1tYUNvbnRyYXN0IiwiX3NhdHVyYXRpb24iLCJfZmlsdGVyIiwiX3BhbnNoYXJwZW5Ccm92ZXkiLCJfZXZpIiwiX21zYXZpIiwiX25vcm1hbGl6ZWREaWZmZXJlbmNlIiwiX3NhdmkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIENyZWF0ZSB0ZXh0dXJlXG5leHBvcnQge2NvbWJpbmVCYW5kc0Zsb2F0LCBjb21iaW5lQmFuZHNVaW50LCBjb21iaW5lQmFuZHNJbnR9IGZyb20gJy4vdGV4dHVyZS9jb21iaW5lLWJhbmRzJztcbmV4cG9ydCB7cmdiYUltYWdlfSBmcm9tICcuL3RleHR1cmUvcmdiYS1pbWFnZSc7XG5leHBvcnQge21hc2tGbG9hdCwgbWFza1VpbnQsIG1hc2tJbnR9IGZyb20gJy4vdGV4dHVyZS9tYXNrJztcbmV4cG9ydCB7cmVvcmRlckJhbmRzfSBmcm9tICcuL3RleHR1cmUvcmVvcmRlci1iYW5kcyc7XG5cbi8vIENvbG9yIG9wZXJhdGlvbnNcbmV4cG9ydCB7Y29sb3JtYXB9IGZyb20gJy4vY29sb3IvY29sb3JtYXAnO1xuZXhwb3J0IHtsaW5lYXJSZXNjYWxlfSBmcm9tICcuL2NvbG9yL2xpbmVhci1yZXNjYWxlJztcbmV4cG9ydCB7c2lnbW9pZGFsQ29udHJhc3R9IGZyb20gJy4vY29sb3Ivc2lnbW9pZGFsLWNvbnRyYXN0JztcbmV4cG9ydCB7Z2FtbWFDb250cmFzdH0gZnJvbSAnLi9jb2xvci9nYW1tYS1jb250cmFzdCc7XG5leHBvcnQge3NhdHVyYXRpb259IGZyb20gJy4vY29sb3Ivc2F0dXJhdGlvbic7XG5leHBvcnQge2ZpbHRlcn0gZnJvbSAnLi9jb2xvci9maWx0ZXInO1xuXG4vLyBQYW5zaGFycGVuaW5nXG5leHBvcnQge3BhbnNoYXJwZW5Ccm92ZXl9IGZyb20gJy4vcGFuc2hhcnBlbi9wYW5zaGFycGVuLWJyb3ZleSc7XG5cbi8vIFNwZWN0cmFsIGluZGljZXNcbmV4cG9ydCB7ZW5oYW5jZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ldmknO1xuZXhwb3J0IHttb2RpZmllZFNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleH0gZnJvbSAnLi9zcGVjdHJhbC1pbmRpY2VzL21zYXZpJztcbmV4cG9ydCB7bm9ybWFsaXplZERpZmZlcmVuY2V9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ub3JtYWxpemVkLWRpZmZlcmVuY2UnO1xuZXhwb3J0IHtzb2lsQWRqdXN0ZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9zYXZpJztcblxuZXhwb3J0IHR5cGUge1NoYWRlck1vZHVsZX0gZnJvbSAnLi90eXBlcyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLGlCQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFBVyxJQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxxQkFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsS0FBQSxHQUFBZCxPQUFBIiwiaWdub3JlTGlzdCI6W119
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tYmluZUJhbmRzIiwicmVxdWlyZSIsIl9yZ2JhSW1hZ2UiLCJfbWFzayIsIl9yZW9yZGVyQmFuZHMiLCJfY29sb3JtYXAiLCJfbGluZWFyUmVzY2FsZSIsIl9zaWdtb2lkYWxDb250cmFzdCIsIl9nYW1tYUNvbnRyYXN0IiwiX3NhdHVyYXRpb24iLCJfZmlsdGVyIiwiX3BhbnNoYXJwZW5Ccm92ZXkiLCJfZXZpIiwiX21zYXZpIiwiX25vcm1hbGl6ZWREaWZmZXJlbmNlIiwiX3NhdmkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIENyZWF0ZSB0ZXh0dXJlXG5leHBvcnQge2NvbWJpbmVCYW5kc0Zsb2F0LCBjb21iaW5lQmFuZHNVaW50LCBjb21iaW5lQmFuZHNJbnR9IGZyb20gJy4vdGV4dHVyZS9jb21iaW5lLWJhbmRzJztcbmV4cG9ydCB7cmdiYUltYWdlfSBmcm9tICcuL3RleHR1cmUvcmdiYS1pbWFnZSc7XG5leHBvcnQge21hc2tGbG9hdCwgbWFza1VpbnQsIG1hc2tJbnR9IGZyb20gJy4vdGV4dHVyZS9tYXNrJztcbmV4cG9ydCB7cmVvcmRlckJhbmRzfSBmcm9tICcuL3RleHR1cmUvcmVvcmRlci1iYW5kcyc7XG5cbi8vIENvbG9yIG9wZXJhdGlvbnNcbmV4cG9ydCB7Y29sb3JtYXB9IGZyb20gJy4vY29sb3IvY29sb3JtYXAnO1xuZXhwb3J0IHtsaW5lYXJSZXNjYWxlfSBmcm9tICcuL2NvbG9yL2xpbmVhci1yZXNjYWxlJztcbmV4cG9ydCB7c2lnbW9pZGFsQ29udHJhc3R9IGZyb20gJy4vY29sb3Ivc2lnbW9pZGFsLWNvbnRyYXN0JztcbmV4cG9ydCB7Z2FtbWFDb250cmFzdH0gZnJvbSAnLi9jb2xvci9nYW1tYS1jb250cmFzdCc7XG5leHBvcnQge3NhdHVyYXRpb259IGZyb20gJy4vY29sb3Ivc2F0dXJhdGlvbic7XG5leHBvcnQge2ZpbHRlcn0gZnJvbSAnLi9jb2xvci9maWx0ZXInO1xuXG4vLyBQYW5zaGFycGVuaW5nXG5leHBvcnQge3BhbnNoYXJwZW5Ccm92ZXl9IGZyb20gJy4vcGFuc2hhcnBlbi9wYW5zaGFycGVuLWJyb3ZleSc7XG5cbi8vIFNwZWN0cmFsIGluZGljZXNcbmV4cG9ydCB7ZW5oYW5jZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ldmknO1xuZXhwb3J0IHttb2RpZmllZFNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleH0gZnJvbSAnLi9zcGVjdHJhbC1pbmRpY2VzL21zYXZpJztcbmV4cG9ydCB7bm9ybWFsaXplZERpZmZlcmVuY2V9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9ub3JtYWxpemVkLWRpZmZlcmVuY2UnO1xuZXhwb3J0IHtzb2lsQWRqdXN0ZWRWZWdldGF0aW9uSW5kZXh9IGZyb20gJy4vc3BlY3RyYWwtaW5kaWNlcy9zYXZpJztcblxuZXhwb3J0IHR5cGUge1NoYWRlck1vZHVsZX0gZnJvbSAnLi90eXBlcyc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLGlCQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFBVyxJQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxxQkFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsS0FBQSxHQUFBZCxPQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pansharpenBrovey = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // Brovey Method: Each resampled, multispectral pixel is
11
+ // multiplied by the ratio of the corresponding
12
+ // panchromatic pixel intensity to the sum of all the
13
+ // multispectral intensities.
14
+ // Original code from https://github.com/mapbox/rio-pansharpen
15
+ //
16
+ var fs1 = "uniform sampler2D bitmapTexturePan;\n\nuniform pansharpen_broveyUniforms {\n float panWeight;\n} pansharpen_brovey;\n\nfloat pansharpen_brovey_ratio(vec4 rgb, float pan, float weight) {\n return pan / ((rgb.r + rgb.g + rgb.b * weight) / (2. + weight));\n}\n\nvec4 pansharpen_brovey_calc(vec4 rgb, float pan, float weight) {\n float ratio = pansharpen_brovey_ratio(rgb, pan, weight);\n return ratio * rgb;\n}\n";
17
+ var fs2 = "precision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTexturePan;\n#else\n uniform sampler2D bitmapTexturePan;\n#endif\n\nuniform pansharpen_broveyUniforms {\n float panWeight;\n} pansharpen_brovey;\n\nfloat pansharpen_brovey_ratio(vec4 rgb, float pan, float weight) {\n return pan / ((rgb.r + rgb.g + rgb.b * weight) / (2. + weight));\n}\n\nvec4 pansharpen_brovey_calc(vec4 rgb, float pan, float weight) {\n float ratio = pansharpen_brovey_ratio(rgb, pan, weight);\n return ratio * rgb;\n}\n";
18
+ function getUniforms() {
19
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
+ var imagePan = opts.imagePan,
21
+ _opts$panWeight = opts.panWeight,
22
+ panWeight = _opts$panWeight === void 0 ? 0.2 : _opts$panWeight;
23
+ if (!imagePan) {
24
+ return null;
25
+ }
26
+ return {
27
+ bitmapTexturePan: imagePan,
28
+ panWeight: panWeight
29
+ };
30
+ }
31
+ var pansharpenBrovey = exports.pansharpenBrovey = {
32
+ name: 'pansharpen_brovey',
33
+ fs1: fs1,
34
+ fs2: fs2,
35
+ uniformTypes: {
36
+ panWeight: 'f32'
37
+ },
38
+ defines: {
39
+ SAMPLER_TYPE: 'sampler2D'
40
+ },
41
+ getUniforms: getUniforms,
42
+ inject: {
43
+ 'fs:DECKGL_MUTATE_COLOR': "\n float pan_band = float(texture(bitmapTexturePan, coord).r);\n image = pansharpen_brovey_calc(image, pan_band, pansharpen_brovey.panWeight);\n "
44
+ }
45
+ };
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmczEiLCJmczIiLCJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZVBhbiIsIl9vcHRzJHBhbldlaWdodCIsInBhbldlaWdodCIsImJpdG1hcFRleHR1cmVQYW4iLCJwYW5zaGFycGVuQnJvdmV5IiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9wYW5zaGFycGVuL3BhbnNoYXJwZW4tYnJvdmV5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB0eXBlIHtUZXh0dXJlfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBCcm92ZXkgTWV0aG9kOiBFYWNoIHJlc2FtcGxlZCwgbXVsdGlzcGVjdHJhbCBwaXhlbCBpc1xuLy8gbXVsdGlwbGllZCBieSB0aGUgcmF0aW8gb2YgdGhlIGNvcnJlc3BvbmRpbmdcbi8vIHBhbmNocm9tYXRpYyBwaXhlbCBpbnRlbnNpdHkgdG8gdGhlIHN1bSBvZiBhbGwgdGhlXG4vLyBtdWx0aXNwZWN0cmFsIGludGVuc2l0aWVzLlxuLy8gT3JpZ2luYWwgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvcmlvLXBhbnNoYXJwZW5cbi8vXG5jb25zdCBmczEgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVQYW47XG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuY29uc3QgZnMyID0gYFxcXG5wcmVjaXNpb24gbWVkaXVtcCB1c2FtcGxlcjJEO1xuXG4jaWZkZWYgU0FNUExFUl9UWVBFXG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVQYW47XG4jZWxzZVxuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUGFuO1xuI2VuZGlmXG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlUGFuPzogVGV4dHVyZTsgcGFuV2VpZ2h0PzogbnVtYmVyfSA9IHt9KTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7aW1hZ2VQYW4sIHBhbldlaWdodCA9IDAuMn0gPSBvcHRzO1xuXG4gIGlmICghaW1hZ2VQYW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYml0bWFwVGV4dHVyZVBhbjogaW1hZ2VQYW4sXG4gICAgcGFuV2VpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBwYW5zaGFycGVuQnJvdmV5OiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdwYW5zaGFycGVuX2Jyb3ZleScsXG4gIGZzMSxcbiAgZnMyLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBwYW5XZWlnaHQ6ICdmMzInXG4gIH0sXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdzYW1wbGVyMkQnXG4gIH0sXG4gIGdldFVuaWZvcm1zLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBwYW5fYmFuZCA9IGZsb2F0KHRleHR1cmUoYml0bWFwVGV4dHVyZVBhbiwgY29vcmQpLnIpO1xuICAgIGltYWdlID0gcGFuc2hhcnBlbl9icm92ZXlfY2FsYyhpbWFnZSwgcGFuX2JhbmQsIHBhbnNoYXJwZW5fYnJvdmV5LnBhbldlaWdodCk7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEdBQUcsa2FBZVI7QUFFRCxJQUFNQyxHQUFHLG1oQkFxQlI7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBQXlFO0VBQUEsSUFBeEVDLElBQThDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUN0RSxJQUFPRyxRQUFRLEdBQXFCSixJQUFJLENBQWpDSSxRQUFRO0lBQUFDLGVBQUEsR0FBcUJMLElBQUksQ0FBdkJNLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxlQUFBLGNBQUcsR0FBRyxHQUFBQSxlQUFBO0VBRWhDLElBQUksQ0FBQ0QsUUFBUSxFQUFFO0lBQ2IsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPO0lBQ0xHLGdCQUFnQixFQUFFSCxRQUFRO0lBQzFCRSxTQUFTLEVBQVRBO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTUUsZ0JBQThCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRztFQUM1Q0UsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QmIsR0FBRyxFQUFIQSxHQUFHO0VBQ0hDLEdBQUcsRUFBSEEsR0FBRztFQUNIYSxZQUFZLEVBQUU7SUFDWkwsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNETSxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCLENBQUM7RUFDRGQsV0FBVyxFQUFYQSxXQUFXO0VBQ1hlLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUkxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.enhancedVegetationIndex = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // Calculate enhanced vegetation index
11
+ // Expected to be ordered:
12
+ // red: Landsat 8 band 5
13
+ // green: Landsat 8 band 4
14
+ // blue: Landsat 8 band 2
15
+ //
16
+ // EVI = 2.5 * ((Band 5 – Band 4) / (Band 5 + 6 * Band 4 – 7.5 * Band 2 + 1))
17
+ // https://www.usgs.gov/land-resources/nli/landsat/landsat-enhanced-vegetation-index
18
+ var fs = "float enhanced_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n float band2 = image.b;\n\n float numerator = band5 - band4;\n float denominator = band5 + (6. * band4) - (7.5 * band2) + 1.;\n return 2.5 * (numerator / denominator);\n}\n";
19
+ var enhancedVegetationIndex = exports.enhancedVegetationIndex = {
20
+ name: 'enhanced_vegetation_index',
21
+ fs: fs,
22
+ inject: {
23
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(enhanced_vegetation_index_calc(image), 0., 0., 0.);\n "
24
+ }
25
+ };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImVuaGFuY2VkVmVnZXRhdGlvbkluZGV4IiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvZXZpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIENhbGN1bGF0ZSBlbmhhbmNlZCB2ZWdldGF0aW9uIGluZGV4XG4vLyBFeHBlY3RlZCB0byBiZSBvcmRlcmVkOlxuLy8gcmVkOiBMYW5kc2F0IDggYmFuZCA1XG4vLyBncmVlbjogTGFuZHNhdCA4IGJhbmQgNFxuLy8gYmx1ZTogTGFuZHNhdCA4IGJhbmQgMlxuLy9cbi8vIEVWSSA9IDIuNSAqICgoQmFuZCA1IOKAkyBCYW5kIDQpIC8gKEJhbmQgNSArIDYgKiBCYW5kIDQg4oCTIDcuNSAqIEJhbmQgMiArIDEpKVxuLy8gaHR0cHM6Ly93d3cudXNncy5nb3YvbGFuZC1yZXNvdXJjZXMvbmxpL2xhbmRzYXQvbGFuZHNhdC1lbmhhbmNlZC12ZWdldGF0aW9uLWluZGV4XG5jb25zdCBmcyA9IGBcXFxuZmxvYXQgZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKHZlYzQgaW1hZ2UpIHtcbiAgZmxvYXQgYmFuZDUgPSBpbWFnZS5yO1xuICBmbG9hdCBiYW5kNCA9IGltYWdlLmc7XG4gIGZsb2F0IGJhbmQyID0gaW1hZ2UuYjtcblxuICBmbG9hdCBudW1lcmF0b3IgPSBiYW5kNSAtIGJhbmQ0O1xuICBmbG9hdCBkZW5vbWluYXRvciA9IGJhbmQ1ICsgKDYuICogYmFuZDQpIC0gKDcuNSAqIGJhbmQyKSArIDEuO1xuICByZXR1cm4gMi41ICogKG51bWVyYXRvciAvIGRlbm9taW5hdG9yKTtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBlbmhhbmNlZFZlZ2V0YXRpb25JbmRleDogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleCcsXG4gIGZzLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IHZlYzQoZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKGltYWdlKSwgMC4sIDAuLCAwLik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLDZSQVVQO0FBRU0sSUFBTUMsdUJBQXFDLEdBQUFDLE9BQUEsQ0FBQUQsdUJBQUEsR0FBRztFQUNuREUsSUFBSSxFQUFFLDJCQUEyQjtFQUNqQ0gsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZJLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.modifiedSoilAdjustedVegetationIndex = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // Calculate modified soil-adjusted vegetation index
11
+ // Expected to be ordered:
12
+ // red: Landsat 8 band 5
13
+ // green: Landsat 8 band 4
14
+ //
15
+ // MSAVI = (2 * Band 5 + 1 – sqrt ((2 * Band 5 + 1)^2 – 8 * (Band 5 – Band 4))) / 2
16
+ // https://www.usgs.gov/land-resources/nli/landsat/landsat-modified-soil-adjusted-vegetation-index
17
+ var fs = "float modified_soil_adjusted_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n\n float to_sqrt = ((2. * band5 + 1.) * (2. * band5 + 1.)) - (8. * (band5 - band4));\n return ((2. * band5) + 1. - sqrt(to_sqrt)) / 2.;\n}\n";
18
+ var modifiedSoilAdjustedVegetationIndex = exports.modifiedSoilAdjustedVegetationIndex = {
19
+ name: 'modified_soil_adjusted_vegetation_index',
20
+ fs: fs,
21
+ inject: {
22
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(modified_soil_adjusted_vegetation_index_calc(image), 0., 0., 0.);\n "
23
+ }
24
+ };
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIm1vZGlmaWVkU29pbEFkanVzdGVkVmVnZXRhdGlvbkluZGV4IiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvbXNhdmkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gQ2FsY3VsYXRlIG1vZGlmaWVkIHNvaWwtYWRqdXN0ZWQgdmVnZXRhdGlvbiBpbmRleFxuLy8gRXhwZWN0ZWQgdG8gYmUgb3JkZXJlZDpcbi8vIHJlZDogTGFuZHNhdCA4IGJhbmQgNVxuLy8gZ3JlZW46IExhbmRzYXQgOCBiYW5kIDRcbi8vXG4vLyBNU0FWSSA9ICgyICogQmFuZCA1ICsgMSDigJMgc3FydCAoKDIgKiBCYW5kIDUgKyAxKV4yIOKAkyA4ICogKEJhbmQgNSDigJMgQmFuZCA0KSkpIC8gMlxuLy8gaHR0cHM6Ly93d3cudXNncy5nb3YvbGFuZC1yZXNvdXJjZXMvbmxpL2xhbmRzYXQvbGFuZHNhdC1tb2RpZmllZC1zb2lsLWFkanVzdGVkLXZlZ2V0YXRpb24taW5kZXhcbmNvbnN0IGZzID0gYFxcXG5mbG9hdCBtb2RpZmllZF9zb2lsX2FkanVzdGVkX3ZlZ2V0YXRpb25faW5kZXhfY2FsYyh2ZWM0IGltYWdlKSB7XG4gIGZsb2F0IGJhbmQ1ID0gaW1hZ2UucjtcbiAgZmxvYXQgYmFuZDQgPSBpbWFnZS5nO1xuXG4gIGZsb2F0IHRvX3NxcnQgPSAoKDIuICogYmFuZDUgKyAxLikgKiAoMi4gKiBiYW5kNSArIDEuKSkgLSAoOC4gKiAoYmFuZDUgLSBiYW5kNCkpO1xuICByZXR1cm4gKCgyLiAqIGJhbmQ1KSArIDEuIC0gc3FydCh0b19zcXJ0KSkgLyAyLjtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBtb2RpZmllZFNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleDogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnbW9kaWZpZWRfc29pbF9hZGp1c3RlZF92ZWdldGF0aW9uX2luZGV4JyxcbiAgZnMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gdmVjNChtb2RpZmllZF9zb2lsX2FkanVzdGVkX3ZlZ2V0YXRpb25faW5kZXhfY2FsYyhpbWFnZSksIDAuLCAwLiwgMC4pO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEVBQUUseVFBUVA7QUFFTSxJQUFNQyxtQ0FBaUQsR0FBQUMsT0FBQSxDQUFBRCxtQ0FBQSxHQUFHO0VBQy9ERSxJQUFJLEVBQUUseUNBQXlDO0VBQy9DSCxFQUFFLEVBQUZBLEVBQUU7RUFDRkksTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBRzFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizedDifference = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // Calculate standard normalized difference
11
+ var fs = "float normalized_difference_calc(vec4 image) {\n return ((image.r - image.g) / (image.r + image.g));\n}\n";
12
+ var normalizedDifference = exports.normalizedDifference = {
13
+ name: 'normalized_difference',
14
+ fs: fs,
15
+ inject: {
16
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(normalized_difference_calc(image), 0., 0., 0.);\n "
17
+ }
18
+ };
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIm5vcm1hbGl6ZWREaWZmZXJlbmNlIiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvbm9ybWFsaXplZC1kaWZmZXJlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIENhbGN1bGF0ZSBzdGFuZGFyZCBub3JtYWxpemVkIGRpZmZlcmVuY2VcbmNvbnN0IGZzID0gYFxcXG5mbG9hdCBub3JtYWxpemVkX2RpZmZlcmVuY2VfY2FsYyh2ZWM0IGltYWdlKSB7XG4gIHJldHVybiAoKGltYWdlLnIgLSBpbWFnZS5nKSAvIChpbWFnZS5yICsgaW1hZ2UuZykpO1xufVxuYDtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZWREaWZmZXJlbmNlOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdub3JtYWxpemVkX2RpZmZlcmVuY2UnLFxuICBmcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSB2ZWM0KG5vcm1hbGl6ZWRfZGlmZmVyZW5jZV9jYWxjKGltYWdlKSwgMC4sIDAuLCAwLik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0EsSUFBTUEsRUFBRSwrR0FJUDtBQUVNLElBQU1DLG9CQUFrQyxHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUc7RUFDaERFLElBQUksRUFBRSx1QkFBdUI7RUFDN0JILEVBQUUsRUFBRkEsRUFBRTtFQUNGSSxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.soilAdjustedVegetationIndex = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ // Calculate soil-adjusted vegetation index
11
+ // SAVI = ((Band 5 – Band 4) / (Band 5 + Band 4 + 0.5)) * (1.5).
12
+ // https://www.usgs.gov/land-resources/nli/landsat/landsat-soil-adjusted-vegetation-index
13
+ var fs = "float soil_adjusted_vegetation_index_calc(vec4 image) {\n float band5 = image.r;\n float band4 = image.g;\n\n float numerator = band5 - band4;\n float denominator = (band5 + band4 + 0.5) * 1.5;\n return numerator / denominator;\n}\n";
14
+ var soilAdjustedVegetationIndex = exports.soilAdjustedVegetationIndex = {
15
+ name: 'soil_adjusted_vegetation_index',
16
+ fs: fs,
17
+ inject: {
18
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(soil_adjusted_vegetation_index_calc(image), 0., 0., 0.);\n "
19
+ }
20
+ };
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsInNvaWxBZGp1c3RlZFZlZ2V0YXRpb25JbmRleCIsImV4cG9ydHMiLCJuYW1lIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9zcGVjdHJhbC1pbmRpY2VzL3NhdmkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gQ2FsY3VsYXRlIHNvaWwtYWRqdXN0ZWQgdmVnZXRhdGlvbiBpbmRleFxuLy8gU0FWSSA9ICgoQmFuZCA1IOKAkyBCYW5kIDQpIC8gKEJhbmQgNSArIEJhbmQgNCArIDAuNSkpICogKDEuNSkuXG4vLyBodHRwczovL3d3dy51c2dzLmdvdi9sYW5kLXJlc291cmNlcy9ubGkvbGFuZHNhdC9sYW5kc2F0LXNvaWwtYWRqdXN0ZWQtdmVnZXRhdGlvbi1pbmRleFxuY29uc3QgZnMgPSBgXFxcbmZsb2F0IHNvaWxfYWRqdXN0ZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKHZlYzQgaW1hZ2UpIHtcbiAgZmxvYXQgYmFuZDUgPSBpbWFnZS5yO1xuICBmbG9hdCBiYW5kNCA9IGltYWdlLmc7XG5cbiAgZmxvYXQgbnVtZXJhdG9yID0gYmFuZDUgLSBiYW5kNDtcbiAgZmxvYXQgZGVub21pbmF0b3IgPSAoYmFuZDUgKyBiYW5kNCArIDAuNSkgKiAxLjU7XG4gIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBzb2lsQWRqdXN0ZWRWZWdldGF0aW9uSW5kZXg6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3NvaWxfYWRqdXN0ZWRfdmVnZXRhdGlvbl9pbmRleCcsXG4gIGZzLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IHZlYzQoc29pbF9hZGp1c3RlZF92ZWdldGF0aW9uX2luZGV4X2NhbGMoaW1hZ2UpLCAwLiwgMC4sIDAuKTtcbiAgICBgXG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0EsSUFBTUEsRUFBRSxrUEFTUDtBQUVNLElBQU1DLDJCQUF5QyxHQUFBQyxPQUFBLENBQUFELDJCQUFBLEdBQUc7RUFDdkRFLElBQUksRUFBRSxnQ0FBZ0M7RUFDdENILEVBQUUsRUFBRkEsRUFBRTtFQUNGSSxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.combineBandsUint = exports.combineBandsInt = exports.combineBandsFloat = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ 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; }
11
+ 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; }
12
+ // SPDX-License-Identifier: MIT
13
+ // Copyright contributors to the kepler.gl project
14
+
15
+ function getUniforms() {
16
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ var imageBands = opts.imageBands;
18
+ if (!imageBands || imageBands.length === 0) {
19
+ return null;
20
+ }
21
+ var _imageBands = (0, _slicedToArray2["default"])(imageBands, 4),
22
+ bitmapTextureR = _imageBands[0],
23
+ bitmapTextureG = _imageBands[1],
24
+ bitmapTextureB = _imageBands[2],
25
+ bitmapTextureA = _imageBands[3];
26
+
27
+ // return default values to prevent deck.gl validation warnings.
28
+ // Note: all bands must be set for the shadow effect to work as expected.
29
+ return {
30
+ bitmapTextureR: bitmapTextureR || bitmapTextureR,
31
+ bitmapTextureG: bitmapTextureG || bitmapTextureR,
32
+ bitmapTextureB: bitmapTextureB || bitmapTextureR,
33
+ bitmapTextureA: bitmapTextureA || bitmapTextureR
34
+ };
35
+ }
36
+ var fs1 = "uniform sampler2D bitmapTextureR;\nuniform sampler2D bitmapTextureG;\nuniform sampler2D bitmapTextureB;\nuniform sampler2D bitmapTextureA;\n";
37
+ var fs2 = "precision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTextureR;\n uniform SAMPLER_TYPE bitmapTextureG;\n uniform SAMPLER_TYPE bitmapTextureB;\n uniform SAMPLER_TYPE bitmapTextureA;\n#else\n uniform sampler2D bitmapTextureR;\n uniform sampler2D bitmapTextureG;\n uniform sampler2D bitmapTextureB;\n uniform sampler2D bitmapTextureA;\n#endif\n";
38
+ var combineBands = {
39
+ name: 'combine-bands',
40
+ fs1: fs1,
41
+ fs2: fs2,
42
+ getUniforms: getUniforms,
43
+ defines: {
44
+ SAMPLER_TYPE: 'sampler2D'
45
+ },
46
+ inject: {
47
+ 'fs:DECKGL_CREATE_COLOR': "\n float channel1 = float(texture2D(bitmapTextureR, coord).r);\n float channel2 = float(texture2D(bitmapTextureG, coord).r);\n float channel3 = float(texture2D(bitmapTextureB, coord).r);\n float channel4 = float(texture2D(bitmapTextureA, coord).r);\n\n image = vec4(channel1, channel2, channel3, channel4);\n "
48
+ }
49
+ };
50
+ var combineBandsFloat = exports.combineBandsFloat = _objectSpread(_objectSpread({}, combineBands), {}, {
51
+ name: 'combine-bands-float'
52
+ });
53
+ var combineBandsUint = exports.combineBandsUint = _objectSpread(_objectSpread({}, combineBands), {}, {
54
+ name: 'combine-bands-uint',
55
+ defines: {
56
+ SAMPLER_TYPE: 'usampler2D'
57
+ }
58
+ });
59
+ var combineBandsInt = exports.combineBandsInt = _objectSpread(_objectSpread({}, combineBands), {}, {
60
+ name: 'combine-bands-int',
61
+ defines: {
62
+ SAMPLER_TYPE: 'isampler2D'
63
+ }
64
+ });
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZUJhbmRzIiwiX2ltYWdlQmFuZHMiLCJfc2xpY2VkVG9BcnJheTIiLCJiaXRtYXBUZXh0dXJlUiIsImJpdG1hcFRleHR1cmVHIiwiYml0bWFwVGV4dHVyZUIiLCJiaXRtYXBUZXh0dXJlQSIsImZzMSIsImZzMiIsImNvbWJpbmVCYW5kcyIsIm5hbWUiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0IiwiY29tYmluZUJhbmRzRmxvYXQiLCJleHBvcnRzIiwiX29iamVjdFNwcmVhZCIsImNvbWJpbmVCYW5kc1VpbnQiLCJjb21iaW5lQmFuZHNJbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3RleHR1cmUvY29tYmluZS1iYW5kcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlQmFuZHM/OiBUZXh0dXJlW119ID0ge30pOiBHZXRVbmlmb3Jtc091dHB1dCB7XG4gIGNvbnN0IHtpbWFnZUJhbmRzfSA9IG9wdHM7XG5cbiAgaWYgKCFpbWFnZUJhbmRzIHx8IGltYWdlQmFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBbYml0bWFwVGV4dHVyZVIsIGJpdG1hcFRleHR1cmVHLCBiaXRtYXBUZXh0dXJlQiwgYml0bWFwVGV4dHVyZUFdID0gaW1hZ2VCYW5kcztcblxuICAvLyByZXR1cm4gZGVmYXVsdCB2YWx1ZXMgdG8gcHJldmVudCBkZWNrLmdsIHZhbGlkYXRpb24gd2FybmluZ3MuXG4gIC8vIE5vdGU6IGFsbCBiYW5kcyBtdXN0IGJlIHNldCBmb3IgdGhlIHNoYWRvdyBlZmZlY3QgdG8gd29yayBhcyBleHBlY3RlZC5cbiAgcmV0dXJuIHtcbiAgICBiaXRtYXBUZXh0dXJlUjogYml0bWFwVGV4dHVyZVIgfHwgYml0bWFwVGV4dHVyZVIsXG4gICAgYml0bWFwVGV4dHVyZUc6IGJpdG1hcFRleHR1cmVHIHx8IGJpdG1hcFRleHR1cmVSLFxuICAgIGJpdG1hcFRleHR1cmVCOiBiaXRtYXBUZXh0dXJlQiB8fCBiaXRtYXBUZXh0dXJlUixcbiAgICBiaXRtYXBUZXh0dXJlQTogYml0bWFwVGV4dHVyZUEgfHwgYml0bWFwVGV4dHVyZVJcbiAgfTtcbn1cblxuY29uc3QgZnMxID0gYFxcXG51bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUjtcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVHO1xudW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZUI7XG51bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlQTtcbmA7XG5cbmNvbnN0IGZzMiA9IGBcXFxucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5wcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5wcmVjaXNpb24gbWVkaXVtcCB1c2FtcGxlcjJEO1xuXG4jaWZkZWYgU0FNUExFUl9UWVBFXG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVSO1xuICB1bmlmb3JtIFNBTVBMRVJfVFlQRSBiaXRtYXBUZXh0dXJlRztcbiAgdW5pZm9ybSBTQU1QTEVSX1RZUEUgYml0bWFwVGV4dHVyZUI7XG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVBO1xuI2Vsc2VcbiAgdW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZVI7XG4gIHVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVHO1xuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlQjtcbiAgdW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZUE7XG4jZW5kaWZcbmA7XG5cbmNvbnN0IGNvbWJpbmVCYW5kczogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnY29tYmluZS1iYW5kcycsXG4gIGZzMSxcbiAgZnMyLFxuICBnZXRVbmlmb3JtcyxcbiAgZGVmaW5lczoge1xuICAgIFNBTVBMRVJfVFlQRTogJ3NhbXBsZXIyRCdcbiAgfSxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9DUkVBVEVfQ09MT1InOiBgXG4gICAgZmxvYXQgY2hhbm5lbDEgPSBmbG9hdCh0ZXh0dXJlMkQoYml0bWFwVGV4dHVyZVIsIGNvb3JkKS5yKTtcbiAgICBmbG9hdCBjaGFubmVsMiA9IGZsb2F0KHRleHR1cmUyRChiaXRtYXBUZXh0dXJlRywgY29vcmQpLnIpO1xuICAgIGZsb2F0IGNoYW5uZWwzID0gZmxvYXQodGV4dHVyZTJEKGJpdG1hcFRleHR1cmVCLCBjb29yZCkucik7XG4gICAgZmxvYXQgY2hhbm5lbDQgPSBmbG9hdCh0ZXh0dXJlMkQoYml0bWFwVGV4dHVyZUEsIGNvb3JkKS5yKTtcblxuICAgIGltYWdlID0gdmVjNChjaGFubmVsMSwgY2hhbm5lbDIsIGNoYW5uZWwzLCBjaGFubmVsNCk7XG4gICAgYFxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY29tYmluZUJhbmRzRmxvYXQ6IFNoYWRlck1vZHVsZSA9IHtcbiAgLi4uY29tYmluZUJhbmRzLFxuICBuYW1lOiAnY29tYmluZS1iYW5kcy1mbG9hdCdcbn07XG5leHBvcnQgY29uc3QgY29tYmluZUJhbmRzVWludDogU2hhZGVyTW9kdWxlID0ge1xuICAuLi5jb21iaW5lQmFuZHMsXG4gIG5hbWU6ICdjb21iaW5lLWJhbmRzLXVpbnQnLFxuICBkZWZpbmVzOiB7XG4gICAgU0FNUExFUl9UWVBFOiAndXNhbXBsZXIyRCdcbiAgfVxufTtcbmV4cG9ydCBjb25zdCBjb21iaW5lQmFuZHNJbnQ6IFNoYWRlck1vZHVsZSA9IHtcbiAgLi4uY29tYmluZUJhbmRzLFxuICBuYW1lOiAnY29tYmluZS1iYW5kcy1pbnQnLFxuICBkZWZpbmVzOiB7XG4gICAgU0FNUExFUl9UWVBFOiAnaXNhbXBsZXIyRCdcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUtBLFNBQVNBLFdBQVdBLENBQUEsRUFBeUQ7RUFBQSxJQUF4REMsSUFBOEIsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBQ3RELElBQU9HLFVBQVUsR0FBSUosSUFBSSxDQUFsQkksVUFBVTtFQUVqQixJQUFJLENBQUNBLFVBQVUsSUFBSUEsVUFBVSxDQUFDRixNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQzFDLE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBQUcsV0FBQSxPQUFBQyxlQUFBLGFBQXlFRixVQUFVO0lBQTVFRyxjQUFjLEdBQUFGLFdBQUE7SUFBRUcsY0FBYyxHQUFBSCxXQUFBO0lBQUVJLGNBQWMsR0FBQUosV0FBQTtJQUFFSyxjQUFjLEdBQUFMLFdBQUE7O0VBRXJFO0VBQ0E7RUFDQSxPQUFPO0lBQ0xFLGNBQWMsRUFBRUEsY0FBYyxJQUFJQSxjQUFjO0lBQ2hEQyxjQUFjLEVBQUVBLGNBQWMsSUFBSUQsY0FBYztJQUNoREUsY0FBYyxFQUFFQSxjQUFjLElBQUlGLGNBQWM7SUFDaERHLGNBQWMsRUFBRUEsY0FBYyxJQUFJSDtFQUNwQyxDQUFDO0FBQ0g7QUFFQSxJQUFNSSxHQUFHLGlKQUtSO0FBRUQsSUFBTUMsR0FBRyxnYkFnQlI7QUFFRCxJQUFNQyxZQUEwQixHQUFHO0VBQ2pDQyxJQUFJLEVBQUUsZUFBZTtFQUNyQkgsR0FBRyxFQUFIQSxHQUFHO0VBQ0hDLEdBQUcsRUFBSEEsR0FBRztFQUNIYixXQUFXLEVBQVhBLFdBQVc7RUFDWGdCLE9BQU8sRUFBRTtJQUNQQyxZQUFZLEVBQUU7RUFDaEIsQ0FBQztFQUNEQyxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFRMUI7QUFDRixDQUFDO0FBRU0sSUFBTUMsaUJBQStCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBQUUsYUFBQSxDQUFBQSxhQUFBLEtBQ3ZDUCxZQUFZO0VBQ2ZDLElBQUksRUFBRTtBQUFxQixFQUM1QjtBQUNNLElBQU1PLGdCQUE4QixHQUFBRixPQUFBLENBQUFFLGdCQUFBLEdBQUFELGFBQUEsQ0FBQUEsYUFBQSxLQUN0Q1AsWUFBWTtFQUNmQyxJQUFJLEVBQUUsb0JBQW9CO0VBQzFCQyxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCO0FBQUMsRUFDRjtBQUNNLElBQU1NLGVBQTZCLEdBQUFILE9BQUEsQ0FBQUcsZUFBQSxHQUFBRixhQUFBLENBQUFBLGFBQUEsS0FDckNQLFlBQVk7RUFDZkMsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QkMsT0FBTyxFQUFFO0lBQ1BDLFlBQVksRUFBRTtFQUNoQjtBQUFDLEVBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.maskUint = exports.maskInt = exports.maskFloat = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ var inf = Math.pow(2, 62);
11
+ function getUniforms() {
12
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
+ var imageMask = opts.imageMask,
14
+ maskKeepMin = opts.maskKeepMin,
15
+ maskKeepMax = opts.maskKeepMax;
16
+ if (!imageMask) {
17
+ return null;
18
+ }
19
+ return {
20
+ bitmapTextureMask: imageMask,
21
+ keepMin: Number.isFinite(maskKeepMin) ? maskKeepMin : -inf,
22
+ keepMax: Number.isFinite(maskKeepMax) ? maskKeepMax : inf
23
+ };
24
+ }
25
+ var maskUniformTypes = {
26
+ keepMin: 'f32',
27
+ keepMax: 'f32'
28
+ };
29
+ function makeMaskModule(name, samplerType) {
30
+ var blockDecl = "uniform ".concat(name, "Uniforms {\n float keepMin;\n float keepMax;\n} ").concat(name, ";\n");
31
+ var fs1 = "uniform sampler2D bitmapTextureMask;\n".concat(blockDecl, "\n");
32
+ var fs2 = "precision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTextureMask;\n#else\n uniform sampler2D bitmapTextureMask;\n#endif\n\n".concat(blockDecl, "\n");
33
+ return {
34
+ name: name,
35
+ fs1: fs1,
36
+ fs2: fs2,
37
+ uniformTypes: maskUniformTypes,
38
+ getUniforms: getUniforms,
39
+ defines: {
40
+ SAMPLER_TYPE: samplerType
41
+ },
42
+ inject: {
43
+ 'fs:DECKGL_CREATE_COLOR': "\n float mask_value = float(texture(bitmapTextureMask, coord).r);\n if (mask_value < ".concat(name, ".keepMin) discard;\n if (mask_value > ").concat(name, ".keepMax) discard;\n ")
44
+ }
45
+ };
46
+ }
47
+ var maskFloat = exports.maskFloat = makeMaskModule('mask_image_float', 'sampler2D');
48
+ var maskUint = exports.maskUint = makeMaskModule('mask_image_uint', 'usampler2D');
49
+ var maskInt = exports.maskInt = makeMaskModule('mask_image_int', 'isampler2D');
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmYiLCJNYXRoIiwicG93IiwiZ2V0VW5pZm9ybXMiLCJvcHRzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiaW1hZ2VNYXNrIiwibWFza0tlZXBNaW4iLCJtYXNrS2VlcE1heCIsImJpdG1hcFRleHR1cmVNYXNrIiwia2VlcE1pbiIsIk51bWJlciIsImlzRmluaXRlIiwia2VlcE1heCIsIm1hc2tVbmlmb3JtVHlwZXMiLCJtYWtlTWFza01vZHVsZSIsIm5hbWUiLCJzYW1wbGVyVHlwZSIsImJsb2NrRGVjbCIsImNvbmNhdCIsImZzMSIsImZzMiIsInVuaWZvcm1UeXBlcyIsImRlZmluZXMiLCJTQU1QTEVSX1RZUEUiLCJpbmplY3QiLCJtYXNrRmxvYXQiLCJleHBvcnRzIiwibWFza1VpbnQiLCJtYXNrSW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC90ZXh0dXJlL21hc2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHR5cGUge1RleHR1cmV9IGZyb20gJ0BsdW1hLmdsL2NvcmUnO1xuaW1wb3J0IHtHZXRVbmlmb3Jtc091dHB1dCwgU2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGluZiA9IE1hdGgucG93KDIsIDYyKTtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMoXG4gIG9wdHM6IHtpbWFnZU1hc2s/OiBUZXh0dXJlOyBtYXNrS2VlcE1pbj86IG51bWJlcjsgbWFza0tlZXBNYXg/OiBudW1iZXJ9ID0ge31cbik6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge2ltYWdlTWFzaywgbWFza0tlZXBNaW4sIG1hc2tLZWVwTWF4fSA9IG9wdHM7XG4gIGlmICghaW1hZ2VNYXNrKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJpdG1hcFRleHR1cmVNYXNrOiBpbWFnZU1hc2ssXG4gICAga2VlcE1pbjogTnVtYmVyLmlzRmluaXRlKG1hc2tLZWVwTWluKSA/IG1hc2tLZWVwTWluIDogLWluZixcbiAgICBrZWVwTWF4OiBOdW1iZXIuaXNGaW5pdGUobWFza0tlZXBNYXgpID8gbWFza0tlZXBNYXggOiBpbmZcbiAgfTtcbn1cblxuY29uc3QgbWFza1VuaWZvcm1UeXBlcyA9IHtcbiAga2VlcE1pbjogJ2YzMicsXG4gIGtlZXBNYXg6ICdmMzInXG59O1xuXG5mdW5jdGlvbiBtYWtlTWFza01vZHVsZShuYW1lOiBzdHJpbmcsIHNhbXBsZXJUeXBlOiBzdHJpbmcpOiBTaGFkZXJNb2R1bGUge1xuICBjb25zdCBibG9ja0RlY2wgPSBgXFxcbnVuaWZvcm0gJHtuYW1lfVVuaWZvcm1zIHtcbiAgZmxvYXQga2VlcE1pbjtcbiAgZmxvYXQga2VlcE1heDtcbn0gJHtuYW1lfTtcbmA7XG5cbiAgY29uc3QgZnMxID0gYFxcXG51bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlTWFzaztcbiR7YmxvY2tEZWNsfVxuYDtcblxuICBjb25zdCBmczIgPSBgXFxcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xucHJlY2lzaW9uIG1lZGl1bXAgaW50O1xucHJlY2lzaW9uIG1lZGl1bXAgdXNhbXBsZXIyRDtcblxuI2lmZGVmIFNBTVBMRVJfVFlQRVxuICB1bmlmb3JtIFNBTVBMRVJfVFlQRSBiaXRtYXBUZXh0dXJlTWFzaztcbiNlbHNlXG4gIHVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVNYXNrO1xuI2VuZGlmXG5cbiR7YmxvY2tEZWNsfVxuYDtcblxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgZnMxLFxuICAgIGZzMixcbiAgICB1bmlmb3JtVHlwZXM6IG1hc2tVbmlmb3JtVHlwZXMsXG4gICAgZ2V0VW5pZm9ybXMsXG4gICAgZGVmaW5lczoge1xuICAgICAgU0FNUExFUl9UWVBFOiBzYW1wbGVyVHlwZVxuICAgIH0sXG4gICAgaW5qZWN0OiB7XG4gICAgICAnZnM6REVDS0dMX0NSRUFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBtYXNrX3ZhbHVlID0gZmxvYXQodGV4dHVyZShiaXRtYXBUZXh0dXJlTWFzaywgY29vcmQpLnIpO1xuICAgIGlmIChtYXNrX3ZhbHVlIDwgJHtuYW1lfS5rZWVwTWluKSBkaXNjYXJkO1xuICAgIGlmIChtYXNrX3ZhbHVlID4gJHtuYW1lfS5rZWVwTWF4KSBkaXNjYXJkO1xuICAgIGBcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBtYXNrRmxvYXQ6IFNoYWRlck1vZHVsZSA9IG1ha2VNYXNrTW9kdWxlKCdtYXNrX2ltYWdlX2Zsb2F0JywgJ3NhbXBsZXIyRCcpO1xuZXhwb3J0IGNvbnN0IG1hc2tVaW50OiBTaGFkZXJNb2R1bGUgPSBtYWtlTWFza01vZHVsZSgnbWFza19pbWFnZV91aW50JywgJ3VzYW1wbGVyMkQnKTtcbmV4cG9ydCBjb25zdCBtYXNrSW50OiBTaGFkZXJNb2R1bGUgPSBtYWtlTWFza01vZHVsZSgnbWFza19pbWFnZV9pbnQnLCAnaXNhbXBsZXIyRCcpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUtBLElBQU1BLEdBQUcsR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUUzQixTQUFTQyxXQUFXQSxDQUFBLEVBRUM7RUFBQSxJQURuQkMsSUFBdUUsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBRTVFLElBQU9HLFNBQVMsR0FBOEJKLElBQUksQ0FBM0NJLFNBQVM7SUFBRUMsV0FBVyxHQUFpQkwsSUFBSSxDQUFoQ0ssV0FBVztJQUFFQyxXQUFXLEdBQUlOLElBQUksQ0FBbkJNLFdBQVc7RUFDMUMsSUFBSSxDQUFDRixTQUFTLEVBQUU7SUFDZCxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEcsaUJBQWlCLEVBQUVILFNBQVM7SUFDNUJJLE9BQU8sRUFBRUMsTUFBTSxDQUFDQyxRQUFRLENBQUNMLFdBQVcsQ0FBQyxHQUFHQSxXQUFXLEdBQUcsQ0FBQ1QsR0FBRztJQUMxRGUsT0FBTyxFQUFFRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0osV0FBVyxDQUFDLEdBQUdBLFdBQVcsR0FBR1Y7RUFDeEQsQ0FBQztBQUNIO0FBRUEsSUFBTWdCLGdCQUFnQixHQUFHO0VBQ3ZCSixPQUFPLEVBQUUsS0FBSztFQUNkRyxPQUFPLEVBQUU7QUFDWCxDQUFDO0FBRUQsU0FBU0UsY0FBY0EsQ0FBQ0MsSUFBWSxFQUFFQyxXQUFtQixFQUFnQjtFQUN2RSxJQUFNQyxTQUFTLGNBQUFDLE1BQUEsQ0FDUEgsSUFBSSx3REFBQUcsTUFBQSxDQUdWSCxJQUFJLFFBQ1A7RUFFQyxJQUFNSSxHQUFHLDRDQUFBRCxNQUFBLENBRVRELFNBQVMsT0FDVjtFQUVDLElBQU1HLEdBQUcsa05BQUFGLE1BQUEsQ0FXVEQsU0FBUyxPQUNWO0VBRUMsT0FBTztJQUNMRixJQUFJLEVBQUpBLElBQUk7SUFDSkksR0FBRyxFQUFIQSxHQUFHO0lBQ0hDLEdBQUcsRUFBSEEsR0FBRztJQUNIQyxZQUFZLEVBQUVSLGdCQUFnQjtJQUM5QmIsV0FBVyxFQUFYQSxXQUFXO0lBQ1hzQixPQUFPLEVBQUU7TUFDUEMsWUFBWSxFQUFFUDtJQUNoQixDQUFDO0lBQ0RRLE1BQU0sRUFBRTtNQUNOLHdCQUF3QixnR0FBQU4sTUFBQSxDQUVQSCxJQUFJLCtDQUFBRyxNQUFBLENBQ0pILElBQUk7SUFFdkI7RUFDRixDQUFDO0FBQ0g7QUFFTyxJQUFNVSxTQUF1QixHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBR1gsY0FBYyxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQztBQUMvRSxJQUFNYSxRQUFzQixHQUFBRCxPQUFBLENBQUFDLFFBQUEsR0FBR2IsY0FBYyxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztBQUM5RSxJQUFNYyxPQUFxQixHQUFBRixPQUFBLENBQUFFLE9BQUEsR0FBR2QsY0FBYyxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.constructPermutationMatrix = constructPermutationMatrix;
7
+ exports.reorderBands = void 0;
8
+ 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; } } }; }
9
+ 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; } }
10
+ 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; }
11
+ // SPDX-License-Identifier: MIT
12
+ // Copyright contributors to the kepler.gl project
13
+
14
+ /**
15
+ * Reorder image bands on GPU
16
+ * Uses a permutation matrix to reorder a vec4
17
+ */
18
+
19
+ var fs = "uniform reorder_bandsUniforms {\n mat4 ordering;\n} reorder_bands;\n\nvec4 reorder_image(vec4 image, mat4 ordering) {\n return image.rgba * ordering;\n}\n";
20
+ function getUniforms() {
21
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
+ var ordering = opts.ordering;
23
+ if (!ordering) {
24
+ return null;
25
+ }
26
+ return {
27
+ ordering: constructPermutationMatrix(ordering)
28
+ };
29
+ }
30
+
31
+ /**
32
+ * Construct permutation matrix from vector
33
+ *
34
+ * @param vector Vector describing how to reorder bands
35
+ *
36
+ * @return a mat4 permutation matrix representing how to reorder bands
37
+ */
38
+ function constructPermutationMatrix(vector) {
39
+ var mat4 = Array(16).fill(0);
40
+ var row = 0;
41
+ var _iterator = _createForOfIteratorHelper(vector),
42
+ _step;
43
+ try {
44
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
45
+ var index = _step.value;
46
+ mat4[row * 4 + index] = 1;
47
+ row += 1;
48
+ }
49
+
50
+ // If input vector wasn't of length 4, add identity in final places
51
+ } catch (err) {
52
+ _iterator.e(err);
53
+ } finally {
54
+ _iterator.f();
55
+ }
56
+ for (var r = row; r < 4; r++) {
57
+ mat4[r * 4 + r] = 1;
58
+ }
59
+ return mat4;
60
+ }
61
+ var reorderBands = exports.reorderBands = {
62
+ name: 'reorder_bands',
63
+ fs: fs,
64
+ uniformTypes: {
65
+ ordering: 'mat4x4<f32>'
66
+ },
67
+ getUniforms: getUniforms,
68
+ inject: {
69
+ 'fs:DECKGL_MUTATE_COLOR': "\n image = reorder_image(image, reorder_bands.ordering);\n "
70
+ }
71
+ };
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm9yZGVyaW5nIiwiY29uc3RydWN0UGVybXV0YXRpb25NYXRyaXgiLCJ2ZWN0b3IiLCJtYXQ0IiwiQXJyYXkiLCJmaWxsIiwicm93IiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsImluZGV4IiwidmFsdWUiLCJlcnIiLCJlIiwiZiIsInIiLCJyZW9yZGVyQmFuZHMiLCJleHBvcnRzIiwibmFtZSIsInVuaWZvcm1UeXBlcyIsImluamVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yYXN0ZXIvd2ViZ2wvdGV4dHVyZS9yZW9yZGVyLWJhbmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlLCBHZXRVbmlmb3Jtc091dHB1dH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIFJlb3JkZXIgaW1hZ2UgYmFuZHMgb24gR1BVXG4gKiBVc2VzIGEgcGVybXV0YXRpb24gbWF0cml4IHRvIHJlb3JkZXIgYSB2ZWM0XG4gKi9cblxuY29uc3QgZnMgPSBgXFxcbnVuaWZvcm0gcmVvcmRlcl9iYW5kc1VuaWZvcm1zIHtcbiAgbWF0NCBvcmRlcmluZztcbn0gcmVvcmRlcl9iYW5kcztcblxudmVjNCByZW9yZGVyX2ltYWdlKHZlYzQgaW1hZ2UsIG1hdDQgb3JkZXJpbmcpIHtcbiAgcmV0dXJuIGltYWdlLnJnYmEgKiBvcmRlcmluZztcbn1cbmA7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKG9wdHM6IHtvcmRlcmluZz86IG51bWJlcltdfSA9IHt9KTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7b3JkZXJpbmd9ID0gb3B0cztcblxuICBpZiAoIW9yZGVyaW5nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9yZGVyaW5nOiBjb25zdHJ1Y3RQZXJtdXRhdGlvbk1hdHJpeChvcmRlcmluZylcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgcGVybXV0YXRpb24gbWF0cml4IGZyb20gdmVjdG9yXG4gKlxuICogQHBhcmFtIHZlY3RvciAgVmVjdG9yIGRlc2NyaWJpbmcgaG93IHRvIHJlb3JkZXIgYmFuZHNcbiAqXG4gKiBAcmV0dXJuIGEgbWF0NCBwZXJtdXRhdGlvbiBtYXRyaXggcmVwcmVzZW50aW5nIGhvdyB0byByZW9yZGVyIGJhbmRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RQZXJtdXRhdGlvbk1hdHJpeCh2ZWN0b3I6IG51bWJlcltdKTogbnVtYmVyW10ge1xuICBjb25zdCBtYXQ0ID0gQXJyYXkoMTYpLmZpbGwoMCk7XG4gIGxldCByb3cgPSAwO1xuICBmb3IgKGNvbnN0IGluZGV4IG9mIHZlY3Rvcikge1xuICAgIG1hdDRbcm93ICogNCArIGluZGV4XSA9IDE7XG4gICAgcm93ICs9IDE7XG4gIH1cblxuICAvLyBJZiBpbnB1dCB2ZWN0b3Igd2Fzbid0IG9mIGxlbmd0aCA0LCBhZGQgaWRlbnRpdHkgaW4gZmluYWwgcGxhY2VzXG4gIGZvciAobGV0IHIgPSByb3c7IHIgPCA0OyByKyspIHtcbiAgICBtYXQ0W3IgKiA0ICsgcl0gPSAxO1xuICB9XG5cbiAgcmV0dXJuIG1hdDQ7XG59XG5cbmV4cG9ydCBjb25zdCByZW9yZGVyQmFuZHM6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3Jlb3JkZXJfYmFuZHMnLFxuICBmcyxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgb3JkZXJpbmc6ICdtYXQ0eDQ8ZjMyPidcbiAgfSxcbiAgZ2V0VW5pZm9ybXMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gcmVvcmRlcl9pbWFnZShpbWFnZSwgcmVvcmRlcl9iYW5kcy5vcmRlcmluZyk7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFNQSxFQUFFLGlLQVFQO0FBRUQsU0FBU0MsV0FBV0EsQ0FBQSxFQUFzRDtFQUFBLElBQXJEQyxJQUEyQixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFDbkQsSUFBT0csUUFBUSxHQUFJSixJQUFJLENBQWhCSSxRQUFRO0VBRWYsSUFBSSxDQUFDQSxRQUFRLEVBQUU7SUFDYixPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEEsUUFBUSxFQUFFQywwQkFBMEIsQ0FBQ0QsUUFBUTtFQUMvQyxDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQywwQkFBMEJBLENBQUNDLE1BQWdCLEVBQVk7RUFDckUsSUFBTUMsSUFBSSxHQUFHQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDOUIsSUFBSUMsR0FBRyxHQUFHLENBQUM7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ1FOLE1BQU07SUFBQU8sS0FBQTtFQUFBO0lBQTFCLEtBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxNQUFBRCxLQUFBLEdBQUFGLFNBQUEsQ0FBQUksQ0FBQSxJQUFBQyxJQUFBLEdBQTRCO01BQUEsSUFBakJDLEtBQUssR0FBQUosS0FBQSxDQUFBSyxLQUFBO01BQ2RYLElBQUksQ0FBQ0csR0FBRyxHQUFHLENBQUMsR0FBR08sS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUN6QlAsR0FBRyxJQUFJLENBQUM7SUFDVjs7SUFFQTtFQUFBLFNBQUFTLEdBQUE7SUFBQVIsU0FBQSxDQUFBUyxDQUFBLENBQUFELEdBQUE7RUFBQTtJQUFBUixTQUFBLENBQUFVLENBQUE7RUFBQTtFQUNBLEtBQUssSUFBSUMsQ0FBQyxHQUFHWixHQUFHLEVBQUVZLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsRUFBRSxFQUFFO0lBQzVCZixJQUFJLENBQUNlLENBQUMsR0FBRyxDQUFDLEdBQUdBLENBQUMsQ0FBQyxHQUFHLENBQUM7RUFDckI7RUFFQSxPQUFPZixJQUFJO0FBQ2I7QUFFTyxJQUFNZ0IsWUFBMEIsR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUc7RUFDeENFLElBQUksRUFBRSxlQUFlO0VBQ3JCM0IsRUFBRSxFQUFGQSxFQUFFO0VBQ0Y0QixZQUFZLEVBQUU7SUFDWnRCLFFBQVEsRUFBRTtFQUNaLENBQUM7RUFDREwsV0FBVyxFQUFYQSxXQUFXO0VBQ1g0QixNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rgbaImage = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+
10
+ function getUniforms() {
11
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ var imageRgba = opts.imageRgba;
13
+ if (!imageRgba) {
14
+ return null;
15
+ }
16
+ return {
17
+ bitmapTextureRgba: imageRgba
18
+ };
19
+ }
20
+ var fs1 = "uniform sampler2D bitmapTextureRgba;\n";
21
+ var fs2 = "precision mediump float;\nprecision mediump int;\nprecision mediump usampler2D;\n\n#ifdef SAMPLER_TYPE\n uniform SAMPLER_TYPE bitmapTextureRgba;\n#else\n uniform sampler2D bitmapTextureRgba;\n#endif\n";
22
+ var rgbaImage = exports.rgbaImage = {
23
+ name: 'rgba-image',
24
+ fs1: fs1,
25
+ fs2: fs2,
26
+ getUniforms: getUniforms,
27
+ defines: {
28
+ SAMPLER_TYPE: 'sampler2D'
29
+ },
30
+ inject: {
31
+ 'fs:DECKGL_CREATE_COLOR': "\n image = vec4(texture2D(bitmapTextureRgba, coord));\n if (image.a < 0.5) {\n discard;\n }\n "
32
+ }
33
+ };
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZVJnYmEiLCJiaXRtYXBUZXh0dXJlUmdiYSIsImZzMSIsImZzMiIsInJnYmFJbWFnZSIsImV4cG9ydHMiLCJuYW1lIiwiZGVmaW5lcyIsIlNBTVBMRVJfVFlQRSIsImluamVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yYXN0ZXIvd2ViZ2wvdGV4dHVyZS9yZ2JhLWltYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB0eXBlIHtUZXh0dXJlfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5mdW5jdGlvbiBnZXRVbmlmb3JtcyhvcHRzOiB7aW1hZ2VSZ2JhPzogVGV4dHVyZX0gPSB7fSk6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge2ltYWdlUmdiYX0gPSBvcHRzO1xuXG4gIGlmICghaW1hZ2VSZ2JhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJpdG1hcFRleHR1cmVSZ2JhOiBpbWFnZVJnYmFcbiAgfTtcbn1cblxuY29uc3QgZnMxID0gYFxcXG51bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUmdiYTtcbmA7XG5cbmNvbnN0IGZzMiA9IGBcXFxucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG5wcmVjaXNpb24gbWVkaXVtcCBpbnQ7XG5wcmVjaXNpb24gbWVkaXVtcCB1c2FtcGxlcjJEO1xuXG4jaWZkZWYgU0FNUExFUl9UWVBFXG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVSZ2JhO1xuI2Vsc2VcbiAgdW5pZm9ybSBzYW1wbGVyMkQgYml0bWFwVGV4dHVyZVJnYmE7XG4jZW5kaWZcbmA7XG5cbmV4cG9ydCBjb25zdCByZ2JhSW1hZ2U6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3JnYmEtaW1hZ2UnLFxuICBmczEsXG4gIGZzMixcbiAgZ2V0VW5pZm9ybXMsXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdzYW1wbGVyMkQnXG4gIH0sXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfQ1JFQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gdmVjNCh0ZXh0dXJlMkQoYml0bWFwVGV4dHVyZVJnYmEsIGNvb3JkKSk7XG4gICAgaWYgKGltYWdlLmEgPCAwLjUpIHtcbiAgICAgIGRpc2NhcmQ7XG4gICAgfVxuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFLQSxTQUFTQSxXQUFXQSxDQUFBLEVBQXNEO0VBQUEsSUFBckRDLElBQTJCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUNuRCxJQUFPRyxTQUFTLEdBQUlKLElBQUksQ0FBakJJLFNBQVM7RUFFaEIsSUFBSSxDQUFDQSxTQUFTLEVBQUU7SUFDZCxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEMsaUJBQWlCLEVBQUVEO0VBQ3JCLENBQUM7QUFDSDtBQUVBLElBQU1FLEdBQUcsMkNBRVI7QUFFRCxJQUFNQyxHQUFHLCtNQVVSO0FBRU0sSUFBTUMsU0FBdUIsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLEdBQUc7RUFDckNFLElBQUksRUFBRSxZQUFZO0VBQ2xCSixHQUFHLEVBQUhBLEdBQUc7RUFDSEMsR0FBRyxFQUFIQSxHQUFHO0VBQ0hSLFdBQVcsRUFBWEEsV0FBVztFQUNYWSxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCLENBQUM7RUFDREMsTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBTTFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhZGVyTW9kdWxlIHtcbiAgLyoqIEEgdW5pcXVlIG5hbWUgZm9yIHRoaXMgc2hhZGVyIG1vZHVsZSAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEEgZnJhZ21lbnQgc2hhZGVyIHRvIGJlIHVzZWQgaW4gYm90aCBXZWJHTDEgYW5kIFdlYkdMMiBlbnZpcm9ubWVudHMgKi9cbiAgZnM/OiBzdHJpbmc7XG5cbiAgLyoqIEEgZnJhZ21lbnQgc2hhZGVyIHRvIGJlIHVzZWQgb25seSBpbiBXZWJHTDEgZW52aXJvbm1lbnRzICovXG4gIGZzMT86IHN0cmluZztcblxuICAvKiogQSBmcmFnbWVudCBzaGFkZXIgdG8gYmUgdXNlZCBvbmx5IGluIFdlYkdMMiBlbnZpcm9ubWVudHMgKi9cbiAgZnMyPzogc3RyaW5nO1xuXG4gIC8qKiBBIHZlcnRleCBzaGFkZXIgdG8gaW5qZWN0ICovXG4gIHZzPzogc3RyaW5nO1xuICB1bmlmb3Jtcz86IFJlY29yZDxzdHJpbmcsIFVuaWZvcm1UeXBlPjtcbiAgZ2V0VW5pZm9ybXM/OiAob3B0czogb2JqZWN0KSA9PiBHZXRVbmlmb3Jtc091dHB1dDtcblxuICAvKiogbHVtYS5nbCA5IFVCTyB1bmlmb3JtIHR5cGUgZGVjbGFyYXRpb25zIChlLmcuIHsgb3BhY2l0eTogJ2YzMicgfSkgKi9cbiAgdW5pZm9ybVR5cGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogT3B0aW9uYWwgY29uc3RhbnRzIHRvIGRlZmluZSB3aGVuIGluamVjdGluZyAqL1xuICBkZWZpbmVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgaW5qZWN0PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZGVwZW5kZW5jaWVzPzogU2hhZGVyTW9kdWxlW107XG4gIGRlcHJlY2F0aW9ucz86IHt0eXBlOiBzdHJpbmc7IG9sZDogc3RyaW5nOyBuZXc6IHN0cmluZ31bXTtcbn1cblxuZXhwb3J0IHR5cGUgVW5pZm9ybVR5cGUgPSBudW1iZXIgfCBudW1iZXJbXSB8IFRleHR1cmUgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCB0eXBlIEdldFVuaWZvcm1zT3V0cHV0ID0gUmVjb3JkPHN0cmluZywgVW5pZm9ybVR5cGU+IHwgbnVsbDtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==