@kepler.gl/deckgl-layers 3.3.0-alpha.5 → 3.3.0-alpha.7
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.
- package/dist/cjs/3d-building-layer/3d-building-layer.js +66 -0
- package/dist/cjs/3d-building-layer/3d-building-utils.js +166 -0
- package/dist/cjs/3d-building-layer/types.js +6 -0
- package/dist/cjs/cluster-layer/cluster-layer.js +292 -0
- package/dist/cjs/column-layer/enhanced-column-layer.js +160 -0
- package/dist/{deckgl-extensions → cjs/deckgl-extensions}/filter-arrow-layer.js +1 -1
- package/dist/cjs/deckgl-extensions/filter-shader-module.js +26 -0
- package/dist/cjs/globe/atmosphere-layer.js +341 -0
- package/dist/cjs/globe/enhanced-multi-icon-layer.js +63 -0
- package/dist/cjs/globe/globe-depth-disk-layer.js +145 -0
- package/dist/cjs/globe/globe-layers.js +574 -0
- package/dist/cjs/globe/globe-stars-layer.js +99 -0
- package/dist/cjs/globe/globe-stars-layer.spec.js +42 -0
- package/dist/cjs/globe/globe-view.js +404 -0
- package/dist/{globe → cjs/globe}/index.js +19 -1
- package/dist/cjs/globe/mvt-label-layer.js +190 -0
- package/dist/cjs/grid-layer/enhanced-cpu-grid-layer.js +116 -0
- package/dist/cjs/hexagon-layer/enhanced-hexagon-layer.js +134 -0
- package/dist/{index.js → cjs/index.js} +1 -1
- package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
- package/dist/cjs/layer-utils/cluster-utils.js +93 -0
- package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
- package/dist/cjs/layer-utils/globe-cell-utils.js +173 -0
- package/dist/cjs/layer-utils/shader-utils.js +38 -0
- package/dist/cjs/line-layer/line-layer.js +95 -0
- package/dist/cjs/raster/images.js +271 -0
- package/dist/cjs/raster/pipeline-validation-patch.js +101 -0
- package/dist/cjs/raster/raster-layer/raster-layer-shaders.js +163 -0
- package/dist/cjs/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
- package/dist/cjs/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
- package/dist/cjs/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
- package/dist/cjs/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
- package/dist/cjs/raster/raster-layer/raster-layer.js +287 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
- package/dist/cjs/raster/raster-mesh-layer/raster-mesh-layer.js +321 -0
- package/dist/cjs/raster/raster-processing-uniforms.js +124 -0
- package/dist/cjs/raster/types.js +6 -0
- package/dist/cjs/raster/util.js +139 -0
- package/dist/cjs/raster/webgl/color/colormap.js +45 -0
- package/dist/cjs/raster/webgl/color/filter.js +58 -0
- package/dist/cjs/raster/webgl/color/gamma-contrast.js +68 -0
- package/dist/cjs/raster/webgl/color/linear-rescale.js +35 -0
- package/dist/cjs/raster/webgl/color/saturation.js +42 -0
- package/dist/cjs/raster/webgl/color/sigmoidal-contrast.js +68 -0
- package/dist/{raster → cjs/raster}/webgl/index.js +1 -1
- package/dist/cjs/raster/webgl/pansharpen/pansharpen-brovey.js +46 -0
- package/dist/cjs/raster/webgl/spectral-indices/evi.js +26 -0
- package/dist/cjs/raster/webgl/spectral-indices/msavi.js +25 -0
- package/dist/cjs/raster/webgl/spectral-indices/normalized-difference.js +19 -0
- package/dist/cjs/raster/webgl/spectral-indices/savi.js +21 -0
- package/dist/cjs/raster/webgl/texture/combine-bands.js +65 -0
- package/dist/cjs/raster/webgl/texture/mask.js +50 -0
- package/dist/cjs/raster/webgl/texture/reorder-bands.js +72 -0
- package/dist/cjs/raster/webgl/texture/rgba-image.js +34 -0
- package/dist/cjs/raster/webgl/types.js +6 -0
- package/dist/cjs/svg-icon-layer/scatterplot-icon-layer.js +88 -0
- package/dist/cjs/svg-icon-layer/svg-icon-layer.js +104 -0
- package/dist/cjs/wms/wms-layer.js +624 -0
- package/dist/esm/3d-building-layer/3d-building-layer.js +62 -0
- package/dist/esm/3d-building-layer/3d-building-utils.js +157 -0
- package/dist/esm/3d-building-layer/types.js +3 -0
- package/dist/esm/cluster-layer/cluster-layer.js +286 -0
- package/dist/esm/column-layer/enhanced-column-layer.js +156 -0
- package/dist/esm/deckgl-extensions/filter-arrow-layer.js +64 -0
- package/dist/esm/deckgl-extensions/filter-shader-module.js +20 -0
- package/dist/esm/globe/atmosphere-layer.js +335 -0
- package/dist/esm/globe/enhanced-multi-icon-layer.js +60 -0
- package/dist/esm/globe/globe-depth-disk-layer.js +140 -0
- package/dist/esm/globe/globe-layers.js +566 -0
- package/dist/esm/globe/globe-stars-layer.js +92 -0
- package/dist/esm/globe/globe-stars-layer.spec.js +40 -0
- package/dist/esm/globe/globe-view.js +398 -0
- package/dist/esm/globe/index.js +26 -0
- package/dist/esm/globe/mvt-label-layer.js +187 -0
- package/dist/esm/grid-layer/enhanced-cpu-grid-layer.js +112 -0
- package/dist/esm/hexagon-layer/enhanced-hexagon-layer.js +130 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/layer-utils/aggregation-utils.js +172 -0
- package/dist/esm/layer-utils/cluster-utils.js +86 -0
- package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
- package/dist/esm/layer-utils/globe-cell-utils.js +167 -0
- package/dist/esm/layer-utils/shader-utils.js +32 -0
- package/dist/esm/line-layer/line-layer.js +91 -0
- package/dist/esm/raster/images.js +267 -0
- package/dist/esm/raster/pipeline-validation-patch.js +94 -0
- package/dist/esm/raster/raster-layer/raster-layer-shaders.js +153 -0
- package/dist/esm/raster/raster-layer/raster-layer-webgl1.fs.js +5 -0
- package/dist/esm/raster/raster-layer/raster-layer-webgl1.vs.js +5 -0
- package/dist/esm/raster/raster-layer/raster-layer-webgl2.fs.js +5 -0
- package/dist/esm/raster/raster-layer/raster-layer-webgl2.vs.js +5 -0
- package/dist/esm/raster/raster-layer/raster-layer.js +283 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +30 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +5 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +5 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +5 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +5 -0
- package/dist/esm/raster/raster-mesh-layer/raster-mesh-layer.js +318 -0
- package/dist/esm/raster/raster-processing-uniforms.js +118 -0
- package/dist/esm/raster/types.js +3 -0
- package/dist/esm/raster/util.js +134 -0
- package/dist/esm/raster/webgl/color/colormap.js +39 -0
- package/dist/esm/raster/webgl/color/filter.js +52 -0
- package/dist/esm/raster/webgl/color/gamma-contrast.js +62 -0
- package/dist/esm/raster/webgl/color/linear-rescale.js +29 -0
- package/dist/esm/raster/webgl/color/saturation.js +36 -0
- package/dist/esm/raster/webgl/color/sigmoidal-contrast.js +62 -0
- package/dist/esm/raster/webgl/index.js +26 -0
- package/dist/esm/raster/webgl/pansharpen/pansharpen-brovey.js +40 -0
- package/dist/esm/raster/webgl/spectral-indices/evi.js +20 -0
- package/dist/esm/raster/webgl/spectral-indices/msavi.js +19 -0
- package/dist/esm/raster/webgl/spectral-indices/normalized-difference.js +13 -0
- package/dist/esm/raster/webgl/spectral-indices/savi.js +15 -0
- package/dist/esm/raster/webgl/texture/combine-bands.js +58 -0
- package/dist/esm/raster/webgl/texture/mask.js +44 -0
- package/dist/esm/raster/webgl/texture/reorder-bands.js +65 -0
- package/dist/esm/raster/webgl/texture/rgba-image.js +28 -0
- package/dist/esm/raster/webgl/types.js +3 -0
- package/dist/esm/svg-icon-layer/scatterplot-icon-layer.js +84 -0
- package/dist/esm/svg-icon-layer/svg-icon-layer.js +101 -0
- package/dist/esm/wms/wms-layer.js +619 -0
- package/dist/globe/atmosphere-layer.d.ts +22 -1
- package/dist/globe/globe-stars-layer.d.ts +5 -0
- package/dist/globe/globe-stars-layer.spec.d.ts +1 -0
- package/dist/globe/index.d.ts +2 -2
- package/dist/wms/wms-layer.d.ts +8 -0
- package/package.json +19 -10
- package/dist/3d-building-layer/3d-building-layer.js +0 -66
- package/dist/3d-building-layer/3d-building-utils.js +0 -166
- package/dist/3d-building-layer/types.js +0 -6
- package/dist/cluster-layer/cluster-layer.js +0 -292
- package/dist/column-layer/enhanced-column-layer.js +0 -160
- package/dist/deckgl-extensions/filter-shader-module.js +0 -26
- package/dist/globe/atmosphere-layer.js +0 -220
- package/dist/globe/enhanced-multi-icon-layer.js +0 -63
- package/dist/globe/globe-depth-disk-layer.js +0 -145
- package/dist/globe/globe-layers.js +0 -569
- package/dist/globe/globe-stars-layer.js +0 -69
- package/dist/globe/globe-view.js +0 -404
- package/dist/globe/mvt-label-layer.js +0 -190
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -116
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -134
- package/dist/layer-utils/aggregation-utils.js +0 -181
- package/dist/layer-utils/cluster-utils.js +0 -93
- package/dist/layer-utils/cpu-aggregator.js +0 -798
- package/dist/layer-utils/globe-cell-utils.js +0 -173
- package/dist/layer-utils/shader-utils.js +0 -38
- package/dist/line-layer/line-layer.js +0 -95
- package/dist/raster/images.js +0 -271
- package/dist/raster/pipeline-validation-patch.js +0 -101
- package/dist/raster/raster-layer/raster-layer-shaders.js +0 -163
- package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +0 -10
- package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +0 -10
- package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +0 -10
- package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +0 -10
- package/dist/raster/raster-layer/raster-layer.js +0 -287
- package/dist/raster/raster-mesh-layer/matrix.d.ts +0 -4
- package/dist/raster/raster-mesh-layer/matrix.js +0 -18
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +0 -38
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +0 -10
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +0 -10
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +0 -10
- package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +0 -10
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +0 -321
- package/dist/raster/raster-processing-uniforms.js +0 -124
- package/dist/raster/types.js +0 -6
- package/dist/raster/util.js +0 -139
- package/dist/raster/webgl/color/colormap.js +0 -45
- package/dist/raster/webgl/color/filter.js +0 -58
- package/dist/raster/webgl/color/gamma-contrast.js +0 -68
- package/dist/raster/webgl/color/linear-rescale.js +0 -35
- package/dist/raster/webgl/color/saturation.js +0 -42
- package/dist/raster/webgl/color/sigmoidal-contrast.js +0 -68
- package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +0 -46
- package/dist/raster/webgl/spectral-indices/evi.js +0 -26
- package/dist/raster/webgl/spectral-indices/msavi.js +0 -25
- package/dist/raster/webgl/spectral-indices/normalized-difference.js +0 -19
- package/dist/raster/webgl/spectral-indices/savi.js +0 -21
- package/dist/raster/webgl/texture/combine-bands.js +0 -65
- package/dist/raster/webgl/texture/mask.js +0 -50
- package/dist/raster/webgl/texture/reorder-bands.js +0 -72
- package/dist/raster/webgl/texture/rgba-image.js +0 -34
- package/dist/raster/webgl/types.js +0 -6
- package/dist/svg-icon-layer/scatterplot-icon-layer.js +0 -88
- package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
- package/dist/wms/wms-layer.js +0 -594
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.rasterProcessingUniforms = exports.UNIFORM_NAME_MAP = exports.RASTER_PROCESSING_FS = void 0;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Shared UBO for all raster processing module uniforms.
|
|
12
|
-
*
|
|
13
|
-
* WebGL2 guarantees only 12 fragment uniform blocks (GL_MAX_FRAGMENT_UNIFORM_BUFFERS).
|
|
14
|
-
* Without consolidation, the base layer already uses 8–9 blocks (project, picking,
|
|
15
|
-
* lighting, phongMaterial, floatColors, layer, shadow, simpleMesh/rasterMesh, raster),
|
|
16
|
-
* leaving only 3–4 for raster processing modules. Since a typical pipeline can use
|
|
17
|
-
* 5–9 raster modules (combineBands, mask, reorderBands, linearRescale, gammaContrast,
|
|
18
|
-
* sigmoidalContrast, colormap, filter, saturation), each declaring its own UBO block
|
|
19
|
-
* would exceed the limit.
|
|
20
|
-
*
|
|
21
|
-
* This module declares a single UBO that contains all possible raster processing
|
|
22
|
-
* uniforms. Individual modules' GLSL code still references the uniforms through
|
|
23
|
-
* the block instance name, and prepareLumaModules() rewires the declarations.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
var RASTER_PROCESSING_UNIFORM_BLOCK = "uniform rasterProcessingUniforms {\n // linear_rescale\n float linear_rescale_scaler;\n float linear_rescale_offset;\n\n // gamma_contrast\n float gamma_contrast_gamma1;\n float gamma_contrast_gamma2;\n float gamma_contrast_gamma3;\n float gamma_contrast_gamma4;\n\n // sigmoidalContrast\n float sigmoidalContrast_contrast;\n float sigmoidalContrast_bias;\n\n // colormap\n int colormap_hasCategoricalColors;\n int colormap_categoricalMinValue;\n int colormap_categoricalMaxValue;\n int colormap_maxPixelValue;\n\n // bandFilter\n float bandFilter_min1;\n float bandFilter_max1;\n float bandFilter_min2;\n float bandFilter_max2;\n float bandFilter_min3;\n float bandFilter_max3;\n float bandFilter_min4;\n float bandFilter_max4;\n\n // saturation\n float saturation_value;\n\n // reorder_bands\n mat4 reorder_bands_ordering;\n\n // mask (shared by mask_image_float, mask_image_uint, mask_image_int)\n float mask_keepMin;\n float mask_keepMax;\n\n // pansharpen_brovey\n float pansharpen_brovey_panWeight;\n} rasterProcessing;\n";
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* GLSL #define aliases that let per-module code continue referencing uniforms
|
|
30
|
-
* through their original block instance names (e.g. `linear_rescale.scaler`).
|
|
31
|
-
*/
|
|
32
|
-
var ALIAS_DEFINES = "#define linear_rescale_scaler_ALIAS rasterProcessing.linear_rescale_scaler\n#define linear_rescale_offset_ALIAS rasterProcessing.linear_rescale_offset\n#define gamma_contrast_gamma1_ALIAS rasterProcessing.gamma_contrast_gamma1\n#define gamma_contrast_gamma2_ALIAS rasterProcessing.gamma_contrast_gamma2\n#define gamma_contrast_gamma3_ALIAS rasterProcessing.gamma_contrast_gamma3\n#define gamma_contrast_gamma4_ALIAS rasterProcessing.gamma_contrast_gamma4\n#define sigmoidalContrast_contrast_ALIAS rasterProcessing.sigmoidalContrast_contrast\n#define sigmoidalContrast_bias_ALIAS rasterProcessing.sigmoidalContrast_bias\n#define colormap_hasCategoricalColors_ALIAS rasterProcessing.colormap_hasCategoricalColors\n#define colormap_categoricalMinValue_ALIAS rasterProcessing.colormap_categoricalMinValue\n#define colormap_categoricalMaxValue_ALIAS rasterProcessing.colormap_categoricalMaxValue\n#define colormap_maxPixelValue_ALIAS rasterProcessing.colormap_maxPixelValue\n#define bandFilter_min1_ALIAS rasterProcessing.bandFilter_min1\n#define bandFilter_max1_ALIAS rasterProcessing.bandFilter_max1\n#define bandFilter_min2_ALIAS rasterProcessing.bandFilter_min2\n#define bandFilter_max2_ALIAS rasterProcessing.bandFilter_max2\n#define bandFilter_min3_ALIAS rasterProcessing.bandFilter_min3\n#define bandFilter_max3_ALIAS rasterProcessing.bandFilter_max3\n#define bandFilter_min4_ALIAS rasterProcessing.bandFilter_min4\n#define bandFilter_max4_ALIAS rasterProcessing.bandFilter_max4\n#define saturation_value_ALIAS rasterProcessing.saturation_value\n#define reorder_bands_ordering_ALIAS rasterProcessing.reorder_bands_ordering\n#define mask_keepMin_ALIAS rasterProcessing.mask_keepMin\n#define mask_keepMax_ALIAS rasterProcessing.mask_keepMax\n#define pansharpen_brovey_panWeight_ALIAS rasterProcessing.pansharpen_brovey_panWeight\n";
|
|
33
|
-
var RASTER_PROCESSING_FS = exports.RASTER_PROCESSING_FS = RASTER_PROCESSING_UNIFORM_BLOCK + ALIAS_DEFINES;
|
|
34
|
-
var rasterProcessingUniforms = exports.rasterProcessingUniforms = {
|
|
35
|
-
name: 'rasterProcessing',
|
|
36
|
-
fs: RASTER_PROCESSING_FS,
|
|
37
|
-
vs: '',
|
|
38
|
-
uniformTypes: {
|
|
39
|
-
linear_rescale_scaler: 'f32',
|
|
40
|
-
linear_rescale_offset: 'f32',
|
|
41
|
-
gamma_contrast_gamma1: 'f32',
|
|
42
|
-
gamma_contrast_gamma2: 'f32',
|
|
43
|
-
gamma_contrast_gamma3: 'f32',
|
|
44
|
-
gamma_contrast_gamma4: 'f32',
|
|
45
|
-
sigmoidalContrast_contrast: 'f32',
|
|
46
|
-
sigmoidalContrast_bias: 'f32',
|
|
47
|
-
colormap_hasCategoricalColors: 'i32',
|
|
48
|
-
colormap_categoricalMinValue: 'i32',
|
|
49
|
-
colormap_categoricalMaxValue: 'i32',
|
|
50
|
-
colormap_maxPixelValue: 'i32',
|
|
51
|
-
bandFilter_min1: 'f32',
|
|
52
|
-
bandFilter_max1: 'f32',
|
|
53
|
-
bandFilter_min2: 'f32',
|
|
54
|
-
bandFilter_max2: 'f32',
|
|
55
|
-
bandFilter_min3: 'f32',
|
|
56
|
-
bandFilter_max3: 'f32',
|
|
57
|
-
bandFilter_min4: 'f32',
|
|
58
|
-
bandFilter_max4: 'f32',
|
|
59
|
-
saturation_value: 'f32',
|
|
60
|
-
reorder_bands_ordering: 'mat4x4<f32>',
|
|
61
|
-
mask_keepMin: 'f32',
|
|
62
|
-
mask_keepMax: 'f32',
|
|
63
|
-
pansharpen_brovey_panWeight: 'f32'
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Map from original module uniform names (as returned by getUniforms) to
|
|
69
|
-
* the prefixed names used in the shared UBO.
|
|
70
|
-
*/
|
|
71
|
-
var UNIFORM_NAME_MAP = exports.UNIFORM_NAME_MAP = {
|
|
72
|
-
linear_rescale: {
|
|
73
|
-
scaler: 'linear_rescale_scaler',
|
|
74
|
-
offset: 'linear_rescale_offset'
|
|
75
|
-
},
|
|
76
|
-
gamma_contrast: {
|
|
77
|
-
gamma1: 'gamma_contrast_gamma1',
|
|
78
|
-
gamma2: 'gamma_contrast_gamma2',
|
|
79
|
-
gamma3: 'gamma_contrast_gamma3',
|
|
80
|
-
gamma4: 'gamma_contrast_gamma4'
|
|
81
|
-
},
|
|
82
|
-
sigmoidalContrast: {
|
|
83
|
-
contrast: 'sigmoidalContrast_contrast',
|
|
84
|
-
bias: 'sigmoidalContrast_bias'
|
|
85
|
-
},
|
|
86
|
-
colormap: {
|
|
87
|
-
hasCategoricalColors: 'colormap_hasCategoricalColors',
|
|
88
|
-
categoricalMinValue: 'colormap_categoricalMinValue',
|
|
89
|
-
categoricalMaxValue: 'colormap_categoricalMaxValue',
|
|
90
|
-
maxPixelValue: 'colormap_maxPixelValue'
|
|
91
|
-
},
|
|
92
|
-
bandFilter: {
|
|
93
|
-
min1: 'bandFilter_min1',
|
|
94
|
-
max1: 'bandFilter_max1',
|
|
95
|
-
min2: 'bandFilter_min2',
|
|
96
|
-
max2: 'bandFilter_max2',
|
|
97
|
-
min3: 'bandFilter_min3',
|
|
98
|
-
max3: 'bandFilter_max3',
|
|
99
|
-
min4: 'bandFilter_min4',
|
|
100
|
-
max4: 'bandFilter_max4'
|
|
101
|
-
},
|
|
102
|
-
saturation: {
|
|
103
|
-
value: 'saturation_value'
|
|
104
|
-
},
|
|
105
|
-
reorder_bands: {
|
|
106
|
-
ordering: 'reorder_bands_ordering'
|
|
107
|
-
},
|
|
108
|
-
mask_image_float: {
|
|
109
|
-
keepMin: 'mask_keepMin',
|
|
110
|
-
keepMax: 'mask_keepMax'
|
|
111
|
-
},
|
|
112
|
-
mask_image_uint: {
|
|
113
|
-
keepMin: 'mask_keepMin',
|
|
114
|
-
keepMax: 'mask_keepMax'
|
|
115
|
-
},
|
|
116
|
-
mask_image_int: {
|
|
117
|
-
keepMin: 'mask_keepMin',
|
|
118
|
-
keepMax: 'mask_keepMax'
|
|
119
|
-
},
|
|
120
|
-
pansharpen_brovey: {
|
|
121
|
-
panWeight: 'pansharpen_brovey_panWeight'
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSQVNURVJfUFJPQ0VTU0lOR19VTklGT1JNX0JMT0NLIiwiQUxJQVNfREVGSU5FUyIsIlJBU1RFUl9QUk9DRVNTSU5HX0ZTIiwiZXhwb3J0cyIsInJhc3RlclByb2Nlc3NpbmdVbmlmb3JtcyIsIm5hbWUiLCJmcyIsInZzIiwidW5pZm9ybVR5cGVzIiwibGluZWFyX3Jlc2NhbGVfc2NhbGVyIiwibGluZWFyX3Jlc2NhbGVfb2Zmc2V0IiwiZ2FtbWFfY29udHJhc3RfZ2FtbWExIiwiZ2FtbWFfY29udHJhc3RfZ2FtbWEyIiwiZ2FtbWFfY29udHJhc3RfZ2FtbWEzIiwiZ2FtbWFfY29udHJhc3RfZ2FtbWE0Iiwic2lnbW9pZGFsQ29udHJhc3RfY29udHJhc3QiLCJzaWdtb2lkYWxDb250cmFzdF9iaWFzIiwiY29sb3JtYXBfaGFzQ2F0ZWdvcmljYWxDb2xvcnMiLCJjb2xvcm1hcF9jYXRlZ29yaWNhbE1pblZhbHVlIiwiY29sb3JtYXBfY2F0ZWdvcmljYWxNYXhWYWx1ZSIsImNvbG9ybWFwX21heFBpeGVsVmFsdWUiLCJiYW5kRmlsdGVyX21pbjEiLCJiYW5kRmlsdGVyX21heDEiLCJiYW5kRmlsdGVyX21pbjIiLCJiYW5kRmlsdGVyX21heDIiLCJiYW5kRmlsdGVyX21pbjMiLCJiYW5kRmlsdGVyX21heDMiLCJiYW5kRmlsdGVyX21pbjQiLCJiYW5kRmlsdGVyX21heDQiLCJzYXR1cmF0aW9uX3ZhbHVlIiwicmVvcmRlcl9iYW5kc19vcmRlcmluZyIsIm1hc2tfa2VlcE1pbiIsIm1hc2tfa2VlcE1heCIsInBhbnNoYXJwZW5fYnJvdmV5X3BhbldlaWdodCIsIlVOSUZPUk1fTkFNRV9NQVAiLCJsaW5lYXJfcmVzY2FsZSIsInNjYWxlciIsIm9mZnNldCIsImdhbW1hX2NvbnRyYXN0IiwiZ2FtbWExIiwiZ2FtbWEyIiwiZ2FtbWEzIiwiZ2FtbWE0Iiwic2lnbW9pZGFsQ29udHJhc3QiLCJjb250cmFzdCIsImJpYXMiLCJjb2xvcm1hcCIsImhhc0NhdGVnb3JpY2FsQ29sb3JzIiwiY2F0ZWdvcmljYWxNaW5WYWx1ZSIsImNhdGVnb3JpY2FsTWF4VmFsdWUiLCJtYXhQaXhlbFZhbHVlIiwiYmFuZEZpbHRlciIsIm1pbjEiLCJtYXgxIiwibWluMiIsIm1heDIiLCJtaW4zIiwibWF4MyIsIm1pbjQiLCJtYXg0Iiwic2F0dXJhdGlvbiIsInZhbHVlIiwicmVvcmRlcl9iYW5kcyIsIm9yZGVyaW5nIiwibWFza19pbWFnZV9mbG9hdCIsImtlZXBNaW4iLCJrZWVwTWF4IiwibWFza19pbWFnZV91aW50IiwibWFza19pbWFnZV9pbnQiLCJwYW5zaGFycGVuX2Jyb3ZleSIsInBhbldlaWdodCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLXByb2Nlc3NpbmctdW5pZm9ybXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLyoqXG4gKiBTaGFyZWQgVUJPIGZvciBhbGwgcmFzdGVyIHByb2Nlc3NpbmcgbW9kdWxlIHVuaWZvcm1zLlxuICpcbiAqIFdlYkdMMiBndWFyYW50ZWVzIG9ubHkgMTIgZnJhZ21lbnQgdW5pZm9ybSBibG9ja3MgKEdMX01BWF9GUkFHTUVOVF9VTklGT1JNX0JVRkZFUlMpLlxuICogV2l0aG91dCBjb25zb2xpZGF0aW9uLCB0aGUgYmFzZSBsYXllciBhbHJlYWR5IHVzZXMgOOKAkzkgYmxvY2tzIChwcm9qZWN0LCBwaWNraW5nLFxuICogbGlnaHRpbmcsIHBob25nTWF0ZXJpYWwsIGZsb2F0Q29sb3JzLCBsYXllciwgc2hhZG93LCBzaW1wbGVNZXNoL3Jhc3Rlck1lc2gsIHJhc3RlciksXG4gKiBsZWF2aW5nIG9ubHkgM+KAkzQgZm9yIHJhc3RlciBwcm9jZXNzaW5nIG1vZHVsZXMuIFNpbmNlIGEgdHlwaWNhbCBwaXBlbGluZSBjYW4gdXNlXG4gKiA14oCTOSByYXN0ZXIgbW9kdWxlcyAoY29tYmluZUJhbmRzLCBtYXNrLCByZW9yZGVyQmFuZHMsIGxpbmVhclJlc2NhbGUsIGdhbW1hQ29udHJhc3QsXG4gKiBzaWdtb2lkYWxDb250cmFzdCwgY29sb3JtYXAsIGZpbHRlciwgc2F0dXJhdGlvbiksIGVhY2ggZGVjbGFyaW5nIGl0cyBvd24gVUJPIGJsb2NrXG4gKiB3b3VsZCBleGNlZWQgdGhlIGxpbWl0LlxuICpcbiAqIFRoaXMgbW9kdWxlIGRlY2xhcmVzIGEgc2luZ2xlIFVCTyB0aGF0IGNvbnRhaW5zIGFsbCBwb3NzaWJsZSByYXN0ZXIgcHJvY2Vzc2luZ1xuICogdW5pZm9ybXMuIEluZGl2aWR1YWwgbW9kdWxlcycgR0xTTCBjb2RlIHN0aWxsIHJlZmVyZW5jZXMgdGhlIHVuaWZvcm1zIHRocm91Z2hcbiAqIHRoZSBibG9jayBpbnN0YW5jZSBuYW1lLCBhbmQgcHJlcGFyZUx1bWFNb2R1bGVzKCkgcmV3aXJlcyB0aGUgZGVjbGFyYXRpb25zLlxuICovXG5cbmNvbnN0IFJBU1RFUl9QUk9DRVNTSU5HX1VOSUZPUk1fQkxPQ0sgPSBgXFxcbnVuaWZvcm0gcmFzdGVyUHJvY2Vzc2luZ1VuaWZvcm1zIHtcbiAgLy8gbGluZWFyX3Jlc2NhbGVcbiAgZmxvYXQgbGluZWFyX3Jlc2NhbGVfc2NhbGVyO1xuICBmbG9hdCBsaW5lYXJfcmVzY2FsZV9vZmZzZXQ7XG5cbiAgLy8gZ2FtbWFfY29udHJhc3RcbiAgZmxvYXQgZ2FtbWFfY29udHJhc3RfZ2FtbWExO1xuICBmbG9hdCBnYW1tYV9jb250cmFzdF9nYW1tYTI7XG4gIGZsb2F0IGdhbW1hX2NvbnRyYXN0X2dhbW1hMztcbiAgZmxvYXQgZ2FtbWFfY29udHJhc3RfZ2FtbWE0O1xuXG4gIC8vIHNpZ21vaWRhbENvbnRyYXN0XG4gIGZsb2F0IHNpZ21vaWRhbENvbnRyYXN0X2NvbnRyYXN0O1xuICBmbG9hdCBzaWdtb2lkYWxDb250cmFzdF9iaWFzO1xuXG4gIC8vIGNvbG9ybWFwXG4gIGludCBjb2xvcm1hcF9oYXNDYXRlZ29yaWNhbENvbG9ycztcbiAgaW50IGNvbG9ybWFwX2NhdGVnb3JpY2FsTWluVmFsdWU7XG4gIGludCBjb2xvcm1hcF9jYXRlZ29yaWNhbE1heFZhbHVlO1xuICBpbnQgY29sb3JtYXBfbWF4UGl4ZWxWYWx1ZTtcblxuICAvLyBiYW5kRmlsdGVyXG4gIGZsb2F0IGJhbmRGaWx0ZXJfbWluMTtcbiAgZmxvYXQgYmFuZEZpbHRlcl9tYXgxO1xuICBmbG9hdCBiYW5kRmlsdGVyX21pbjI7XG4gIGZsb2F0IGJhbmRGaWx0ZXJfbWF4MjtcbiAgZmxvYXQgYmFuZEZpbHRlcl9taW4zO1xuICBmbG9hdCBiYW5kRmlsdGVyX21heDM7XG4gIGZsb2F0IGJhbmRGaWx0ZXJfbWluNDtcbiAgZmxvYXQgYmFuZEZpbHRlcl9tYXg0O1xuXG4gIC8vIHNhdHVyYXRpb25cbiAgZmxvYXQgc2F0dXJhdGlvbl92YWx1ZTtcblxuICAvLyByZW9yZGVyX2JhbmRzXG4gIG1hdDQgcmVvcmRlcl9iYW5kc19vcmRlcmluZztcblxuICAvLyBtYXNrIChzaGFyZWQgYnkgbWFza19pbWFnZV9mbG9hdCwgbWFza19pbWFnZV91aW50LCBtYXNrX2ltYWdlX2ludClcbiAgZmxvYXQgbWFza19rZWVwTWluO1xuICBmbG9hdCBtYXNrX2tlZXBNYXg7XG5cbiAgLy8gcGFuc2hhcnBlbl9icm92ZXlcbiAgZmxvYXQgcGFuc2hhcnBlbl9icm92ZXlfcGFuV2VpZ2h0O1xufSByYXN0ZXJQcm9jZXNzaW5nO1xuYDtcblxuLyoqXG4gKiBHTFNMICNkZWZpbmUgYWxpYXNlcyB0aGF0IGxldCBwZXItbW9kdWxlIGNvZGUgY29udGludWUgcmVmZXJlbmNpbmcgdW5pZm9ybXNcbiAqIHRocm91Z2ggdGhlaXIgb3JpZ2luYWwgYmxvY2sgaW5zdGFuY2UgbmFtZXMgKGUuZy4gYGxpbmVhcl9yZXNjYWxlLnNjYWxlcmApLlxuICovXG5jb25zdCBBTElBU19ERUZJTkVTID0gYFxcXG4jZGVmaW5lIGxpbmVhcl9yZXNjYWxlX3NjYWxlcl9BTElBUyByYXN0ZXJQcm9jZXNzaW5nLmxpbmVhcl9yZXNjYWxlX3NjYWxlclxuI2RlZmluZSBsaW5lYXJfcmVzY2FsZV9vZmZzZXRfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5saW5lYXJfcmVzY2FsZV9vZmZzZXRcbiNkZWZpbmUgZ2FtbWFfY29udHJhc3RfZ2FtbWExX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuZ2FtbWFfY29udHJhc3RfZ2FtbWExXG4jZGVmaW5lIGdhbW1hX2NvbnRyYXN0X2dhbW1hMl9BTElBUyByYXN0ZXJQcm9jZXNzaW5nLmdhbW1hX2NvbnRyYXN0X2dhbW1hMlxuI2RlZmluZSBnYW1tYV9jb250cmFzdF9nYW1tYTNfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5nYW1tYV9jb250cmFzdF9nYW1tYTNcbiNkZWZpbmUgZ2FtbWFfY29udHJhc3RfZ2FtbWE0X0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuZ2FtbWFfY29udHJhc3RfZ2FtbWE0XG4jZGVmaW5lIHNpZ21vaWRhbENvbnRyYXN0X2NvbnRyYXN0X0FMSUFTIHJhc3RlclByb2Nlc3Npbmcuc2lnbW9pZGFsQ29udHJhc3RfY29udHJhc3RcbiNkZWZpbmUgc2lnbW9pZGFsQ29udHJhc3RfYmlhc19BTElBUyByYXN0ZXJQcm9jZXNzaW5nLnNpZ21vaWRhbENvbnRyYXN0X2JpYXNcbiNkZWZpbmUgY29sb3JtYXBfaGFzQ2F0ZWdvcmljYWxDb2xvcnNfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5jb2xvcm1hcF9oYXNDYXRlZ29yaWNhbENvbG9yc1xuI2RlZmluZSBjb2xvcm1hcF9jYXRlZ29yaWNhbE1pblZhbHVlX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuY29sb3JtYXBfY2F0ZWdvcmljYWxNaW5WYWx1ZVxuI2RlZmluZSBjb2xvcm1hcF9jYXRlZ29yaWNhbE1heFZhbHVlX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuY29sb3JtYXBfY2F0ZWdvcmljYWxNYXhWYWx1ZVxuI2RlZmluZSBjb2xvcm1hcF9tYXhQaXhlbFZhbHVlX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuY29sb3JtYXBfbWF4UGl4ZWxWYWx1ZVxuI2RlZmluZSBiYW5kRmlsdGVyX21pbjFfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5iYW5kRmlsdGVyX21pbjFcbiNkZWZpbmUgYmFuZEZpbHRlcl9tYXgxX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuYmFuZEZpbHRlcl9tYXgxXG4jZGVmaW5lIGJhbmRGaWx0ZXJfbWluMl9BTElBUyByYXN0ZXJQcm9jZXNzaW5nLmJhbmRGaWx0ZXJfbWluMlxuI2RlZmluZSBiYW5kRmlsdGVyX21heDJfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5iYW5kRmlsdGVyX21heDJcbiNkZWZpbmUgYmFuZEZpbHRlcl9taW4zX0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuYmFuZEZpbHRlcl9taW4zXG4jZGVmaW5lIGJhbmRGaWx0ZXJfbWF4M19BTElBUyByYXN0ZXJQcm9jZXNzaW5nLmJhbmRGaWx0ZXJfbWF4M1xuI2RlZmluZSBiYW5kRmlsdGVyX21pbjRfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5iYW5kRmlsdGVyX21pbjRcbiNkZWZpbmUgYmFuZEZpbHRlcl9tYXg0X0FMSUFTIHJhc3RlclByb2Nlc3NpbmcuYmFuZEZpbHRlcl9tYXg0XG4jZGVmaW5lIHNhdHVyYXRpb25fdmFsdWVfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5zYXR1cmF0aW9uX3ZhbHVlXG4jZGVmaW5lIHJlb3JkZXJfYmFuZHNfb3JkZXJpbmdfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5yZW9yZGVyX2JhbmRzX29yZGVyaW5nXG4jZGVmaW5lIG1hc2tfa2VlcE1pbl9BTElBUyByYXN0ZXJQcm9jZXNzaW5nLm1hc2tfa2VlcE1pblxuI2RlZmluZSBtYXNrX2tlZXBNYXhfQUxJQVMgcmFzdGVyUHJvY2Vzc2luZy5tYXNrX2tlZXBNYXhcbiNkZWZpbmUgcGFuc2hhcnBlbl9icm92ZXlfcGFuV2VpZ2h0X0FMSUFTIHJhc3RlclByb2Nlc3NpbmcucGFuc2hhcnBlbl9icm92ZXlfcGFuV2VpZ2h0XG5gO1xuXG5leHBvcnQgY29uc3QgUkFTVEVSX1BST0NFU1NJTkdfRlMgPSBSQVNURVJfUFJPQ0VTU0lOR19VTklGT1JNX0JMT0NLICsgQUxJQVNfREVGSU5FUztcblxuZXhwb3J0IGNvbnN0IHJhc3RlclByb2Nlc3NpbmdVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ3Jhc3RlclByb2Nlc3NpbmcnLFxuICBmczogUkFTVEVSX1BST0NFU1NJTkdfRlMsXG4gIHZzOiAnJyxcbiAgdW5pZm9ybVR5cGVzOiB7XG4gICAgbGluZWFyX3Jlc2NhbGVfc2NhbGVyOiAnZjMyJyxcbiAgICBsaW5lYXJfcmVzY2FsZV9vZmZzZXQ6ICdmMzInLFxuICAgIGdhbW1hX2NvbnRyYXN0X2dhbW1hMTogJ2YzMicsXG4gICAgZ2FtbWFfY29udHJhc3RfZ2FtbWEyOiAnZjMyJyxcbiAgICBnYW1tYV9jb250cmFzdF9nYW1tYTM6ICdmMzInLFxuICAgIGdhbW1hX2NvbnRyYXN0X2dhbW1hNDogJ2YzMicsXG4gICAgc2lnbW9pZGFsQ29udHJhc3RfY29udHJhc3Q6ICdmMzInLFxuICAgIHNpZ21vaWRhbENvbnRyYXN0X2JpYXM6ICdmMzInLFxuICAgIGNvbG9ybWFwX2hhc0NhdGVnb3JpY2FsQ29sb3JzOiAnaTMyJyxcbiAgICBjb2xvcm1hcF9jYXRlZ29yaWNhbE1pblZhbHVlOiAnaTMyJyxcbiAgICBjb2xvcm1hcF9jYXRlZ29yaWNhbE1heFZhbHVlOiAnaTMyJyxcbiAgICBjb2xvcm1hcF9tYXhQaXhlbFZhbHVlOiAnaTMyJyxcbiAgICBiYW5kRmlsdGVyX21pbjE6ICdmMzInLFxuICAgIGJhbmRGaWx0ZXJfbWF4MTogJ2YzMicsXG4gICAgYmFuZEZpbHRlcl9taW4yOiAnZjMyJyxcbiAgICBiYW5kRmlsdGVyX21heDI6ICdmMzInLFxuICAgIGJhbmRGaWx0ZXJfbWluMzogJ2YzMicsXG4gICAgYmFuZEZpbHRlcl9tYXgzOiAnZjMyJyxcbiAgICBiYW5kRmlsdGVyX21pbjQ6ICdmMzInLFxuICAgIGJhbmRGaWx0ZXJfbWF4NDogJ2YzMicsXG4gICAgc2F0dXJhdGlvbl92YWx1ZTogJ2YzMicsXG4gICAgcmVvcmRlcl9iYW5kc19vcmRlcmluZzogJ21hdDR4NDxmMzI+JyxcbiAgICBtYXNrX2tlZXBNaW46ICdmMzInLFxuICAgIG1hc2tfa2VlcE1heDogJ2YzMicsXG4gICAgcGFuc2hhcnBlbl9icm92ZXlfcGFuV2VpZ2h0OiAnZjMyJ1xuICB9XG59O1xuXG4vKipcbiAqIE1hcCBmcm9tIG9yaWdpbmFsIG1vZHVsZSB1bmlmb3JtIG5hbWVzIChhcyByZXR1cm5lZCBieSBnZXRVbmlmb3JtcykgdG9cbiAqIHRoZSBwcmVmaXhlZCBuYW1lcyB1c2VkIGluIHRoZSBzaGFyZWQgVUJPLlxuICovXG5leHBvcnQgY29uc3QgVU5JRk9STV9OQU1FX01BUDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gIGxpbmVhcl9yZXNjYWxlOiB7XG4gICAgc2NhbGVyOiAnbGluZWFyX3Jlc2NhbGVfc2NhbGVyJyxcbiAgICBvZmZzZXQ6ICdsaW5lYXJfcmVzY2FsZV9vZmZzZXQnXG4gIH0sXG4gIGdhbW1hX2NvbnRyYXN0OiB7XG4gICAgZ2FtbWExOiAnZ2FtbWFfY29udHJhc3RfZ2FtbWExJyxcbiAgICBnYW1tYTI6ICdnYW1tYV9jb250cmFzdF9nYW1tYTInLFxuICAgIGdhbW1hMzogJ2dhbW1hX2NvbnRyYXN0X2dhbW1hMycsXG4gICAgZ2FtbWE0OiAnZ2FtbWFfY29udHJhc3RfZ2FtbWE0J1xuICB9LFxuICBzaWdtb2lkYWxDb250cmFzdDoge1xuICAgIGNvbnRyYXN0OiAnc2lnbW9pZGFsQ29udHJhc3RfY29udHJhc3QnLFxuICAgIGJpYXM6ICdzaWdtb2lkYWxDb250cmFzdF9iaWFzJ1xuICB9LFxuICBjb2xvcm1hcDoge1xuICAgIGhhc0NhdGVnb3JpY2FsQ29sb3JzOiAnY29sb3JtYXBfaGFzQ2F0ZWdvcmljYWxDb2xvcnMnLFxuICAgIGNhdGVnb3JpY2FsTWluVmFsdWU6ICdjb2xvcm1hcF9jYXRlZ29yaWNhbE1pblZhbHVlJyxcbiAgICBjYXRlZ29yaWNhbE1heFZhbHVlOiAnY29sb3JtYXBfY2F0ZWdvcmljYWxNYXhWYWx1ZScsXG4gICAgbWF4UGl4ZWxWYWx1ZTogJ2NvbG9ybWFwX21heFBpeGVsVmFsdWUnXG4gIH0sXG4gIGJhbmRGaWx0ZXI6IHtcbiAgICBtaW4xOiAnYmFuZEZpbHRlcl9taW4xJyxcbiAgICBtYXgxOiAnYmFuZEZpbHRlcl9tYXgxJyxcbiAgICBtaW4yOiAnYmFuZEZpbHRlcl9taW4yJyxcbiAgICBtYXgyOiAnYmFuZEZpbHRlcl9tYXgyJyxcbiAgICBtaW4zOiAnYmFuZEZpbHRlcl9taW4zJyxcbiAgICBtYXgzOiAnYmFuZEZpbHRlcl9tYXgzJyxcbiAgICBtaW40OiAnYmFuZEZpbHRlcl9taW40JyxcbiAgICBtYXg0OiAnYmFuZEZpbHRlcl9tYXg0J1xuICB9LFxuICBzYXR1cmF0aW9uOiB7XG4gICAgdmFsdWU6ICdzYXR1cmF0aW9uX3ZhbHVlJ1xuICB9LFxuICByZW9yZGVyX2JhbmRzOiB7XG4gICAgb3JkZXJpbmc6ICdyZW9yZGVyX2JhbmRzX29yZGVyaW5nJ1xuICB9LFxuICBtYXNrX2ltYWdlX2Zsb2F0OiB7XG4gICAga2VlcE1pbjogJ21hc2tfa2VlcE1pbicsXG4gICAga2VlcE1heDogJ21hc2tfa2VlcE1heCdcbiAgfSxcbiAgbWFza19pbWFnZV91aW50OiB7XG4gICAga2VlcE1pbjogJ21hc2tfa2VlcE1pbicsXG4gICAga2VlcE1heDogJ21hc2tfa2VlcE1heCdcbiAgfSxcbiAgbWFza19pbWFnZV9pbnQ6IHtcbiAgICBrZWVwTWluOiAnbWFza19rZWVwTWluJyxcbiAgICBrZWVwTWF4OiAnbWFza19rZWVwTWF4J1xuICB9LFxuICBwYW5zaGFycGVuX2Jyb3ZleToge1xuICAgIHBhbldlaWdodDogJ3BhbnNoYXJwZW5fYnJvdmV5X3BhbldlaWdodCdcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTUEsK0JBQStCLDBpQ0E2Q3BDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsYUFBYSwyeURBMEJsQjtBQUVNLElBQU1DLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUdGLCtCQUErQixHQUFHQyxhQUFhO0FBRTVFLElBQU1HLHdCQUF3QixHQUFBRCxPQUFBLENBQUFDLHdCQUFBLEdBQUc7RUFDdENDLElBQUksRUFBRSxrQkFBa0I7RUFDeEJDLEVBQUUsRUFBRUosb0JBQW9CO0VBQ3hCSyxFQUFFLEVBQUUsRUFBRTtFQUNOQyxZQUFZLEVBQUU7SUFDWkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMscUJBQXFCLEVBQUUsS0FBSztJQUM1QkMsMEJBQTBCLEVBQUUsS0FBSztJQUNqQ0Msc0JBQXNCLEVBQUUsS0FBSztJQUM3QkMsNkJBQTZCLEVBQUUsS0FBSztJQUNwQ0MsNEJBQTRCLEVBQUUsS0FBSztJQUNuQ0MsNEJBQTRCLEVBQUUsS0FBSztJQUNuQ0Msc0JBQXNCLEVBQUUsS0FBSztJQUM3QkMsZUFBZSxFQUFFLEtBQUs7SUFDdEJDLGVBQWUsRUFBRSxLQUFLO0lBQ3RCQyxlQUFlLEVBQUUsS0FBSztJQUN0QkMsZUFBZSxFQUFFLEtBQUs7SUFDdEJDLGVBQWUsRUFBRSxLQUFLO0lBQ3RCQyxlQUFlLEVBQUUsS0FBSztJQUN0QkMsZUFBZSxFQUFFLEtBQUs7SUFDdEJDLGVBQWUsRUFBRSxLQUFLO0lBQ3RCQyxnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCQyxzQkFBc0IsRUFBRSxhQUFhO0lBQ3JDQyxZQUFZLEVBQUUsS0FBSztJQUNuQkMsWUFBWSxFQUFFLEtBQUs7SUFDbkJDLDJCQUEyQixFQUFFO0VBQy9CO0FBQ0YsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNPLElBQU1DLGdCQUF3RCxHQUFBL0IsT0FBQSxDQUFBK0IsZ0JBQUEsR0FBRztFQUN0RUMsY0FBYyxFQUFFO0lBQ2RDLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0JDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREMsY0FBYyxFQUFFO0lBQ2RDLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0JDLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0JDLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0JDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREMsaUJBQWlCLEVBQUU7SUFDakJDLFFBQVEsRUFBRSw0QkFBNEI7SUFDdENDLElBQUksRUFBRTtFQUNSLENBQUM7RUFDREMsUUFBUSxFQUFFO0lBQ1JDLG9CQUFvQixFQUFFLCtCQUErQjtJQUNyREMsbUJBQW1CLEVBQUUsOEJBQThCO0lBQ25EQyxtQkFBbUIsRUFBRSw4QkFBOEI7SUFDbkRDLGFBQWEsRUFBRTtFQUNqQixDQUFDO0VBQ0RDLFVBQVUsRUFBRTtJQUNWQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCQyxJQUFJLEVBQUU7RUFDUixDQUFDO0VBQ0RDLFVBQVUsRUFBRTtJQUNWQyxLQUFLLEVBQUU7RUFDVCxDQUFDO0VBQ0RDLGFBQWEsRUFBRTtJQUNiQyxRQUFRLEVBQUU7RUFDWixDQUFDO0VBQ0RDLGdCQUFnQixFQUFFO0lBQ2hCQyxPQUFPLEVBQUUsY0FBYztJQUN2QkMsT0FBTyxFQUFFO0VBQ1gsQ0FBQztFQUNEQyxlQUFlLEVBQUU7SUFDZkYsT0FBTyxFQUFFLGNBQWM7SUFDdkJDLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDREUsY0FBYyxFQUFFO0lBQ2RILE9BQU8sRUFBRSxjQUFjO0lBQ3ZCQyxPQUFPLEVBQUU7RUFDWCxDQUFDO0VBQ0RHLGlCQUFpQixFQUFFO0lBQ2pCQyxTQUFTLEVBQUU7RUFDYjtBQUNGLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/raster/types.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhc3Rlci90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgdHlwZSB7U2hhZGVyTW9kdWxlfSBmcm9tICcuL3dlYmdsJztcblxuLyoqIEFsbG93ZWQgaW5wdXQgZm9yIGltYWdlcyBwcm9wIOKAlCBlaXRoZXIgR1BVLXJlc2lkZW50IFRleHR1cmUgb2JqZWN0cyBvclxuICogbGVnYWN5IHJhc3RlciB0ZXh0dXJlIGRlc2NyaXB0b3JzIHdpdGggQ1BVIGRhdGEgdGhhdCB3aWxsIGJlIHVwbG9hZGVkLlxuICovXG5leHBvcnQgdHlwZSBJbWFnZUlucHV0ID0gUmVjb3JkPFxuICBzdHJpbmcsXG4gIFRleHR1cmUgfCBUZXh0dXJlW10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+W11cbj47XG5cbi8qKiBJbnRlcm5hbCBzdG9yYWdlIG9mIGltYWdlc1xuICogVGhlIFRleHR1cmUgb2JqZWN0IHJlZmVyZW5jZXMgZGF0YSBvbiB0aGUgR1BVXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlU3RhdGUgPSBSZWNvcmQ8c3RyaW5nLCBUZXh0dXJlIHwgVGV4dHVyZVtdPjtcblxuLyoqIFByb3BlcnRpZXMgYWRkZWQgYnkgUmFzdGVyTGF5ZXIuICovXG5leHBvcnQgdHlwZSBSYXN0ZXJMYXllckFkZGVkUHJvcHMgPSB7XG4gIG1vZHVsZXM6IFNoYWRlck1vZHVsZVtdO1xuICBpbWFnZXM6IEltYWdlSW5wdXQ7XG4gIG1vZHVsZVByb3BzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBvblJlZHJhd05lZWRlZD86ICgoKSA9PiB2b2lkKSB8IG51bGw7XG59O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
package/dist/raster/util.js
DELETED
|
@@ -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=
|