@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
@@ -1,139 +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.applyModuleUniforms = applyModuleUniforms;
8
- exports.modulesEqual = modulesEqual;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _rasterProcessingUniforms = require("./raster-processing-uniforms");
12
- 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; } } }; }
13
- 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; } }
14
- 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; } // SPDX-License-Identifier: MIT
15
- // Copyright contributors to the kepler.gl project
16
- /**
17
- * Test if two lists of modules are equal
18
- *
19
- * @param modules Modules list
20
- * @param oldModules Modules list
21
- *
22
- * @return true if both lists are equal
23
- */
24
- function modulesEqual(modules, oldModules) {
25
- if (modules.length !== oldModules.length) {
26
- return false;
27
- }
28
- for (var i = 0; i < modules.length; i++) {
29
- if (modules[i].name !== oldModules[i].name) {
30
- return false;
31
- }
32
- }
33
- return true;
34
- }
35
- function isUniformValue(value) {
36
- return typeof value === 'number' || typeof value === 'boolean' || ArrayBuffer.isView(value) || Array.isArray(value);
37
- }
38
-
39
- /**
40
- * Apply module uniforms/bindings to shaderInputs, calling each module's
41
- * getUniforms exactly once and writing the result directly — avoiding the
42
- * double-getUniforms bug where shaderInputs.setProps() would re-invoke
43
- * getUniforms on already-transformed values.
44
- *
45
- * For modules whose uniforms have been consolidated into the shared
46
- * rasterProcessing UBO, the uniform values are remapped (prefixed) and
47
- * written to the rasterProcessing slot instead of the individual module slot.
48
- */
49
- function applyModuleUniforms(shaderInputs, modules, allModuleProps) {
50
- var _iterator = _createForOfIteratorHelper(modules),
51
- _step;
52
- try {
53
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
54
- var mod = _step.value;
55
- if (mod.getUniforms) {
56
- var result = mod.getUniforms(allModuleProps);
57
- if (result) {
58
- var uniforms = {};
59
- var bindings = {};
60
- for (var _i = 0, _Object$entries = Object.entries(result); _i < _Object$entries.length; _i++) {
61
- var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
62
- key = _Object$entries$_i[0],
63
- value = _Object$entries$_i[1];
64
- if (isUniformValue(value)) {
65
- uniforms[key] = value;
66
- } else {
67
- bindings[key] = value;
68
- }
69
- }
70
- try {
71
- var nameMap = _rasterProcessingUniforms.UNIFORM_NAME_MAP[mod.name];
72
- if (nameMap && mod.uniformTypes) {
73
- // Consolidated module: remap uniforms to the shared rasterProcessing UBO
74
- if (!shaderInputs.moduleUniforms.rasterProcessing) {
75
- shaderInputs.moduleUniforms.rasterProcessing = {};
76
- }
77
- for (var _i2 = 0, _Object$entries2 = Object.entries(uniforms); _i2 < _Object$entries2.length; _i2++) {
78
- var _Object$entries2$_i = (0, _slicedToArray2["default"])(_Object$entries2[_i2], 2),
79
- _key = _Object$entries2$_i[0],
80
- _value = _Object$entries2$_i[1];
81
- var remapped = nameMap[_key];
82
- if (remapped) {
83
- shaderInputs.moduleUniforms.rasterProcessing[remapped] = _value;
84
- }
85
- }
86
- // Bindings (textures) stay on the original module name
87
- if (Object.keys(bindings).length > 0) {
88
- if (!shaderInputs.moduleBindings[mod.name]) {
89
- shaderInputs.moduleBindings[mod.name] = {};
90
- }
91
- Object.assign(shaderInputs.moduleBindings[mod.name], bindings);
92
- }
93
- } else {
94
- // Non-consolidated module: write directly as before
95
- if (!shaderInputs.moduleUniforms[mod.name]) {
96
- shaderInputs.moduleUniforms[mod.name] = {};
97
- }
98
- if (!shaderInputs.moduleBindings[mod.name]) {
99
- shaderInputs.moduleBindings[mod.name] = {};
100
- }
101
- Object.assign(shaderInputs.moduleUniforms[mod.name], uniforms);
102
- Object.assign(shaderInputs.moduleBindings[mod.name], bindings);
103
- }
104
- } catch (_unused) {
105
- var _nameMap = _rasterProcessingUniforms.UNIFORM_NAME_MAP[mod.name];
106
- if (_nameMap && mod.uniformTypes) {
107
- var _shaderInputs$setProp;
108
- var remappedUniforms = {};
109
- for (var _i3 = 0, _Object$entries3 = Object.entries(uniforms); _i3 < _Object$entries3.length; _i3++) {
110
- var _Object$entries3$_i = (0, _slicedToArray2["default"])(_Object$entries3[_i3], 2),
111
- _key2 = _Object$entries3$_i[0],
112
- val = _Object$entries3$_i[1];
113
- var _remapped = _nameMap[_key2];
114
- if (_remapped) {
115
- remappedUniforms[_remapped] = val;
116
- }
117
- }
118
- (_shaderInputs$setProp = shaderInputs.setProps) === null || _shaderInputs$setProp === void 0 || _shaderInputs$setProp.call(shaderInputs, {
119
- rasterProcessing: remappedUniforms
120
- });
121
- if (Object.keys(bindings).length > 0) {
122
- var _shaderInputs$setProp2;
123
- (_shaderInputs$setProp2 = shaderInputs.setProps) === null || _shaderInputs$setProp2 === void 0 || _shaderInputs$setProp2.call(shaderInputs, (0, _defineProperty2["default"])({}, mod.name, bindings));
124
- }
125
- } else {
126
- var _shaderInputs$setProp4;
127
- (_shaderInputs$setProp4 = shaderInputs.setProps) === null || _shaderInputs$setProp4 === void 0 || _shaderInputs$setProp4.call(shaderInputs, (0, _defineProperty2["default"])({}, mod.name, result));
128
- }
129
- }
130
- }
131
- }
132
- }
133
- } catch (err) {
134
- _iterator.e(err);
135
- } finally {
136
- _iterator.f();
137
- }
138
- }
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmFzdGVyUHJvY2Vzc2luZ1VuaWZvcm1zIiwicmVxdWlyZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwibW9kdWxlc0VxdWFsIiwibW9kdWxlcyIsIm9sZE1vZHVsZXMiLCJpIiwiaXNVbmlmb3JtVmFsdWUiLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsImFwcGx5TW9kdWxlVW5pZm9ybXMiLCJzaGFkZXJJbnB1dHMiLCJhbGxNb2R1bGVQcm9wcyIsIl9pdGVyYXRvciIsIl9zdGVwIiwibW9kIiwiZ2V0VW5pZm9ybXMiLCJyZXN1bHQiLCJ1bmlmb3JtcyIsImJpbmRpbmdzIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJPYmplY3QiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkyIiwia2V5IiwibmFtZU1hcCIsIlVOSUZPUk1fTkFNRV9NQVAiLCJ1bmlmb3JtVHlwZXMiLCJtb2R1bGVVbmlmb3JtcyIsInJhc3RlclByb2Nlc3NpbmciLCJfaTIiLCJfT2JqZWN0JGVudHJpZXMyIiwiX09iamVjdCRlbnRyaWVzMiRfaSIsInJlbWFwcGVkIiwia2V5cyIsIm1vZHVsZUJpbmRpbmdzIiwiYXNzaWduIiwiX3VudXNlZCIsIl9zaGFkZXJJbnB1dHMkc2V0UHJvcCIsInJlbWFwcGVkVW5pZm9ybXMiLCJfaTMiLCJfT2JqZWN0JGVudHJpZXMzIiwiX09iamVjdCRlbnRyaWVzMyRfaSIsInZhbCIsInNldFByb3BzIiwiX3NoYWRlcklucHV0cyRzZXRQcm9wMiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJfc2hhZGVySW5wdXRzJHNldFByb3A0IiwiZXJyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhc3Rlci91dGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuL3dlYmdsL3R5cGVzJztcbmltcG9ydCB7VU5JRk9STV9OQU1FX01BUH0gZnJvbSAnLi9yYXN0ZXItcHJvY2Vzc2luZy11bmlmb3Jtcyc7XG5cbi8qKlxuICogVGVzdCBpZiB0d28gbGlzdHMgb2YgbW9kdWxlcyBhcmUgZXF1YWxcbiAqXG4gKiBAcGFyYW0gbW9kdWxlcyAgICAgTW9kdWxlcyBsaXN0XG4gKiBAcGFyYW0gb2xkTW9kdWxlcyAgTW9kdWxlcyBsaXN0XG4gKlxuICogQHJldHVybiB0cnVlIGlmIGJvdGggbGlzdHMgYXJlIGVxdWFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVzRXF1YWwobW9kdWxlczogU2hhZGVyTW9kdWxlW10sIG9sZE1vZHVsZXM6IFNoYWRlck1vZHVsZVtdKTogYm9vbGVhbiB7XG4gIGlmIChtb2R1bGVzLmxlbmd0aCAhPT0gb2xkTW9kdWxlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAobW9kdWxlc1tpXS5uYW1lICE9PSBvbGRNb2R1bGVzW2ldLm5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNVbmlmb3JtVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHxcbiAgICBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpIHx8XG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBBcHBseSBtb2R1bGUgdW5pZm9ybXMvYmluZGluZ3MgdG8gc2hhZGVySW5wdXRzLCBjYWxsaW5nIGVhY2ggbW9kdWxlJ3NcbiAqIGdldFVuaWZvcm1zIGV4YWN0bHkgb25jZSBhbmQgd3JpdGluZyB0aGUgcmVzdWx0IGRpcmVjdGx5IOKAlCBhdm9pZGluZyB0aGVcbiAqIGRvdWJsZS1nZXRVbmlmb3JtcyBidWcgd2hlcmUgc2hhZGVySW5wdXRzLnNldFByb3BzKCkgd291bGQgcmUtaW52b2tlXG4gKiBnZXRVbmlmb3JtcyBvbiBhbHJlYWR5LXRyYW5zZm9ybWVkIHZhbHVlcy5cbiAqXG4gKiBGb3IgbW9kdWxlcyB3aG9zZSB1bmlmb3JtcyBoYXZlIGJlZW4gY29uc29saWRhdGVkIGludG8gdGhlIHNoYXJlZFxuICogcmFzdGVyUHJvY2Vzc2luZyBVQk8sIHRoZSB1bmlmb3JtIHZhbHVlcyBhcmUgcmVtYXBwZWQgKHByZWZpeGVkKSBhbmRcbiAqIHdyaXR0ZW4gdG8gdGhlIHJhc3RlclByb2Nlc3Npbmcgc2xvdCBpbnN0ZWFkIG9mIHRoZSBpbmRpdmlkdWFsIG1vZHVsZSBzbG90LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlNb2R1bGVVbmlmb3JtcyhcbiAgc2hhZGVySW5wdXRzOiB7XG4gICAgbW9kdWxlVW5pZm9ybXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgICBtb2R1bGVCaW5kaW5nczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xuICAgIHNldFByb3BzPzogKHByb3BzOiBhbnkpID0+IHZvaWQ7XG4gIH0sXG4gIG1vZHVsZXM6IFNoYWRlck1vZHVsZVtdLFxuICBhbGxNb2R1bGVQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbik6IHZvaWQge1xuICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzKSB7XG4gICAgaWYgKG1vZC5nZXRVbmlmb3Jtcykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gbW9kLmdldFVuaWZvcm1zKGFsbE1vZHVsZVByb3BzIGFzIG9iamVjdCk7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHVuaWZvcm1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBjb25zdCBiaW5kaW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmVzdWx0KSkge1xuICAgICAgICAgIGlmIChpc1VuaWZvcm1WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHVuaWZvcm1zW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYmluZGluZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG5hbWVNYXAgPSBVTklGT1JNX05BTUVfTUFQW21vZC5uYW1lXTtcbiAgICAgICAgICBpZiAobmFtZU1hcCAmJiBtb2QudW5pZm9ybVR5cGVzKSB7XG4gICAgICAgICAgICAvLyBDb25zb2xpZGF0ZWQgbW9kdWxlOiByZW1hcCB1bmlmb3JtcyB0byB0aGUgc2hhcmVkIHJhc3RlclByb2Nlc3NpbmcgVUJPXG4gICAgICAgICAgICBpZiAoIXNoYWRlcklucHV0cy5tb2R1bGVVbmlmb3Jtcy5yYXN0ZXJQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICAgIHNoYWRlcklucHV0cy5tb2R1bGVVbmlmb3Jtcy5yYXN0ZXJQcm9jZXNzaW5nID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh1bmlmb3JtcykpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVtYXBwZWQgPSBuYW1lTWFwW2tleV07XG4gICAgICAgICAgICAgIGlmIChyZW1hcHBlZCkge1xuICAgICAgICAgICAgICAgIHNoYWRlcklucHV0cy5tb2R1bGVVbmlmb3Jtcy5yYXN0ZXJQcm9jZXNzaW5nW3JlbWFwcGVkXSA9IHZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBCaW5kaW5ncyAodGV4dHVyZXMpIHN0YXkgb24gdGhlIG9yaWdpbmFsIG1vZHVsZSBuYW1lXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoYmluZGluZ3MpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgaWYgKCFzaGFkZXJJbnB1dHMubW9kdWxlQmluZGluZ3NbbW9kLm5hbWVdKSB7XG4gICAgICAgICAgICAgICAgc2hhZGVySW5wdXRzLm1vZHVsZUJpbmRpbmdzW21vZC5uYW1lXSA9IHt9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2hhZGVySW5wdXRzLm1vZHVsZUJpbmRpbmdzW21vZC5uYW1lXSwgYmluZGluZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOb24tY29uc29saWRhdGVkIG1vZHVsZTogd3JpdGUgZGlyZWN0bHkgYXMgYmVmb3JlXG4gICAgICAgICAgICBpZiAoIXNoYWRlcklucHV0cy5tb2R1bGVVbmlmb3Jtc1ttb2QubmFtZV0pIHtcbiAgICAgICAgICAgICAgc2hhZGVySW5wdXRzLm1vZHVsZVVuaWZvcm1zW21vZC5uYW1lXSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzaGFkZXJJbnB1dHMubW9kdWxlQmluZGluZ3NbbW9kLm5hbWVdKSB7XG4gICAgICAgICAgICAgIHNoYWRlcklucHV0cy5tb2R1bGVCaW5kaW5nc1ttb2QubmFtZV0gPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2hhZGVySW5wdXRzLm1vZHVsZVVuaWZvcm1zW21vZC5uYW1lXSwgdW5pZm9ybXMpO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihzaGFkZXJJbnB1dHMubW9kdWxlQmluZGluZ3NbbW9kLm5hbWVdLCBiaW5kaW5ncyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICBjb25zdCBuYW1lTWFwID0gVU5JRk9STV9OQU1FX01BUFttb2QubmFtZV07XG4gICAgICAgICAgaWYgKG5hbWVNYXAgJiYgbW9kLnVuaWZvcm1UeXBlcykge1xuICAgICAgICAgICAgY29uc3QgcmVtYXBwZWRVbmlmb3JtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyh1bmlmb3JtcykpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVtYXBwZWQgPSBuYW1lTWFwW2tleV07XG4gICAgICAgICAgICAgIGlmIChyZW1hcHBlZCkge1xuICAgICAgICAgICAgICAgIHJlbWFwcGVkVW5pZm9ybXNbcmVtYXBwZWRdID0gdmFsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaGFkZXJJbnB1dHMuc2V0UHJvcHM/Lih7cmFzdGVyUHJvY2Vzc2luZzogcmVtYXBwZWRVbmlmb3Jtc30pO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGJpbmRpbmdzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHNoYWRlcklucHV0cy5zZXRQcm9wcz8uKHtbbW9kLm5hbWVdOiBiaW5kaW5nc30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaGFkZXJJbnB1dHMuc2V0UHJvcHM/Lih7W21vZC5uYW1lXTog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SUFBSVosR0FBRyxDQUFDYyxZQUFZLEVBQUU7Y0FBQSxJQUFBVyxxQkFBQTtjQUMvQixJQUFNQyxnQkFBeUMsR0FBRyxDQUFDLENBQUM7Y0FDcEQsU0FBQUMsR0FBQSxNQUFBQyxnQkFBQSxHQUF5QnJCLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDTCxRQUFRLENBQUMsRUFBQXdCLEdBQUEsR0FBQUMsZ0JBQUEsQ0FBQTdELE1BQUEsRUFBQTRELEdBQUEsSUFBRTtnQkFBOUMsSUFBQUUsbUJBQUEsT0FBQW5CLGVBQUEsYUFBQWtCLGdCQUFBLENBQUFELEdBQUE7a0JBQU9oQixLQUFHLEdBQUFrQixtQkFBQTtrQkFBRUMsR0FBRyxHQUFBRCxtQkFBQTtnQkFDbEIsSUFBTVQsU0FBUSxHQUFHUixRQUFPLENBQUNELEtBQUcsQ0FBQztnQkFDN0IsSUFBSVMsU0FBUSxFQUFFO2tCQUNaTSxnQkFBZ0IsQ0FBQ04sU0FBUSxDQUFDLEdBQUdVLEdBQUc7Z0JBQ2xDO2NBQ0Y7Y0FDQSxDQUFBTCxxQkFBQSxHQUFBN0IsWUFBWSxDQUFDbUMsUUFBUSxjQUFBTixxQkFBQSxlQUFyQkEscUJBQUEsQ0FBQTlDLElBQUEsQ0FBQWlCLFlBQVksRUFBWTtnQkFBQ29CLGdCQUFnQixFQUFFVTtjQUFnQixDQUFDLENBQUM7Y0FDN0QsSUFBSW5CLE1BQU0sQ0FBQ2MsSUFBSSxDQUFDakIsUUFBUSxDQUFDLENBQUNyQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUFBLElBQUFpRSxzQkFBQTtnQkFDcEMsQ0FBQUEsc0JBQUEsR0FBQXBDLFlBQVksQ0FBQ21DLFFBQVEsY0FBQUMsc0JBQUEsZUFBckJBLHNCQUFBLENBQUFyRCxJQUFBLENBQUFpQixZQUFZLE1BQUFxQyxnQkFBQSxpQkFBY2pDLEdBQUcsQ0FBQ2YsSUFBSSxFQUFHbUIsUUFBUSxDQUFDLENBQUM7Y0FDakQ7WUFDRixDQUFDLE1BQU07Y0FBQSxJQUFBOEIsc0JBQUE7Y0FDTCxDQUFBQSxzQkFBQSxHQUFBdEMsWUFBWSxDQUFDbUMsUUFBUSxjQUFBRyxzQkFBQSxlQUFyQkEsc0JBQUEsQ0FBQXZELElBQUEsQ0FBQWlCLFlBQVksTUFBQXFDLGdCQUFBLGlCQUFjakMsR0FBRyxDQUFDZixJQUFJLEVBQUdpQixNQUFNLENBQUMsQ0FBQztZQUMvQztVQUNGO1FBQ0Y7TUFDRjtJQUNGO0VBQUMsU0FBQWlDLEdBQUE7SUFBQXJDLFNBQUEsQ0FBQXRDLENBQUEsQ0FBQTJFLEdBQUE7RUFBQTtJQUFBckMsU0FBQSxDQUFBeEIsQ0FBQTtFQUFBO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.colormap = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
-
10
- var fs = "uniform sampler2D uColormapTexture;\n\nuniform colormapUniforms {\n int hasCategoricalColors;\n int categoricalMinValue;\n int categoricalMaxValue;\n int maxPixelValue;\n} colormap;\n\n// Apply colormap texture given value\n// Since the texture only varies in the x direction, setting v to 0.5 as a\n// constant is fine\n// Assumes the input range of value is -1 to 1\nvec4 colormapApply(sampler2D cmap, vec4 image) {\n vec2 uv;\n if (colormap.hasCategoricalColors == 1) {\n float step = float(colormap.maxPixelValue) / float(colormap.categoricalMaxValue - colormap.categoricalMinValue);\n uv = vec2(image.r * step, 0.5);\n } else {\n uv = vec2(0.5 * image.r + 0.5, 0.5);\n }\n vec4 color = texture(cmap, uv);\n if(color.a <= 0.0) discard;\n return color;\n}\n";
11
- function getUniforms() {
12
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
- var imageColormap = opts.imageColormap,
14
- minCategoricalBandValue = opts.minCategoricalBandValue,
15
- maxCategoricalBandValue = opts.maxCategoricalBandValue,
16
- dataTypeMaxValue = opts.dataTypeMaxValue,
17
- maxPixelValue = opts.maxPixelValue;
18
- if (!imageColormap) {
19
- return null;
20
- }
21
- var isSupportedDataType = Number.isFinite(dataTypeMaxValue);
22
- var isCategorical = isSupportedDataType && Number.isFinite(maxPixelValue) && Number.isFinite(minCategoricalBandValue) && Number.isFinite(maxCategoricalBandValue);
23
- return {
24
- uColormapTexture: imageColormap,
25
- hasCategoricalColors: isCategorical ? 1 : 0,
26
- categoricalMinValue: Number.isFinite(minCategoricalBandValue) ? minCategoricalBandValue : 0,
27
- categoricalMaxValue: Number.isFinite(maxCategoricalBandValue) ? maxCategoricalBandValue : 0,
28
- maxPixelValue: Number.isFinite(maxPixelValue) ? maxPixelValue : 0
29
- };
30
- }
31
- var colormap = exports.colormap = {
32
- name: 'colormap',
33
- fs: fs,
34
- uniformTypes: {
35
- hasCategoricalColors: 'i32',
36
- categoricalMinValue: 'i32',
37
- categoricalMaxValue: 'i32',
38
- maxPixelValue: 'i32'
39
- },
40
- getUniforms: getUniforms,
41
- inject: {
42
- 'fs:DECKGL_MUTATE_COLOR': "\n image = colormapApply(uColormapTexture, image);\n "
43
- }
44
- };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImltYWdlQ29sb3JtYXAiLCJtaW5DYXRlZ29yaWNhbEJhbmRWYWx1ZSIsIm1heENhdGVnb3JpY2FsQmFuZFZhbHVlIiwiZGF0YVR5cGVNYXhWYWx1ZSIsIm1heFBpeGVsVmFsdWUiLCJpc1N1cHBvcnRlZERhdGFUeXBlIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJpc0NhdGVnb3JpY2FsIiwidUNvbG9ybWFwVGV4dHVyZSIsImhhc0NhdGVnb3JpY2FsQ29sb3JzIiwiY2F0ZWdvcmljYWxNaW5WYWx1ZSIsImNhdGVnb3JpY2FsTWF4VmFsdWUiLCJjb2xvcm1hcCIsImV4cG9ydHMiLCJuYW1lIiwidW5pZm9ybVR5cGVzIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9jb2xvci9jb2xvcm1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgZnMgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIHVDb2xvcm1hcFRleHR1cmU7XG5cbnVuaWZvcm0gY29sb3JtYXBVbmlmb3JtcyB7XG4gIGludCBoYXNDYXRlZ29yaWNhbENvbG9ycztcbiAgaW50IGNhdGVnb3JpY2FsTWluVmFsdWU7XG4gIGludCBjYXRlZ29yaWNhbE1heFZhbHVlO1xuICBpbnQgbWF4UGl4ZWxWYWx1ZTtcbn0gY29sb3JtYXA7XG5cbi8vIEFwcGx5IGNvbG9ybWFwIHRleHR1cmUgZ2l2ZW4gdmFsdWVcbi8vIFNpbmNlIHRoZSB0ZXh0dXJlIG9ubHkgdmFyaWVzIGluIHRoZSB4IGRpcmVjdGlvbiwgc2V0dGluZyB2IHRvIDAuNSBhcyBhXG4vLyBjb25zdGFudCBpcyBmaW5lXG4vLyBBc3N1bWVzIHRoZSBpbnB1dCByYW5nZSBvZiB2YWx1ZSBpcyAtMSB0byAxXG52ZWM0IGNvbG9ybWFwQXBwbHkoc2FtcGxlcjJEIGNtYXAsIHZlYzQgaW1hZ2UpIHtcbiAgdmVjMiB1djtcbiAgaWYgKGNvbG9ybWFwLmhhc0NhdGVnb3JpY2FsQ29sb3JzID09IDEpIHtcbiAgICBmbG9hdCBzdGVwID0gZmxvYXQoY29sb3JtYXAubWF4UGl4ZWxWYWx1ZSkgLyBmbG9hdChjb2xvcm1hcC5jYXRlZ29yaWNhbE1heFZhbHVlIC0gY29sb3JtYXAuY2F0ZWdvcmljYWxNaW5WYWx1ZSk7XG4gICAgdXYgPSB2ZWMyKGltYWdlLnIgKiBzdGVwLCAwLjUpO1xuICB9IGVsc2Uge1xuICAgIHV2ID0gdmVjMigwLjUgKiBpbWFnZS5yICsgMC41LCAwLjUpO1xuICB9XG4gIHZlYzQgY29sb3IgPSB0ZXh0dXJlKGNtYXAsIHV2KTtcbiAgaWYoY29sb3IuYSA8PSAwLjApIGRpc2NhcmQ7XG4gIHJldHVybiBjb2xvcjtcbn1cbmA7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKFxuICBvcHRzOiB7XG4gICAgaW1hZ2VDb2xvcm1hcD86IFRleHR1cmU7XG4gICAgbWluQ2F0ZWdvcmljYWxCYW5kVmFsdWU/OiBudW1iZXI7XG4gICAgbWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWU/OiBudW1iZXI7XG4gICAgZGF0YVR5cGVNYXhWYWx1ZT86IG51bWJlcjtcbiAgICBtYXhQaXhlbFZhbHVlPzogbnVtYmVyO1xuICB9ID0ge31cbik6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge1xuICAgIGltYWdlQ29sb3JtYXAsXG4gICAgbWluQ2F0ZWdvcmljYWxCYW5kVmFsdWUsXG4gICAgbWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWUsXG4gICAgZGF0YVR5cGVNYXhWYWx1ZSxcbiAgICBtYXhQaXhlbFZhbHVlXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghaW1hZ2VDb2xvcm1hcCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgaXNTdXBwb3J0ZWREYXRhVHlwZSA9IE51bWJlci5pc0Zpbml0ZShkYXRhVHlwZU1heFZhbHVlKTtcbiAgY29uc3QgaXNDYXRlZ29yaWNhbCA9XG4gICAgaXNTdXBwb3J0ZWREYXRhVHlwZSAmJlxuICAgIE51bWJlci5pc0Zpbml0ZShtYXhQaXhlbFZhbHVlKSAmJlxuICAgIE51bWJlci5pc0Zpbml0ZShtaW5DYXRlZ29yaWNhbEJhbmRWYWx1ZSkgJiZcbiAgICBOdW1iZXIuaXNGaW5pdGUobWF4Q2F0ZWdvcmljYWxCYW5kVmFsdWUpO1xuICByZXR1cm4ge1xuICAgIHVDb2xvcm1hcFRleHR1cmU6IGltYWdlQ29sb3JtYXAsXG4gICAgaGFzQ2F0ZWdvcmljYWxDb2xvcnM6IGlzQ2F0ZWdvcmljYWwgPyAxIDogMCxcbiAgICBjYXRlZ29yaWNhbE1pblZhbHVlOiBOdW1iZXIuaXNGaW5pdGUobWluQ2F0ZWdvcmljYWxCYW5kVmFsdWUpID8gbWluQ2F0ZWdvcmljYWxCYW5kVmFsdWUgOiAwLFxuICAgIGNhdGVnb3JpY2FsTWF4VmFsdWU6IE51bWJlci5pc0Zpbml0ZShtYXhDYXRlZ29yaWNhbEJhbmRWYWx1ZSkgPyBtYXhDYXRlZ29yaWNhbEJhbmRWYWx1ZSA6IDAsXG4gICAgbWF4UGl4ZWxWYWx1ZTogTnVtYmVyLmlzRmluaXRlKG1heFBpeGVsVmFsdWUpID8gbWF4UGl4ZWxWYWx1ZSA6IDBcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbG9ybWFwOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdjb2xvcm1hcCcsXG4gIGZzLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBoYXNDYXRlZ29yaWNhbENvbG9yczogJ2kzMicsXG4gICAgY2F0ZWdvcmljYWxNaW5WYWx1ZTogJ2kzMicsXG4gICAgY2F0ZWdvcmljYWxNYXhWYWx1ZTogJ2kzMicsXG4gICAgbWF4UGl4ZWxWYWx1ZTogJ2kzMidcbiAgfSxcbiAgZ2V0VW5pZm9ybXMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gY29sb3JtYXBBcHBseSh1Q29sb3JtYXBUZXh0dXJlLCBpbWFnZSk7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUtBLElBQU1BLEVBQUUsaXhCQTBCUDtBQUVELFNBQVNDLFdBQVdBLENBQUEsRUFRQztFQUFBLElBUG5CQyxJQU1DLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUVOLElBQ0VHLGFBQWEsR0FLWEosSUFBSSxDQUxOSSxhQUFhO0lBQ2JDLHVCQUF1QixHQUlyQkwsSUFBSSxDQUpOSyx1QkFBdUI7SUFDdkJDLHVCQUF1QixHQUdyQk4sSUFBSSxDQUhOTSx1QkFBdUI7SUFDdkJDLGdCQUFnQixHQUVkUCxJQUFJLENBRk5PLGdCQUFnQjtJQUNoQkMsYUFBYSxHQUNYUixJQUFJLENBRE5RLGFBQWE7RUFHZixJQUFJLENBQUNKLGFBQWEsRUFBRTtJQUNsQixPQUFPLElBQUk7RUFDYjtFQUVBLElBQU1LLG1CQUFtQixHQUFHQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0osZ0JBQWdCLENBQUM7RUFDN0QsSUFBTUssYUFBYSxHQUNqQkgsbUJBQW1CLElBQ25CQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsYUFBYSxDQUFDLElBQzlCRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ04sdUJBQXVCLENBQUMsSUFDeENLLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDTCx1QkFBdUIsQ0FBQztFQUMxQyxPQUFPO0lBQ0xPLGdCQUFnQixFQUFFVCxhQUFhO0lBQy9CVSxvQkFBb0IsRUFBRUYsYUFBYSxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQzNDRyxtQkFBbUIsRUFBRUwsTUFBTSxDQUFDQyxRQUFRLENBQUNOLHVCQUF1QixDQUFDLEdBQUdBLHVCQUF1QixHQUFHLENBQUM7SUFDM0ZXLG1CQUFtQixFQUFFTixNQUFNLENBQUNDLFFBQVEsQ0FBQ0wsdUJBQXVCLENBQUMsR0FBR0EsdUJBQXVCLEdBQUcsQ0FBQztJQUMzRkUsYUFBYSxFQUFFRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsYUFBYSxDQUFDLEdBQUdBLGFBQWEsR0FBRztFQUNsRSxDQUFDO0FBQ0g7QUFFTyxJQUFNUyxRQUFzQixHQUFBQyxPQUFBLENBQUFELFFBQUEsR0FBRztFQUNwQ0UsSUFBSSxFQUFFLFVBQVU7RUFDaEJyQixFQUFFLEVBQUZBLEVBQUU7RUFDRnNCLFlBQVksRUFBRTtJQUNaTixvQkFBb0IsRUFBRSxLQUFLO0lBQzNCQyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCQyxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCUixhQUFhLEVBQUU7RUFDakIsQ0FBQztFQUNEVCxXQUFXLEVBQVhBLFdBQVc7RUFDWHNCLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.filter = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
-
10
- var fs = "uniform bandFilterUniforms {\n float min1;\n float max1;\n float min2;\n float max2;\n float min3;\n float max3;\n float min4;\n float max4;\n} bandFilter;\n";
11
-
12
- // You can't pass JS' -Infinity or Infinity to a shader as a uniform
13
- var inf = Math.pow(2, 62);
14
-
15
- // eslint-disable-next-line complexity
16
- function getUniforms() {
17
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18
- var filterMin1 = opts.filterMin1,
19
- filterMin2 = opts.filterMin2,
20
- filterMin3 = opts.filterMin3,
21
- filterMin4 = opts.filterMin4,
22
- filterMax1 = opts.filterMax1,
23
- filterMax2 = opts.filterMax2,
24
- filterMax3 = opts.filterMax3,
25
- filterMax4 = opts.filterMax4;
26
- if (Number.isFinite(filterMin1) || Number.isFinite(filterMin2) || Number.isFinite(filterMin3) || Number.isFinite(filterMin4) || Number.isFinite(filterMax1) || Number.isFinite(filterMax2) || Number.isFinite(filterMax3) || Number.isFinite(filterMax4)) {
27
- return {
28
- min1: Number.isFinite(filterMin1) ? filterMin1 : -inf,
29
- min2: Number.isFinite(filterMin2) ? filterMin2 : -inf,
30
- min3: Number.isFinite(filterMin3) ? filterMin3 : -inf,
31
- min4: Number.isFinite(filterMin4) ? filterMin4 : -inf,
32
- max1: Number.isFinite(filterMax1) ? filterMax1 : inf,
33
- max2: Number.isFinite(filterMax2) ? filterMax2 : inf,
34
- max3: Number.isFinite(filterMax3) ? filterMax3 : inf,
35
- max4: Number.isFinite(filterMax4) ? filterMax4 : inf
36
- };
37
- }
38
- return null;
39
- }
40
- var filter = exports.filter = {
41
- name: 'bandFilter',
42
- fs: fs,
43
- uniformTypes: {
44
- min1: 'f32',
45
- max1: 'f32',
46
- min2: 'f32',
47
- max2: 'f32',
48
- min3: 'f32',
49
- max3: 'f32',
50
- min4: 'f32',
51
- max4: 'f32'
52
- },
53
- getUniforms: getUniforms,
54
- inject: {
55
- 'fs:DECKGL_MUTATE_COLOR': "\n if (image.r < bandFilter.min1) discard;\n if (image.g < bandFilter.min2) discard;\n if (image.b < bandFilter.min3) discard;\n if (image.a < bandFilter.min4) discard;\n if (image.r > bandFilter.max1) discard;\n if (image.g > bandFilter.max2) discard;\n if (image.b > bandFilter.max3) discard;\n if (image.a > bandFilter.max4) discard;\n "
56
- }
57
- };
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImluZiIsIk1hdGgiLCJwb3ciLCJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJmaWx0ZXJNaW4xIiwiZmlsdGVyTWluMiIsImZpbHRlck1pbjMiLCJmaWx0ZXJNaW40IiwiZmlsdGVyTWF4MSIsImZpbHRlck1heDIiLCJmaWx0ZXJNYXgzIiwiZmlsdGVyTWF4NCIsIk51bWJlciIsImlzRmluaXRlIiwibWluMSIsIm1pbjIiLCJtaW4zIiwibWluNCIsIm1heDEiLCJtYXgyIiwibWF4MyIsIm1heDQiLCJmaWx0ZXIiLCJleHBvcnRzIiwibmFtZSIsInVuaWZvcm1UeXBlcyIsImluamVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yYXN0ZXIvd2ViZ2wvY29sb3IvZmlsdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBmcyA9IGBcXFxudW5pZm9ybSBiYW5kRmlsdGVyVW5pZm9ybXMge1xuICBmbG9hdCBtaW4xO1xuICBmbG9hdCBtYXgxO1xuICBmbG9hdCBtaW4yO1xuICBmbG9hdCBtYXgyO1xuICBmbG9hdCBtaW4zO1xuICBmbG9hdCBtYXgzO1xuICBmbG9hdCBtaW40O1xuICBmbG9hdCBtYXg0O1xufSBiYW5kRmlsdGVyO1xuYDtcblxuLy8gWW91IGNhbid0IHBhc3MgSlMnIC1JbmZpbml0eSBvciBJbmZpbml0eSB0byBhIHNoYWRlciBhcyBhIHVuaWZvcm1cbmNvbnN0IGluZiA9IE1hdGgucG93KDIsIDYyKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIGdldFVuaWZvcm1zKFxuICBvcHRzOiB7XG4gICAgZmlsdGVyTWluMT86IG51bWJlcjtcbiAgICBmaWx0ZXJNaW4yPzogbnVtYmVyO1xuICAgIGZpbHRlck1pbjM/OiBudW1iZXI7XG4gICAgZmlsdGVyTWluND86IG51bWJlcjtcbiAgICBmaWx0ZXJNYXgxPzogbnVtYmVyO1xuICAgIGZpbHRlck1heDI/OiBudW1iZXI7XG4gICAgZmlsdGVyTWF4Mz86IG51bWJlcjtcbiAgICBmaWx0ZXJNYXg0PzogbnVtYmVyO1xuICB9ID0ge31cbik6IEdldFVuaWZvcm1zT3V0cHV0IHtcbiAgY29uc3Qge1xuICAgIGZpbHRlck1pbjEsXG4gICAgZmlsdGVyTWluMixcbiAgICBmaWx0ZXJNaW4zLFxuICAgIGZpbHRlck1pbjQsXG4gICAgZmlsdGVyTWF4MSxcbiAgICBmaWx0ZXJNYXgyLFxuICAgIGZpbHRlck1heDMsXG4gICAgZmlsdGVyTWF4NFxuICB9ID0gb3B0cztcblxuICBpZiAoXG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1pbjEpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1pbjIpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1pbjMpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1pbjQpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1heDEpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1heDIpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1heDMpIHx8XG4gICAgTnVtYmVyLmlzRmluaXRlKGZpbHRlck1heDQpXG4gICkge1xuICAgIHJldHVybiB7XG4gICAgICBtaW4xOiBOdW1iZXIuaXNGaW5pdGUoZmlsdGVyTWluMSkgPyBmaWx0ZXJNaW4xIDogLWluZixcbiAgICAgIG1pbjI6IE51bWJlci5pc0Zpbml0ZShmaWx0ZXJNaW4yKSA/IGZpbHRlck1pbjIgOiAtaW5mLFxuICAgICAgbWluMzogTnVtYmVyLmlzRmluaXRlKGZpbHRlck1pbjMpID8gZmlsdGVyTWluMyA6IC1pbmYsXG4gICAgICBtaW40OiBOdW1iZXIuaXNGaW5pdGUoZmlsdGVyTWluNCkgPyBmaWx0ZXJNaW40IDogLWluZixcbiAgICAgIG1heDE6IE51bWJlci5pc0Zpbml0ZShmaWx0ZXJNYXgxKSA/IGZpbHRlck1heDEgOiBpbmYsXG4gICAgICBtYXgyOiBOdW1iZXIuaXNGaW5pdGUoZmlsdGVyTWF4MikgPyBmaWx0ZXJNYXgyIDogaW5mLFxuICAgICAgbWF4MzogTnVtYmVyLmlzRmluaXRlKGZpbHRlck1heDMpID8gZmlsdGVyTWF4MyA6IGluZixcbiAgICAgIG1heDQ6IE51bWJlci5pc0Zpbml0ZShmaWx0ZXJNYXg0KSA/IGZpbHRlck1heDQgOiBpbmZcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXI6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ2JhbmRGaWx0ZXInLFxuICBmcyxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgbWluMTogJ2YzMicsXG4gICAgbWF4MTogJ2YzMicsXG4gICAgbWluMjogJ2YzMicsXG4gICAgbWF4MjogJ2YzMicsXG4gICAgbWluMzogJ2YzMicsXG4gICAgbWF4MzogJ2YzMicsXG4gICAgbWluNDogJ2YzMicsXG4gICAgbWF4NDogJ2YzMidcbiAgfSxcbiAgZ2V0VW5pZm9ybXMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGlmIChpbWFnZS5yIDwgYmFuZEZpbHRlci5taW4xKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5nIDwgYmFuZEZpbHRlci5taW4yKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5iIDwgYmFuZEZpbHRlci5taW4zKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5hIDwgYmFuZEZpbHRlci5taW40KSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5yID4gYmFuZEZpbHRlci5tYXgxKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5nID4gYmFuZEZpbHRlci5tYXgyKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5iID4gYmFuZEZpbHRlci5tYXgzKSBkaXNjYXJkO1xuICAgIGlmIChpbWFnZS5hID4gYmFuZEZpbHRlci5tYXg0KSBkaXNjYXJkO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQSxJQUFNQSxFQUFFLDBLQVdQOztBQUVEO0FBQ0EsSUFBTUMsR0FBRyxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDOztBQUUzQjtBQUNBLFNBQVNDLFdBQVdBLENBQUEsRUFXQztFQUFBLElBVm5CQyxJQVNDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUVOLElBQ0VHLFVBQVUsR0FRUkosSUFBSSxDQVJOSSxVQUFVO0lBQ1ZDLFVBQVUsR0FPUkwsSUFBSSxDQVBOSyxVQUFVO0lBQ1ZDLFVBQVUsR0FNUk4sSUFBSSxDQU5OTSxVQUFVO0lBQ1ZDLFVBQVUsR0FLUlAsSUFBSSxDQUxOTyxVQUFVO0lBQ1ZDLFVBQVUsR0FJUlIsSUFBSSxDQUpOUSxVQUFVO0lBQ1ZDLFVBQVUsR0FHUlQsSUFBSSxDQUhOUyxVQUFVO0lBQ1ZDLFVBQVUsR0FFUlYsSUFBSSxDQUZOVSxVQUFVO0lBQ1ZDLFVBQVUsR0FDUlgsSUFBSSxDQUROVyxVQUFVO0VBR1osSUFDRUMsTUFBTSxDQUFDQyxRQUFRLENBQUNULFVBQVUsQ0FBQyxJQUMzQlEsTUFBTSxDQUFDQyxRQUFRLENBQUNSLFVBQVUsQ0FBQyxJQUMzQk8sTUFBTSxDQUFDQyxRQUFRLENBQUNQLFVBQVUsQ0FBQyxJQUMzQk0sTUFBTSxDQUFDQyxRQUFRLENBQUNOLFVBQVUsQ0FBQyxJQUMzQkssTUFBTSxDQUFDQyxRQUFRLENBQUNMLFVBQVUsQ0FBQyxJQUMzQkksTUFBTSxDQUFDQyxRQUFRLENBQUNKLFVBQVUsQ0FBQyxJQUMzQkcsTUFBTSxDQUFDQyxRQUFRLENBQUNILFVBQVUsQ0FBQyxJQUMzQkUsTUFBTSxDQUFDQyxRQUFRLENBQUNGLFVBQVUsQ0FBQyxFQUMzQjtJQUNBLE9BQU87TUFDTEcsSUFBSSxFQUFFRixNQUFNLENBQUNDLFFBQVEsQ0FBQ1QsVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBRyxDQUFDUixHQUFHO01BQ3JEbUIsSUFBSSxFQUFFSCxNQUFNLENBQUNDLFFBQVEsQ0FBQ1IsVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBRyxDQUFDVCxHQUFHO01BQ3JEb0IsSUFBSSxFQUFFSixNQUFNLENBQUNDLFFBQVEsQ0FBQ1AsVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBRyxDQUFDVixHQUFHO01BQ3JEcUIsSUFBSSxFQUFFTCxNQUFNLENBQUNDLFFBQVEsQ0FBQ04sVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBRyxDQUFDWCxHQUFHO01BQ3JEc0IsSUFBSSxFQUFFTixNQUFNLENBQUNDLFFBQVEsQ0FBQ0wsVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBR1osR0FBRztNQUNwRHVCLElBQUksRUFBRVAsTUFBTSxDQUFDQyxRQUFRLENBQUNKLFVBQVUsQ0FBQyxHQUFHQSxVQUFVLEdBQUdiLEdBQUc7TUFDcER3QixJQUFJLEVBQUVSLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxVQUFVLENBQUMsR0FBR0EsVUFBVSxHQUFHZCxHQUFHO01BQ3BEeUIsSUFBSSxFQUFFVCxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsVUFBVSxDQUFDLEdBQUdBLFVBQVUsR0FBR2Y7SUFDbkQsQ0FBQztFQUNIO0VBRUEsT0FBTyxJQUFJO0FBQ2I7QUFFTyxJQUFNMEIsTUFBb0IsR0FBQUMsT0FBQSxDQUFBRCxNQUFBLEdBQUc7RUFDbENFLElBQUksRUFBRSxZQUFZO0VBQ2xCN0IsRUFBRSxFQUFGQSxFQUFFO0VBQ0Y4QixZQUFZLEVBQUU7SUFDWlgsSUFBSSxFQUFFLEtBQUs7SUFDWEksSUFBSSxFQUFFLEtBQUs7SUFDWEgsSUFBSSxFQUFFLEtBQUs7SUFDWEksSUFBSSxFQUFFLEtBQUs7SUFDWEgsSUFBSSxFQUFFLEtBQUs7SUFDWEksSUFBSSxFQUFFLEtBQUs7SUFDWEgsSUFBSSxFQUFFLEtBQUs7SUFDWEksSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEdEIsV0FBVyxFQUFYQSxXQUFXO0VBQ1gyQixNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFVMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.gammaContrast = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
-
10
- // Gamma correction is a nonlinear operation that
11
- // adjusts the image's channel values pixel-by-pixel according
12
- // to a power-law:
13
- //
14
- // .. math:: pixel_{out} = pixel_{in} ^ {gamma}
15
- //
16
- // Setting gamma (:math:gamma) to be less than 1.0 darkens the image and
17
- // setting gamma to be greater than 1.0 lightens it.
18
-
19
- // Parameters
20
- // ----------
21
- // gamma (:math:gamma): float
22
- // Reasonable values range from 0.8 to 2.4.
23
-
24
- // NOTE: Input array must have float values between 0 and 1!
25
- // NOTE: gamma must be >= 0
26
- var fs = "#define epsilon 0.00000001\n\nuniform gamma_contrastUniforms {\n float gamma1;\n float gamma2;\n float gamma3;\n float gamma4;\n} gamma_contrast;\n\nfloat gammaContrastCalc(float arr, float g) {\n // Gamma must be > 0\n g = clamp(g, epsilon, g);\n\n return pow(arr, 1.0 / g);\n}\n\nvec4 gammaContrastCalc(vec4 arr, float g1, float g2, float g3, float g4) {\n arr.r = gammaContrastCalc(arr.r, g1);\n arr.g = gammaContrastCalc(arr.g, g2);\n arr.b = gammaContrastCalc(arr.b, g3);\n arr.a = gammaContrastCalc(arr.a, g4);\n\n return arr;\n}\n";
27
- function getUniforms() {
28
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
- var gammaContrastValue = opts.gammaContrastValue,
30
- gammaContrastValue1 = opts.gammaContrastValue1,
31
- gammaContrastValue2 = opts.gammaContrastValue2,
32
- gammaContrastValue3 = opts.gammaContrastValue3,
33
- gammaContrastValue4 = opts.gammaContrastValue4;
34
-
35
- // Gamma must be > 0, so not using Number.isFinite is fine
36
-
37
- if (gammaContrastValue) {
38
- return {
39
- gamma1: gammaContrastValue,
40
- gamma2: gammaContrastValue,
41
- gamma3: gammaContrastValue,
42
- gamma4: gammaContrastValue
43
- };
44
- } else if (gammaContrastValue1 || gammaContrastValue2 || gammaContrastValue3 || gammaContrastValue4) {
45
- return {
46
- gamma1: gammaContrastValue1 || 1,
47
- gamma2: gammaContrastValue2 || 1,
48
- gamma3: gammaContrastValue3 || 1,
49
- gamma4: gammaContrastValue4 || 1
50
- };
51
- }
52
- return null;
53
- }
54
- var gammaContrast = exports.gammaContrast = {
55
- name: 'gamma_contrast',
56
- fs: fs,
57
- uniformTypes: {
58
- gamma1: 'f32',
59
- gamma2: 'f32',
60
- gamma3: 'f32',
61
- gamma4: 'f32'
62
- },
63
- getUniforms: getUniforms,
64
- inject: {
65
- 'fs:DECKGL_MUTATE_COLOR': "\n image = gammaContrastCalc(image, gamma_contrast.gamma1, gamma_contrast.gamma2, gamma_contrast.gamma3, gamma_contrast.gamma4);\n "
66
- }
67
- };
68
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdhbW1hQ29udHJhc3RWYWx1ZSIsImdhbW1hQ29udHJhc3RWYWx1ZTEiLCJnYW1tYUNvbnRyYXN0VmFsdWUyIiwiZ2FtbWFDb250cmFzdFZhbHVlMyIsImdhbW1hQ29udHJhc3RWYWx1ZTQiLCJnYW1tYTEiLCJnYW1tYTIiLCJnYW1tYTMiLCJnYW1tYTQiLCJnYW1tYUNvbnRyYXN0IiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL2dhbW1hLWNvbnRyYXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBHYW1tYSBjb3JyZWN0aW9uIGlzIGEgbm9ubGluZWFyIG9wZXJhdGlvbiB0aGF0XG4vLyBhZGp1c3RzIHRoZSBpbWFnZSdzIGNoYW5uZWwgdmFsdWVzIHBpeGVsLWJ5LXBpeGVsIGFjY29yZGluZ1xuLy8gdG8gYSBwb3dlci1sYXc6XG4vL1xuLy8gLi4gbWF0aDo6IHBpeGVsX3tvdXR9ID0gcGl4ZWxfe2lufSBeIHtnYW1tYX1cbi8vXG4vLyBTZXR0aW5nIGdhbW1hICg6bWF0aDpnYW1tYSkgdG8gYmUgbGVzcyB0aGFuIDEuMCBkYXJrZW5zIHRoZSBpbWFnZSBhbmRcbi8vIHNldHRpbmcgZ2FtbWEgdG8gYmUgZ3JlYXRlciB0aGFuIDEuMCBsaWdodGVucyBpdC5cblxuLy8gUGFyYW1ldGVyc1xuLy8gLS0tLS0tLS0tLVxuLy8gZ2FtbWEgKDptYXRoOmdhbW1hKTogZmxvYXRcbi8vICAgICBSZWFzb25hYmxlIHZhbHVlcyByYW5nZSBmcm9tIDAuOCB0byAyLjQuXG5cbi8vIE5PVEU6IElucHV0IGFycmF5IG11c3QgaGF2ZSBmbG9hdCB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxIVxuLy8gTk9URTogZ2FtbWEgbXVzdCBiZSA+PSAwXG5jb25zdCBmcyA9IGBcXFxuI2RlZmluZSBlcHNpbG9uIDAuMDAwMDAwMDFcblxudW5pZm9ybSBnYW1tYV9jb250cmFzdFVuaWZvcm1zIHtcbiAgZmxvYXQgZ2FtbWExO1xuICBmbG9hdCBnYW1tYTI7XG4gIGZsb2F0IGdhbW1hMztcbiAgZmxvYXQgZ2FtbWE0O1xufSBnYW1tYV9jb250cmFzdDtcblxuZmxvYXQgZ2FtbWFDb250cmFzdENhbGMoZmxvYXQgYXJyLCBmbG9hdCBnKSB7XG4gIC8vIEdhbW1hIG11c3QgYmUgPiAwXG4gIGcgPSBjbGFtcChnLCBlcHNpbG9uLCBnKTtcblxuICByZXR1cm4gcG93KGFyciwgMS4wIC8gZyk7XG59XG5cbnZlYzQgZ2FtbWFDb250cmFzdENhbGModmVjNCBhcnIsIGZsb2F0IGcxLCBmbG9hdCBnMiwgZmxvYXQgZzMsIGZsb2F0IGc0KSB7XG4gIGFyci5yID0gZ2FtbWFDb250cmFzdENhbGMoYXJyLnIsIGcxKTtcbiAgYXJyLmcgPSBnYW1tYUNvbnRyYXN0Q2FsYyhhcnIuZywgZzIpO1xuICBhcnIuYiA9IGdhbW1hQ29udHJhc3RDYWxjKGFyci5iLCBnMyk7XG4gIGFyci5hID0gZ2FtbWFDb250cmFzdENhbGMoYXJyLmEsIGc0KTtcblxuICByZXR1cm4gYXJyO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMoXG4gIG9wdHM6IHtcbiAgICBnYW1tYUNvbnRyYXN0VmFsdWU/OiBudW1iZXI7XG4gICAgZ2FtbWFDb250cmFzdFZhbHVlMT86IG51bWJlcjtcbiAgICBnYW1tYUNvbnRyYXN0VmFsdWUyPzogbnVtYmVyO1xuICAgIGdhbW1hQ29udHJhc3RWYWx1ZTM/OiBudW1iZXI7XG4gICAgZ2FtbWFDb250cmFzdFZhbHVlND86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBHZXRVbmlmb3Jtc091dHB1dCB7XG4gIGNvbnN0IHtcbiAgICBnYW1tYUNvbnRyYXN0VmFsdWUsXG4gICAgZ2FtbWFDb250cmFzdFZhbHVlMSxcbiAgICBnYW1tYUNvbnRyYXN0VmFsdWUyLFxuICAgIGdhbW1hQ29udHJhc3RWYWx1ZTMsXG4gICAgZ2FtbWFDb250cmFzdFZhbHVlNFxuICB9ID0gb3B0cztcblxuICAvLyBHYW1tYSBtdXN0IGJlID4gMCwgc28gbm90IHVzaW5nIE51bWJlci5pc0Zpbml0ZSBpcyBmaW5lXG5cbiAgaWYgKGdhbW1hQ29udHJhc3RWYWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICBnYW1tYTE6IGdhbW1hQ29udHJhc3RWYWx1ZSxcbiAgICAgIGdhbW1hMjogZ2FtbWFDb250cmFzdFZhbHVlLFxuICAgICAgZ2FtbWEzOiBnYW1tYUNvbnRyYXN0VmFsdWUsXG4gICAgICBnYW1tYTQ6IGdhbW1hQ29udHJhc3RWYWx1ZVxuICAgIH07XG4gIH0gZWxzZSBpZiAoXG4gICAgZ2FtbWFDb250cmFzdFZhbHVlMSB8fFxuICAgIGdhbW1hQ29udHJhc3RWYWx1ZTIgfHxcbiAgICBnYW1tYUNvbnRyYXN0VmFsdWUzIHx8XG4gICAgZ2FtbWFDb250cmFzdFZhbHVlNFxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2FtbWExOiBnYW1tYUNvbnRyYXN0VmFsdWUxIHx8IDEsXG4gICAgICBnYW1tYTI6IGdhbW1hQ29udHJhc3RWYWx1ZTIgfHwgMSxcbiAgICAgIGdhbW1hMzogZ2FtbWFDb250cmFzdFZhbHVlMyB8fCAxLFxuICAgICAgZ2FtbWE0OiBnYW1tYUNvbnRyYXN0VmFsdWU0IHx8IDFcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBnYW1tYUNvbnRyYXN0OiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdnYW1tYV9jb250cmFzdCcsXG4gIGZzLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnYW1tYTE6ICdmMzInLFxuICAgIGdhbW1hMjogJ2YzMicsXG4gICAgZ2FtbWEzOiAnZjMyJyxcbiAgICBnYW1tYTQ6ICdmMzInXG4gIH0sXG4gIGdldFVuaWZvcm1zLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IGdhbW1hQ29udHJhc3RDYWxjKGltYWdlLCBnYW1tYV9jb250cmFzdC5nYW1tYTEsIGdhbW1hX2NvbnRyYXN0LmdhbW1hMiwgZ2FtbWFfY29udHJhc3QuZ2FtbWEzLCBnYW1tYV9jb250cmFzdC5nYW1tYTQpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLDBpQkF5QlA7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBUUM7RUFBQSxJQVBuQkMsSUFNQyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFFTixJQUNFRyxrQkFBa0IsR0FLaEJKLElBQUksQ0FMTkksa0JBQWtCO0lBQ2xCQyxtQkFBbUIsR0FJakJMLElBQUksQ0FKTkssbUJBQW1CO0lBQ25CQyxtQkFBbUIsR0FHakJOLElBQUksQ0FITk0sbUJBQW1CO0lBQ25CQyxtQkFBbUIsR0FFakJQLElBQUksQ0FGTk8sbUJBQW1CO0lBQ25CQyxtQkFBbUIsR0FDakJSLElBQUksQ0FETlEsbUJBQW1COztFQUdyQjs7RUFFQSxJQUFJSixrQkFBa0IsRUFBRTtJQUN0QixPQUFPO01BQ0xLLE1BQU0sRUFBRUwsa0JBQWtCO01BQzFCTSxNQUFNLEVBQUVOLGtCQUFrQjtNQUMxQk8sTUFBTSxFQUFFUCxrQkFBa0I7TUFDMUJRLE1BQU0sRUFBRVI7SUFDVixDQUFDO0VBQ0gsQ0FBQyxNQUFNLElBQ0xDLG1CQUFtQixJQUNuQkMsbUJBQW1CLElBQ25CQyxtQkFBbUIsSUFDbkJDLG1CQUFtQixFQUNuQjtJQUNBLE9BQU87TUFDTEMsTUFBTSxFQUFFSixtQkFBbUIsSUFBSSxDQUFDO01BQ2hDSyxNQUFNLEVBQUVKLG1CQUFtQixJQUFJLENBQUM7TUFDaENLLE1BQU0sRUFBRUosbUJBQW1CLElBQUksQ0FBQztNQUNoQ0ssTUFBTSxFQUFFSixtQkFBbUIsSUFBSTtJQUNqQyxDQUFDO0VBQ0g7RUFFQSxPQUFPLElBQUk7QUFDYjtBQUVPLElBQU1LLGFBQTJCLEdBQUFDLE9BQUEsQ0FBQUQsYUFBQSxHQUFHO0VBQ3pDRSxJQUFJLEVBQUUsZ0JBQWdCO0VBQ3RCakIsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZrQixZQUFZLEVBQUU7SUFDWlAsTUFBTSxFQUFFLEtBQUs7SUFDYkMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEYixXQUFXLEVBQVhBLFdBQVc7RUFDWGtCLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.linearRescale = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
-
10
- var fs = "uniform linear_rescaleUniforms {\n float scaler;\n float offset;\n} linear_rescale;\n\n// Perform a linear rescaling of image\nvec4 linear_rescale_fn(vec4 arr, float scaler, float offset) {\n return arr * scaler + offset;\n}\n";
11
- function getUniforms() {
12
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
- var linearRescaleScaler = opts.linearRescaleScaler,
14
- linearRescaleOffset = opts.linearRescaleOffset;
15
- if (!Number.isFinite(linearRescaleScaler) && !Number.isFinite(linearRescaleOffset)) {
16
- return null;
17
- }
18
- return {
19
- scaler: Number.isFinite(linearRescaleScaler) ? linearRescaleScaler : 1,
20
- offset: Number.isFinite(linearRescaleOffset) ? linearRescaleOffset : 0
21
- };
22
- }
23
- var linearRescale = exports.linearRescale = {
24
- name: 'linear_rescale',
25
- fs: fs,
26
- uniformTypes: {
27
- scaler: 'f32',
28
- offset: 'f32'
29
- },
30
- getUniforms: getUniforms,
31
- inject: {
32
- 'fs:DECKGL_MUTATE_COLOR': "\n image = linear_rescale_fn(image, linear_rescale.scaler, linear_rescale.offset);\n "
33
- }
34
- };
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImxpbmVhclJlc2NhbGVTY2FsZXIiLCJsaW5lYXJSZXNjYWxlT2Zmc2V0IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJzY2FsZXIiLCJvZmZzZXQiLCJsaW5lYXJSZXNjYWxlIiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL2xpbmVhci1yZXNjYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBmcyA9IGBcXFxudW5pZm9ybSBsaW5lYXJfcmVzY2FsZVVuaWZvcm1zIHtcbiAgZmxvYXQgc2NhbGVyO1xuICBmbG9hdCBvZmZzZXQ7XG59IGxpbmVhcl9yZXNjYWxlO1xuXG4vLyBQZXJmb3JtIGEgbGluZWFyIHJlc2NhbGluZyBvZiBpbWFnZVxudmVjNCBsaW5lYXJfcmVzY2FsZV9mbih2ZWM0IGFyciwgZmxvYXQgc2NhbGVyLCBmbG9hdCBvZmZzZXQpIHtcbiAgcmV0dXJuIGFyciAqIHNjYWxlciArIG9mZnNldDtcbn1cbmA7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKFxuICBvcHRzOiB7bGluZWFyUmVzY2FsZVNjYWxlcj86IG51bWJlcjsgbGluZWFyUmVzY2FsZU9mZnNldD86IG51bWJlcn0gPSB7fVxuKTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7bGluZWFyUmVzY2FsZVNjYWxlciwgbGluZWFyUmVzY2FsZU9mZnNldH0gPSBvcHRzO1xuXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGxpbmVhclJlc2NhbGVTY2FsZXIpICYmICFOdW1iZXIuaXNGaW5pdGUobGluZWFyUmVzY2FsZU9mZnNldCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2NhbGVyOiBOdW1iZXIuaXNGaW5pdGUobGluZWFyUmVzY2FsZVNjYWxlcikgPyBsaW5lYXJSZXNjYWxlU2NhbGVyIDogMSxcbiAgICBvZmZzZXQ6IE51bWJlci5pc0Zpbml0ZShsaW5lYXJSZXNjYWxlT2Zmc2V0KSA/IGxpbmVhclJlc2NhbGVPZmZzZXQgOiAwXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJSZXNjYWxlOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdsaW5lYXJfcmVzY2FsZScsXG4gIGZzLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBzY2FsZXI6ICdmMzInLFxuICAgIG9mZnNldDogJ2YzMidcbiAgfSxcbiAgZ2V0VW5pZm9ybXMsXG4gIGluamVjdDoge1xuICAgICdmczpERUNLR0xfTVVUQVRFX0NPTE9SJzogYFxuICAgIGltYWdlID0gbGluZWFyX3Jlc2NhbGVfZm4oaW1hZ2UsIGxpbmVhcl9yZXNjYWxlLnNjYWxlciwgbGluZWFyX3Jlc2NhbGUub2Zmc2V0KTtcbiAgICBgXG4gIH1cbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7O0FBSUEsSUFBTUEsRUFBRSwwT0FVUDtBQUVELFNBQVNDLFdBQVdBLENBQUEsRUFFQztFQUFBLElBRG5CQyxJQUFrRSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFFdkUsSUFBT0csbUJBQW1CLEdBQXlCSixJQUFJLENBQWhESSxtQkFBbUI7SUFBRUMsbUJBQW1CLEdBQUlMLElBQUksQ0FBM0JLLG1CQUFtQjtFQUUvQyxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxtQkFBbUIsQ0FBQyxJQUFJLENBQUNFLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixtQkFBbUIsQ0FBQyxFQUFFO0lBQ2xGLE9BQU8sSUFBSTtFQUNiO0VBRUEsT0FBTztJQUNMRyxNQUFNLEVBQUVGLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxtQkFBbUIsQ0FBQyxHQUFHQSxtQkFBbUIsR0FBRyxDQUFDO0lBQ3RFSyxNQUFNLEVBQUVILE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixtQkFBbUIsQ0FBQyxHQUFHQSxtQkFBbUIsR0FBRztFQUN2RSxDQUFDO0FBQ0g7QUFFTyxJQUFNSyxhQUEyQixHQUFBQyxPQUFBLENBQUFELGFBQUEsR0FBRztFQUN6Q0UsSUFBSSxFQUFFLGdCQUFnQjtFQUN0QmQsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZlLFlBQVksRUFBRTtJQUNaTCxNQUFNLEVBQUUsS0FBSztJQUNiQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RWLFdBQVcsRUFBWEEsV0FBVztFQUNYZSxNQUFNLEVBQUU7SUFDTix3QkFBd0I7RUFHMUI7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.saturation = void 0;
7
- // SPDX-License-Identifier: MIT
8
- // Copyright contributors to the kepler.gl project
9
-
10
- /**
11
- * Adjusts the saturation of a color.
12
- * From cesium:
13
- * https://github.com/CesiumGS/cesium/blob/master/Source/Shaders/Builtin/Functions/saturation.glsl
14
- *
15
- * @param {vec3} rgb The color.
16
- * @param {float} adjustment The amount to adjust the saturation of the color. Usually between 0 and 2.
17
- *
18
- * @returns {vec3} The color with the saturation adjusted.
19
- */
20
- var fs = "uniform saturationUniforms {\n float value;\n} saturation;\n\nvec3 saturate(vec3 rgb, float adjustment) {\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n";
21
- function getUniforms() {
22
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
- var saturationValue = opts.saturationValue;
24
- if (!saturationValue) {
25
- return null;
26
- }
27
- return {
28
- value: Number.isFinite(saturationValue) ? saturationValue : 1
29
- };
30
- }
31
- var saturation = exports.saturation = {
32
- name: 'saturation',
33
- fs: fs,
34
- uniformTypes: {
35
- value: 'f32'
36
- },
37
- getUniforms: getUniforms,
38
- inject: {
39
- 'fs:DECKGL_MUTATE_COLOR': "\n image = vec4(saturate(image.rgb, saturation.value), image.a);\n "
40
- }
41
- };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNhdHVyYXRpb25WYWx1ZSIsInZhbHVlIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJzYXR1cmF0aW9uIiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL3NhdHVyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtHZXRVbmlmb3Jtc091dHB1dCwgU2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQWRqdXN0cyB0aGUgc2F0dXJhdGlvbiBvZiBhIGNvbG9yLlxuICogRnJvbSBjZXNpdW06XG4gKiBodHRwczovL2dpdGh1Yi5jb20vQ2VzaXVtR1MvY2VzaXVtL2Jsb2IvbWFzdGVyL1NvdXJjZS9TaGFkZXJzL0J1aWx0aW4vRnVuY3Rpb25zL3NhdHVyYXRpb24uZ2xzbFxuICpcbiAqIEBwYXJhbSB7dmVjM30gcmdiIFRoZSBjb2xvci5cbiAqIEBwYXJhbSB7ZmxvYXR9IGFkanVzdG1lbnQgVGhlIGFtb3VudCB0byBhZGp1c3QgdGhlIHNhdHVyYXRpb24gb2YgdGhlIGNvbG9yLiBVc3VhbGx5IGJldHdlZW4gMCBhbmQgMi5cbiAqXG4gKiBAcmV0dXJucyB7dmVjM30gVGhlIGNvbG9yIHdpdGggdGhlIHNhdHVyYXRpb24gYWRqdXN0ZWQuXG4gKi9cbmNvbnN0IGZzID0gYFxcXG51bmlmb3JtIHNhdHVyYXRpb25Vbmlmb3JtcyB7XG4gIGZsb2F0IHZhbHVlO1xufSBzYXR1cmF0aW9uO1xuXG52ZWMzIHNhdHVyYXRlKHZlYzMgcmdiLCBmbG9hdCBhZGp1c3RtZW50KSB7XG4gICAgLy8gQWxnb3JpdGhtIGZyb20gQ2hhcHRlciAxNiBvZiBPcGVuR0wgU2hhZGluZyBMYW5ndWFnZVxuICAgIGNvbnN0IHZlYzMgVyA9IHZlYzMoMC4yMTI1LCAwLjcxNTQsIDAuMDcyMSk7XG4gICAgdmVjMyBpbnRlbnNpdHkgPSB2ZWMzKGRvdChyZ2IsIFcpKTtcbiAgICByZXR1cm4gbWl4KGludGVuc2l0eSwgcmdiLCBhZGp1c3RtZW50KTtcbn1cbmA7XG5cbmZ1bmN0aW9uIGdldFVuaWZvcm1zKG9wdHM6IHtzYXR1cmF0aW9uVmFsdWU/OiBudW1iZXJ9ID0ge30pOiBHZXRVbmlmb3Jtc091dHB1dCB7XG4gIGNvbnN0IHtzYXR1cmF0aW9uVmFsdWV9ID0gb3B0cztcblxuICBpZiAoIXNhdHVyYXRpb25WYWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZTogTnVtYmVyLmlzRmluaXRlKHNhdHVyYXRpb25WYWx1ZSkgPyBzYXR1cmF0aW9uVmFsdWUgOiAxXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBzYXR1cmF0aW9uOiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdzYXR1cmF0aW9uJyxcbiAgZnMsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIHZhbHVlOiAnZjMyJ1xuICB9LFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSB2ZWM0KHNhdHVyYXRlKGltYWdlLnJnYiwgc2F0dXJhdGlvbi52YWx1ZSksIGltYWdlLmEpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEVBQUUseVRBV1A7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBQTJEO0VBQUEsSUFBMURDLElBQWdDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUN4RCxJQUFPRyxlQUFlLEdBQUlKLElBQUksQ0FBdkJJLGVBQWU7RUFFdEIsSUFBSSxDQUFDQSxlQUFlLEVBQUU7SUFDcEIsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPO0lBQ0xDLEtBQUssRUFBRUMsTUFBTSxDQUFDQyxRQUFRLENBQUNILGVBQWUsQ0FBQyxHQUFHQSxlQUFlLEdBQUc7RUFDOUQsQ0FBQztBQUNIO0FBRU8sSUFBTUksVUFBd0IsR0FBQUMsT0FBQSxDQUFBRCxVQUFBLEdBQUc7RUFDdENFLElBQUksRUFBRSxZQUFZO0VBQ2xCWixFQUFFLEVBQUZBLEVBQUU7RUFDRmEsWUFBWSxFQUFFO0lBQ1pOLEtBQUssRUFBRTtFQUNULENBQUM7RUFDRE4sV0FBVyxFQUFYQSxXQUFXO0VBQ1hhLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,68 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNpZ21vaWRhbENvbnRyYXN0Iiwic2lnbW9pZGFsQmlhcyIsIk51bWJlciIsImlzRmluaXRlIiwiY29udHJhc3QiLCJiaWFzIiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL2NvbG9yL3NpZ21vaWRhbC1jb250cmFzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0dldFVuaWZvcm1zT3V0cHV0LCBTaGFkZXJNb2R1bGV9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gRnJvbSBtYXBib3gvcmlvLWNvbG9yIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxuLy9cbi8vIFNpZ21vaWRhbCBjb250cmFzdCBpcyBhIHR5cGUgb2YgY29udHJhc3QgY29udHJvbCB0aGF0XG4vLyBhZGp1c3RzIHRoZSBjb250cmFzdCB3aXRob3V0IHNhdHVyYXRpbmcgaGlnaGxpZ2h0cyBvciBzaGFkb3dzLlxuLy8gSXQgYWxsb3dzIGNvbnRyb2wgb3ZlciB0d28gZmFjdG9yczpcbi8vIHRoZSBjb250cmFzdCByYW5nZSBmcm9tIGxpZ2h0IHRvIGRhcmssIGFuZCB3aGVyZSB0aGUgbWlkZGxlIHZhbHVlXG4vLyBvZiB0aGUgbWlkLXRvbmVzIGZhbGxzLiBUaGUgcmVzdWx0IGlzIGEgbm9uLWxpbmVhciBhbmQgc21vb3RoXG4vLyBjb250cmFzdCBjaGFuZ2UuXG4vLyBQYXJhbWV0ZXJzXG4vLyAtLS0tLS0tLS0tXG4vLyBhcnIgOiBuZGFycmF5LCBmbG9hdCwgMCAuLiAxXG4vLyAgICAgQXJyYXkgb2YgY29sb3IgdmFsdWVzIHRvIGFkanVzdFxuLy8gY29udHJhc3QgOiBpbnRlZ2VyXG4vLyAgICAgRW5oYW5jZXMgdGhlIGludGVuc2l0eSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSBsaWdodGVyIGFuZCBkYXJrZXJcbi8vICAgICBlbGVtZW50cyBvZiB0aGUgaW1hZ2UuIEZvciBleGFtcGxlLCAwIGlzIG5vbmUsIDMgaXMgdHlwaWNhbCBhbmRcbi8vICAgICAyMCBpcyBhIGxvdC5cbi8vIGJpYXMgOiBmbG9hdCwgYmV0d2VlbiAwIGFuZCAxXG4vLyAgICAgVGhyZXNob2xkIGxldmVsIGZvciB0aGUgY29udHJhc3QgZnVuY3Rpb24gdG8gY2VudGVyIG9uXG4vLyAgICAgKHR5cGljYWxseSBjZW50ZXJlZCBhdCAwLjUpXG4vLyBOb3Rlc1xuLy8gLS0tLS0tLS0tLVxuLy8gU2lnbW9pZGFsIGNvbnRyYXN0IGlzIGJhc2VkIG9uIHRoZSBzaWdtb2lkYWwgdHJhbnNmZXIgZnVuY3Rpb246XG4vLyAuLiBtYXRoOjogZyh1KSA9ICggMS8oMSArIGVeey0gXFxhbHBoYSAqIHUgKyBcXGJldGEpfSlcbi8vIFRoaXMgc2lnbW9pZCBmdW5jdGlvbiBpcyBzY2FsZWQgc28gdGhhdCB0aGUgb3V0cHV0IGlzIGJvdW5kIGJ5XG4vLyB0aGUgaW50ZXJ2YWwgWzAsIDFdLlxuLy8gLi4gbWF0aDo6ICggMS8oMSArIGVeKFxcYmV0YSAqIChcXGFscGhhIC0gdSkpKSAtIDEvKDEgKyBlXihcXGJldGEgKiBcXGFscGhhKSkpL1xuLy8gICAgICggMS8oMSArIGVeKFxcYmV0YSooXFxhbHBoYSAtIDEpKSkgLSAxLygxICsgZV4oXFxiZXRhICogXFxhbHBoYSkpIClcbi8vIFdoZXJlIDptYXRoOiBgXFxhbHBoYWAgaXMgdGhlIHRocmVzaG9sZCBsZXZlbCwgYW5kIDptYXRoOiBgXFxiZXRhYCB0aGVcbi8vIGNvbnRyYXN0IGZhY3RvciB0byBiZSBhcHBsaWVkLlxuLy8gUmVmZXJlbmNlc1xuLy8gLS0tLS0tLS0tLVxuLy8gLi4gW0NUXSBIYW55IEZhcmlkIFwiRnVuZGFtZW50YWxzIG9mIEltYWdlIFByb2Nlc3NpbmdcIlxuLy8gICAgICAgICBodHRwOi8vd3d3LmNzLmRhcnRtb3V0aC5lZHUvZmFyaWQvZG93bmxvYWRzL3R1dG9yaWFscy9maXAucGRmXG5jb25zdCBmcyA9IGBcXFxuI2RlZmluZSBlcHNpbG9uIDAuMDAwMDAwMDFcblxudW5pZm9ybSBzaWdtb2lkYWxDb250cmFzdFVuaWZvcm1zIHtcbiAgZmxvYXQgY29udHJhc3Q7XG4gIGZsb2F0IGJpYXM7XG59IHNpZ21vaWRhbENvbnRyYXN0O1xuXG4vLyBOT1RFOiBJbnB1dCBhcnJheSBtdXN0IGhhdmUgZmxvYXQgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSFcbi8vIE5PVEU6IGJpYXMgbXVzdCBiZSBhIHNjYWxhciBmbG9hdCBiZXR3ZWVuIDAgYW5kIDEhXG52ZWM0IGNhbGN1bGF0ZVNpZ21vaWRhbENvbnRyYXN0KHZlYzQgYXJyLCBmbG9hdCBjb250cmFzdCwgZmxvYXQgYmlhcykge1xuICAvLyBXZSB1c2UgdGhlIG5hbWVzIGFscGhhIGFuZCBiZXRhIHRvIG1hdGNoIGRvY3VtZW50YXRpb24uXG4gIGZsb2F0IGFscGhhID0gYmlhcztcbiAgZmxvYXQgYmV0YSA9IGNvbnRyYXN0O1xuXG4gIC8vIGFscGhhIG11c3QgYmUgPj0gMFxuICBhbHBoYSA9IGNsYW1wKGFscGhhLCBlcHNpbG9uLCBhbHBoYSk7XG5cbiAgaWYgKGJldGEgPiAwLikge1xuICAgIHZlYzQgbnVtZXJhdG9yID0gMS4gLyAoMS4gKyBleHAoYmV0YSAqIChhbHBoYSAtIGFycikpKSAtIDEuIC8gKFxuICAgICAgMS4gKyBleHAoYmV0YSAqIGFscGhhKVxuICAgICk7XG4gICAgZmxvYXQgZGVub21pbmF0b3IgPSAxLiAvICgxLiArIGV4cChiZXRhICogKGFscGhhIC0gMS4pKSkgLSAxLiAvIChcbiAgICAgIDEuICsgZXhwKGJldGEgKiBhbHBoYSlcbiAgICApO1xuICAgIGFyciA9IG51bWVyYXRvciAvIGRlbm9taW5hdG9yO1xuICB9IGVsc2UgaWYgKGJldGEgPCAwLikge1xuICAgIGFyciA9IChcbiAgICAgIChiZXRhICogYWxwaGEpIC0gbG9nKFxuICAgICAgICAoXG4gICAgICAgICAgMS4wIC8gKFxuICAgICAgICAgICAgKGFyciAvICgxLjAgKyBleHAoKGJldGEgKiBhbHBoYSkgLSBiZXRhKSkpIC1cbiAgICAgICAgICAgIChhcnIgLyAoMS4wICsgZXhwKGJldGEgKiBhbHBoYSkpKSArXG4gICAgICAgICAgICAoMS4wIC8gKDEuMCArIGV4cChiZXRhICogYWxwaGEpKSlcbiAgICAgICAgICApXG4gICAgICAgICkgLSAxLjApXG4gICAgKSAvIGJldGE7XG4gIH1cblxuICByZXR1cm4gYXJyO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMoXG4gIG9wdHM6IHtzaWdtb2lkYWxDb250cmFzdD86IG51bWJlcjsgc2lnbW9pZGFsQmlhcz86IG51bWJlcn0gPSB7fVxuKTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7c2lnbW9pZGFsQ29udHJhc3QsIHNpZ21vaWRhbEJpYXN9ID0gb3B0cztcblxuICBpZiAoIShOdW1iZXIuaXNGaW5pdGUoc2lnbW9pZGFsQ29udHJhc3QpIHx8IE51bWJlci5pc0Zpbml0ZShzaWdtb2lkYWxCaWFzKSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY29udHJhc3Q6IE51bWJlci5pc0Zpbml0ZShzaWdtb2lkYWxDb250cmFzdCkgPyBzaWdtb2lkYWxDb250cmFzdCA6IDAsXG4gICAgYmlhczogTnVtYmVyLmlzRmluaXRlKHNpZ21vaWRhbEJpYXMpID8gc2lnbW9pZGFsQmlhcyA6IDAuNVxuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc2lnbW9pZGFsQ29udHJhc3Q6IFNoYWRlck1vZHVsZSA9IHtcbiAgbmFtZTogJ3NpZ21vaWRhbENvbnRyYXN0JyxcbiAgZnMsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGNvbnRyYXN0OiAnZjMyJyxcbiAgICBiaWFzOiAnZjMyJ1xuICB9LFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSBjYWxjdWxhdGVTaWdtb2lkYWxDb250cmFzdChpbWFnZSwgc2lnbW9pZGFsQ29udHJhc3QuY29udHJhc3QsIHNpZ21vaWRhbENvbnRyYXN0LmJpYXMpO1xuICAgIGBcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLHlrQ0F5Q1A7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBRUM7RUFBQSxJQURuQkMsSUFBMEQsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQyxDQUFDO0VBRS9ELElBQU9HLGlCQUFpQixHQUFtQkosSUFBSSxDQUF4Q0ksaUJBQWlCO0lBQUVDLGFBQWEsR0FBSUwsSUFBSSxDQUFyQkssYUFBYTtFQUV2QyxJQUFJLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxpQkFBaUIsQ0FBQyxJQUFJRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsYUFBYSxDQUFDLENBQUMsRUFBRTtJQUMzRSxPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEcsUUFBUSxFQUFFRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsaUJBQWlCLENBQUMsR0FBR0EsaUJBQWlCLEdBQUcsQ0FBQztJQUNwRUssSUFBSSxFQUFFSCxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsYUFBYSxDQUFDLEdBQUdBLGFBQWEsR0FBRztFQUN6RCxDQUFDO0FBQ0g7QUFFTyxJQUFNRCxpQkFBK0IsR0FBQU0sT0FBQSxDQUFBTixpQkFBQSxHQUFHO0VBQzdDTyxJQUFJLEVBQUUsbUJBQW1CO0VBQ3pCYixFQUFFLEVBQUZBLEVBQUU7RUFDRmMsWUFBWSxFQUFFO0lBQ1pKLFFBQVEsRUFBRSxLQUFLO0lBQ2ZDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDRFYsV0FBVyxFQUFYQSxXQUFXO0VBQ1hjLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,46 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmczEiLCJmczIiLCJnZXRVbmlmb3JtcyIsIm9wdHMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJpbWFnZVBhbiIsIl9vcHRzJHBhbldlaWdodCIsInBhbldlaWdodCIsImJpdG1hcFRleHR1cmVQYW4iLCJwYW5zaGFycGVuQnJvdmV5IiwiZXhwb3J0cyIsIm5hbWUiLCJ1bmlmb3JtVHlwZXMiLCJkZWZpbmVzIiwiU0FNUExFUl9UWVBFIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC9wYW5zaGFycGVuL3BhbnNoYXJwZW4tYnJvdmV5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB0eXBlIHtUZXh0dXJlfSBmcm9tICdAbHVtYS5nbC9jb3JlJztcbmltcG9ydCB7R2V0VW5pZm9ybXNPdXRwdXQsIFNoYWRlck1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyBCcm92ZXkgTWV0aG9kOiBFYWNoIHJlc2FtcGxlZCwgbXVsdGlzcGVjdHJhbCBwaXhlbCBpc1xuLy8gbXVsdGlwbGllZCBieSB0aGUgcmF0aW8gb2YgdGhlIGNvcnJlc3BvbmRpbmdcbi8vIHBhbmNocm9tYXRpYyBwaXhlbCBpbnRlbnNpdHkgdG8gdGhlIHN1bSBvZiBhbGwgdGhlXG4vLyBtdWx0aXNwZWN0cmFsIGludGVuc2l0aWVzLlxuLy8gT3JpZ2luYWwgY29kZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvcmlvLXBhbnNoYXJwZW5cbi8vXG5jb25zdCBmczEgPSBgXFxcbnVuaWZvcm0gc2FtcGxlcjJEIGJpdG1hcFRleHR1cmVQYW47XG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuY29uc3QgZnMyID0gYFxcXG5wcmVjaXNpb24gbWVkaXVtcCB1c2FtcGxlcjJEO1xuXG4jaWZkZWYgU0FNUExFUl9UWVBFXG4gIHVuaWZvcm0gU0FNUExFUl9UWVBFIGJpdG1hcFRleHR1cmVQYW47XG4jZWxzZVxuICB1bmlmb3JtIHNhbXBsZXIyRCBiaXRtYXBUZXh0dXJlUGFuO1xuI2VuZGlmXG5cbnVuaWZvcm0gcGFuc2hhcnBlbl9icm92ZXlVbmlmb3JtcyB7XG4gIGZsb2F0IHBhbldlaWdodDtcbn0gcGFuc2hhcnBlbl9icm92ZXk7XG5cbmZsb2F0IHBhbnNoYXJwZW5fYnJvdmV5X3JhdGlvKHZlYzQgcmdiLCBmbG9hdCBwYW4sIGZsb2F0IHdlaWdodCkge1xuICByZXR1cm4gcGFuIC8gKChyZ2IuciArIHJnYi5nICsgcmdiLmIgKiB3ZWlnaHQpIC8gKDIuICsgd2VpZ2h0KSk7XG59XG5cbnZlYzQgcGFuc2hhcnBlbl9icm92ZXlfY2FsYyh2ZWM0IHJnYiwgZmxvYXQgcGFuLCBmbG9hdCB3ZWlnaHQpIHtcbiAgZmxvYXQgcmF0aW8gPSBwYW5zaGFycGVuX2Jyb3ZleV9yYXRpbyhyZ2IsIHBhbiwgd2VpZ2h0KTtcbiAgcmV0dXJuIHJhdGlvICogcmdiO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge2ltYWdlUGFuPzogVGV4dHVyZTsgcGFuV2VpZ2h0PzogbnVtYmVyfSA9IHt9KTogR2V0VW5pZm9ybXNPdXRwdXQge1xuICBjb25zdCB7aW1hZ2VQYW4sIHBhbldlaWdodCA9IDAuMn0gPSBvcHRzO1xuXG4gIGlmICghaW1hZ2VQYW4pIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYml0bWFwVGV4dHVyZVBhbjogaW1hZ2VQYW4sXG4gICAgcGFuV2VpZ2h0XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBwYW5zaGFycGVuQnJvdmV5OiBTaGFkZXJNb2R1bGUgPSB7XG4gIG5hbWU6ICdwYW5zaGFycGVuX2Jyb3ZleScsXG4gIGZzMSxcbiAgZnMyLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBwYW5XZWlnaHQ6ICdmMzInXG4gIH0sXG4gIGRlZmluZXM6IHtcbiAgICBTQU1QTEVSX1RZUEU6ICdzYW1wbGVyMkQnXG4gIH0sXG4gIGdldFVuaWZvcm1zLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBmbG9hdCBwYW5fYmFuZCA9IGZsb2F0KHRleHR1cmUoYml0bWFwVGV4dHVyZVBhbiwgY29vcmQpLnIpO1xuICAgIGltYWdlID0gcGFuc2hhcnBlbl9icm92ZXlfY2FsYyhpbWFnZSwgcGFuX2JhbmQsIHBhbnNoYXJwZW5fYnJvdmV5LnBhbldlaWdodCk7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLEdBQUcsa2FBZVI7QUFFRCxJQUFNQyxHQUFHLG1oQkFxQlI7QUFFRCxTQUFTQyxXQUFXQSxDQUFBLEVBQXlFO0VBQUEsSUFBeEVDLElBQThDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUMsQ0FBQztFQUN0RSxJQUFPRyxRQUFRLEdBQXFCSixJQUFJLENBQWpDSSxRQUFRO0lBQUFDLGVBQUEsR0FBcUJMLElBQUksQ0FBdkJNLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxlQUFBLGNBQUcsR0FBRyxHQUFBQSxlQUFBO0VBRWhDLElBQUksQ0FBQ0QsUUFBUSxFQUFFO0lBQ2IsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPO0lBQ0xHLGdCQUFnQixFQUFFSCxRQUFRO0lBQzFCRSxTQUFTLEVBQVRBO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTUUsZ0JBQThCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRztFQUM1Q0UsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QmIsR0FBRyxFQUFIQSxHQUFHO0VBQ0hDLEdBQUcsRUFBSEEsR0FBRztFQUNIYSxZQUFZLEVBQUU7SUFDWkwsU0FBUyxFQUFFO0VBQ2IsQ0FBQztFQUNETSxPQUFPLEVBQUU7SUFDUEMsWUFBWSxFQUFFO0VBQ2hCLENBQUM7RUFDRGQsV0FBVyxFQUFYQSxXQUFXO0VBQ1hlLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUkxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,26 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImVuaGFuY2VkVmVnZXRhdGlvbkluZGV4IiwiZXhwb3J0cyIsIm5hbWUiLCJpbmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFzdGVyL3dlYmdsL3NwZWN0cmFsLWluZGljZXMvZXZpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIENhbGN1bGF0ZSBlbmhhbmNlZCB2ZWdldGF0aW9uIGluZGV4XG4vLyBFeHBlY3RlZCB0byBiZSBvcmRlcmVkOlxuLy8gcmVkOiBMYW5kc2F0IDggYmFuZCA1XG4vLyBncmVlbjogTGFuZHNhdCA4IGJhbmQgNFxuLy8gYmx1ZTogTGFuZHNhdCA4IGJhbmQgMlxuLy9cbi8vIEVWSSA9IDIuNSAqICgoQmFuZCA1IOKAkyBCYW5kIDQpIC8gKEJhbmQgNSArIDYgKiBCYW5kIDQg4oCTIDcuNSAqIEJhbmQgMiArIDEpKVxuLy8gaHR0cHM6Ly93d3cudXNncy5nb3YvbGFuZC1yZXNvdXJjZXMvbmxpL2xhbmRzYXQvbGFuZHNhdC1lbmhhbmNlZC12ZWdldGF0aW9uLWluZGV4XG5jb25zdCBmcyA9IGBcXFxuZmxvYXQgZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKHZlYzQgaW1hZ2UpIHtcbiAgZmxvYXQgYmFuZDUgPSBpbWFnZS5yO1xuICBmbG9hdCBiYW5kNCA9IGltYWdlLmc7XG4gIGZsb2F0IGJhbmQyID0gaW1hZ2UuYjtcblxuICBmbG9hdCBudW1lcmF0b3IgPSBiYW5kNSAtIGJhbmQ0O1xuICBmbG9hdCBkZW5vbWluYXRvciA9IGJhbmQ1ICsgKDYuICogYmFuZDQpIC0gKDcuNSAqIGJhbmQyKSArIDEuO1xuICByZXR1cm4gMi41ICogKG51bWVyYXRvciAvIGRlbm9taW5hdG9yKTtcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBlbmhhbmNlZFZlZ2V0YXRpb25JbmRleDogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAnZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleCcsXG4gIGZzLFxuICBpbmplY3Q6IHtcbiAgICAnZnM6REVDS0dMX01VVEFURV9DT0xPUic6IGBcbiAgICBpbWFnZSA9IHZlYzQoZW5oYW5jZWRfdmVnZXRhdGlvbl9pbmRleF9jYWxjKGltYWdlKSwgMC4sIDAuLCAwLik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxFQUFFLDZSQVVQO0FBRU0sSUFBTUMsdUJBQXFDLEdBQUFDLE9BQUEsQ0FBQUQsdUJBQUEsR0FBRztFQUNuREUsSUFBSSxFQUFFLDJCQUEyQjtFQUNqQ0gsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZJLE1BQU0sRUFBRTtJQUNOLHdCQUF3QjtFQUcxQjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=