@kepler.gl/deckgl-layers 3.3.0-alpha.0 → 3.3.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/cjs/globe/index.js +140 -0
- 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/cjs/index.js +163 -0
- package/dist/cjs/layer-utils/aggregation-utils.js +181 -0
- package/dist/cjs/layer-utils/cluster-utils.js +95 -0
- package/dist/cjs/layer-utils/cpu-aggregator.js +798 -0
- package/dist/cjs/layer-utils/globe-cell-utils.js +203 -0
- package/dist/cjs/layer-utils/globe-cell-utils.spec.js +118 -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 +89 -0
- package/dist/esm/layer-utils/cpu-aggregator.js +788 -0
- package/dist/esm/layer-utils/globe-cell-utils.js +197 -0
- package/dist/esm/layer-utils/globe-cell-utils.spec.js +115 -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 +58 -0
- package/dist/globe/enhanced-multi-icon-layer.d.ts +6 -0
- package/dist/globe/globe-depth-disk-layer.d.ts +19 -0
- package/dist/globe/globe-layers.d.ts +108 -0
- package/dist/globe/globe-stars-layer.d.ts +10 -0
- package/dist/globe/globe-stars-layer.spec.d.ts +1 -0
- package/dist/globe/globe-view.d.ts +23 -0
- package/dist/globe/index.d.ts +8 -0
- package/dist/globe/mvt-label-layer.d.ts +7928 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +145 -56
- package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +145 -56
- package/dist/index.d.ts +2 -0
- package/dist/layer-utils/aggregation-utils.d.ts +44 -0
- package/dist/layer-utils/cluster-utils.d.ts +6 -1
- package/dist/layer-utils/globe-cell-utils.d.ts +30 -0
- package/dist/layer-utils/globe-cell-utils.spec.d.ts +1 -0
- package/dist/layer-utils/shader-utils.d.ts +1 -0
- package/dist/raster/images.d.ts +10 -1
- package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
- package/dist/raster/raster-processing-uniforms.d.ts +38 -0
- package/dist/raster/util.d.ts +15 -0
- package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +4 -1
- package/dist/wms/wms-layer.d.ts +32 -2
- package/package.json +37 -25
- 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 -296
- package/dist/column-layer/enhanced-column-layer.js +0 -135
- package/dist/deckgl-extensions/filter-shader-module.js +0 -26
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +0 -69
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +0 -87
- package/dist/index.js +0 -140
- package/dist/layer-utils/cluster-utils.js +0 -93
- package/dist/layer-utils/cpu-aggregator.js +0 -798
- package/dist/layer-utils/shader-utils.js +0 -29
- package/dist/line-layer/line-layer.js +0 -95
- package/dist/raster/images.js +0 -259
- package/dist/raster/pipeline-validation-patch.js +0 -60
- package/dist/raster/raster-layer/raster-layer-shaders.js +0 -129
- 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 -256
- 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 -282
- package/dist/raster/types.js +0 -6
- package/dist/raster/util.js +0 -29
- 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 -51
- package/dist/svg-icon-layer/svg-icon-layer.js +0 -104
- package/dist/wms/wms-layer.js +0 -351
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
var _default = exports["default"] = "#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n gl_FragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMS5mcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLW1lc2gtbGF5ZXItZnNcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG51bmlmb3JtIGJvb2wgaGFzVGV4dHVyZTtcblxudW5pZm9ybSBib29sIGZsYXRTaGFkaW5nO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzIgdlRleENvb3JkO1xudmFyeWluZyB2ZWMzIGNhbWVyYVBvc2l0aW9uO1xudmFyeWluZyB2ZWMzIG5vcm1hbHNfY29tbW9uc3BhY2U7XG52YXJ5aW5nIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2U7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS51diA9IHZUZXhDb29yZDtcbiAgdmVjNCBpbWFnZTtcbiAgREVDS0dMX0NSRUFURV9DT0xPUihpbWFnZSwgdlRleENvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIHZlYzMgbm9ybWFsO1xuICBpZiAoZmxhdFNoYWRpbmcpIHtcblxuLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuLy8gaGVhZGxlc3MuZ2wgcmVwb3J0cyB0aGUgZXh0ZW5zaW9uIGFzXG4vLyBhdmFpbGFibGUgYnV0IGRvZXMgbm90IHN1cHBvcnQgaXQgaW5cbi8vIHRoZSBzaGFkZXIuXG4jaWZkZWYgREVSSVZBVElWRVNfQVZBSUxBQkxFXG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKGRGZHgocG9zaXRpb25fY29tbW9uc3BhY2UueHl6KSwgZEZkeShwb3NpdGlvbl9jb21tb25zcGFjZS54eXopKSk7XG4jZWxzZVxuICAgIG5vcm1hbCA9IHZlYzMoMC4wLCAwLjAsIDEuMCk7XG4jZW5kaWZcbiAgfSBlbHNlIHtcbiAgICBub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuICB9XG5cbiAgdmVjMyBsaWdodENvbG9yID0gbGlnaHRpbmdfZ2V0TGlnaHRDb2xvcihpbWFnZS5yZ2IsIGNhbWVyYVBvc2l0aW9uLCBwb3NpdGlvbl9jb21tb25zcGFjZS54eXosIG5vcm1hbCk7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQobGlnaHRDb2xvciwgb3BhY2l0eSk7XG5cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihnbF9GcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
var _default = exports["default"] = "#define SHADER_NAME raster-mesh-layer-vs\n\n// Scale the model\nuniform float sizeScale;\nuniform bool composeModelMatrix;\n\n// Primitive attributes\nattribute vec3 positions;\nattribute vec3 normals;\nattribute vec3 colors;\nattribute vec2 texCoords;\n\n// Instance attributes\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute mat3 instanceModelMatrix;\nattribute vec3 instanceTranslation;\n\n// Outputs to fragment shader\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMS52cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLW1lc2gtbGF5ZXItdnNcblxuLy8gU2NhbGUgdGhlIG1vZGVsXG51bmlmb3JtIGZsb2F0IHNpemVTY2FsZTtcbnVuaWZvcm0gYm9vbCBjb21wb3NlTW9kZWxNYXRyaXg7XG5cbi8vIFByaW1pdGl2ZSBhdHRyaWJ1dGVzXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM7XG5hdHRyaWJ1dGUgdmVjMyBub3JtYWxzO1xuYXR0cmlidXRlIHZlYzMgY29sb3JzO1xuYXR0cmlidXRlIHZlYzIgdGV4Q29vcmRzO1xuXG4vLyBJbnN0YW5jZSBhdHRyaWJ1dGVzXG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9ycztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbmF0dHJpYnV0ZSBtYXQzIGluc3RhbmNlTW9kZWxNYXRyaXg7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVRyYW5zbGF0aW9uO1xuXG4vLyBPdXRwdXRzIHRvIGZyYWdtZW50IHNoYWRlclxudmFyeWluZyB2ZWMyIHZUZXhDb29yZDtcbnZhcnlpbmcgdmVjMyBjYW1lcmFQb3NpdGlvbjtcbnZhcnlpbmcgdmVjMyBub3JtYWxzX2NvbW1vbnNwYWNlO1xudmFyeWluZyB2ZWM0IHBvc2l0aW9uX2NvbW1vbnNwYWNlO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IGluc3RhbmNlUG9zaXRpb25zO1xuICBnZW9tZXRyeS51diA9IHRleENvb3JkcztcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuXG4gIHZUZXhDb29yZCA9IHRleENvb3JkcztcbiAgY2FtZXJhUG9zaXRpb24gPSBwcm9qZWN0X3VDYW1lcmFQb3NpdGlvbjtcbiAgbm9ybWFsc19jb21tb25zcGFjZSA9IHByb2plY3Rfbm9ybWFsKGluc3RhbmNlTW9kZWxNYXRyaXggKiBub3JtYWxzKTtcbiAgdkNvbG9yID0gdmVjNChjb2xvcnMgKiBpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEpO1xuICBnZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuXG4gIHZlYzMgcG9zID0gKGluc3RhbmNlTW9kZWxNYXRyaXggKiBwb3NpdGlvbnMpICogc2l6ZVNjYWxlICsgaW5zdGFuY2VUcmFuc2xhdGlvbjtcblxuICBpZiAoY29tcG9zZU1vZGVsTWF0cml4KSB7XG4gICAgREVDS0dMX0ZJTFRFUl9TSVpFKHBvcywgZ2VvbWV0cnkpO1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zICsgaW5zdGFuY2VQb3NpdGlvbnMsIGluc3RhbmNlUG9zaXRpb25zNjRMb3csIHZlYzMoMC4wKSwgcG9zaXRpb25fY29tbW9uc3BhY2UpO1xuICB9XG4gIGVsc2Uge1xuICAgIHBvcyA9IHByb2plY3Rfc2l6ZShwb3MpO1xuICAgIERFQ0tHTF9GSUxURVJfU0laRShwb3MsIGdlb21ldHJ5KTtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfcG9zaXRpb25fdG9fY2xpcHNwYWNlKGluc3RhbmNlUG9zaXRpb25zLCBpbnN0YW5jZVBvc2l0aW9uczY0TG93LCBwb3MsIHBvc2l0aW9uX2NvbW1vbnNwYWNlKTtcbiAgfVxuXG4gIGdlb21ldHJ5LnBvc2l0aW9uID0gcG9zaXRpb25fY29tbW9uc3BhY2U7XG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcblxuICBERUNLR0xfRklMVEVSX0NPTE9SKHZDb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMi5mcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbWVzaC1sYXllci1mc1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnVuaWZvcm0gYm9vbCBoYXNUZXh0dXJlO1xuXG51bmlmb3JtIGJvb2wgZmxhdFNoYWRpbmc7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbmluIHZlYzIgdlRleENvb3JkO1xuaW4gdmVjMyBjYW1lcmFQb3NpdGlvbjtcbmluIHZlYzMgbm9ybWFsc19jb21tb25zcGFjZTtcbmluIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2U7XG5pbiB2ZWM0IHZDb2xvcjtcblxub3V0IHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS51diA9IHZUZXhDb29yZDtcbiAgdmVjNCBpbWFnZTtcbiAgREVDS0dMX0NSRUFURV9DT0xPUihpbWFnZSwgdlRleENvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIHZlYzMgbm9ybWFsO1xuICBpZiAoZmxhdFNoYWRpbmcpIHtcblxuLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuLy8gaGVhZGxlc3MuZ2wgcmVwb3J0cyB0aGUgZXh0ZW5zaW9uIGFzXG4vLyBhdmFpbGFibGUgYnV0IGRvZXMgbm90IHN1cHBvcnQgaXQgaW5cbi8vIHRoZSBzaGFkZXIuXG4jaWZkZWYgREVSSVZBVElWRVNfQVZBSUxBQkxFXG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKGRGZHgocG9zaXRpb25fY29tbW9uc3BhY2UueHl6KSwgZEZkeShwb3NpdGlvbl9jb21tb25zcGFjZS54eXopKSk7XG4jZWxzZVxuICAgIG5vcm1hbCA9IHZlYzMoMC4wLCAwLjAsIDEuMCk7XG4jZW5kaWZcbiAgfSBlbHNlIHtcbiAgICBub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuICB9XG5cbiAgdmVjMyBsaWdodENvbG9yID0gbGlnaHRpbmdfZ2V0TGlnaHRDb2xvcihpbWFnZS5yZ2IsIGNhbWVyYVBvc2l0aW9uLCBwb3NpdGlvbl9jb21tb25zcGFjZS54eXosIG5vcm1hbCk7XG4gIGZyYWdDb2xvciA9IHZlYzQobGlnaHRDb2xvciwgb3BhY2l0eSk7XG5cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihmcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-mesh-layer-vs\n\n// Primitive attributes\nin vec3 positions;\nin vec3 positions64Low;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\n\n// Outputs to fragment shader\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nconst vec3 pickingColor = vec3(1.0, 0.0, 0.0);\nconst vec3 defaultNormal = vec3(0.0, 0.0, 1.0);\n\nvoid main(void) {\n geometry.worldPosition = positions;\n geometry.uv = texCoords;\n geometry.pickingColor = pickingColor;\n\n gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position);\n position_commonspace = geometry.position;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n \n vColor = vec4(colors, 1.0);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMi52cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbWVzaC1sYXllci12c1xuXG4vLyBQcmltaXRpdmUgYXR0cmlidXRlc1xuaW4gdmVjMyBwb3NpdGlvbnM7XG5pbiB2ZWMzIHBvc2l0aW9uczY0TG93O1xuaW4gdmVjMyBub3JtYWxzO1xuaW4gdmVjMyBjb2xvcnM7XG5pbiB2ZWMyIHRleENvb3JkcztcblxuLy8gT3V0cHV0cyB0byBmcmFnbWVudCBzaGFkZXJcbm91dCB2ZWMyIHZUZXhDb29yZDtcbm91dCB2ZWMzIGNhbWVyYVBvc2l0aW9uO1xub3V0IHZlYzMgbm9ybWFsc19jb21tb25zcGFjZTtcbm91dCB2ZWM0IHBvc2l0aW9uX2NvbW1vbnNwYWNlO1xub3V0IHZlYzQgdkNvbG9yO1xuXG5jb25zdCB2ZWMzIHBpY2tpbmdDb2xvciA9IHZlYzMoMS4wLCAwLjAsIDAuMCk7XG5jb25zdCB2ZWMzIGRlZmF1bHROb3JtYWwgPSB2ZWMzKDAuMCwgMC4wLCAxLjApO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gcG9zaXRpb25zO1xuICBnZW9tZXRyeS51diA9IHRleENvb3JkcztcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gcGlja2luZ0NvbG9yO1xuXG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zaXRpb25zLCBwb3NpdGlvbnM2NExvdywgdmVjMygwLjApLCBnZW9tZXRyeS5wb3NpdGlvbik7XG4gIHBvc2l0aW9uX2NvbW1vbnNwYWNlID0gZ2VvbWV0cnkucG9zaXRpb247XG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcblxuICB2VGV4Q29vcmQgPSB0ZXhDb29yZHM7XG4gIGNhbWVyYVBvc2l0aW9uID0gcHJvamVjdF91Q2FtZXJhUG9zaXRpb247XG4gIFxuICB2Q29sb3IgPSB2ZWM0KGNvbG9ycywgMS4wKTtcbiAgREVDS0dMX0ZJTFRFUl9DT0xPUih2Q29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
12
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
13
|
-
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
-
var _meshLayers = require("@deck.gl/mesh-layers");
|
|
17
|
-
var _engine = require("@luma.gl/engine");
|
|
18
|
-
var _rasterMeshLayerShaders = require("./raster-mesh-layer-shaders");
|
|
19
|
-
var _rasterLayerShaders = require("../raster-layer/raster-layer-shaders");
|
|
20
|
-
var _images = require("../images");
|
|
21
|
-
var _util = require("../util");
|
|
22
|
-
var _pipelineValidationPatch = require("../pipeline-validation-patch");
|
|
23
|
-
var _constants = require("@kepler.gl/constants");
|
|
24
|
-
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; } } }; }
|
|
25
|
-
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; } }
|
|
26
|
-
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; }
|
|
27
|
-
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
28
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
29
|
-
function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
|
|
30
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
32
|
-
// Copyright contributors to the kepler.gl project
|
|
33
|
-
function validateGeometryAttributes(attributes) {
|
|
34
|
-
if (!(attributes.positions || attributes.POSITION)) {
|
|
35
|
-
throw new Error('RasterMeshLayer requires "positions" or "POSITION" attribute in mesh property.');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* Convert mesh data into geometry
|
|
41
|
-
* @returns geometry
|
|
42
|
-
*/
|
|
43
|
-
function getGeometry(data) {
|
|
44
|
-
if ('attributes' in data && data.attributes) {
|
|
45
|
-
validateGeometryAttributes(data.attributes);
|
|
46
|
-
if (data instanceof _engine.Geometry) {
|
|
47
|
-
return data;
|
|
48
|
-
}
|
|
49
|
-
return new _engine.Geometry(data);
|
|
50
|
-
} else if ('positions' in data || 'POSITION' in data) {
|
|
51
|
-
validateGeometryAttributes(data);
|
|
52
|
-
return new _engine.Geometry({
|
|
53
|
-
attributes: data
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
throw Error('Invalid mesh');
|
|
57
|
-
}
|
|
58
|
-
var defaultProps = _objectSpread(_objectSpread({}, _meshLayers.SimpleMeshLayer.defaultProps), {}, {
|
|
59
|
-
modules: {
|
|
60
|
-
type: 'array',
|
|
61
|
-
value: [],
|
|
62
|
-
compare: true
|
|
63
|
-
},
|
|
64
|
-
images: {
|
|
65
|
-
type: 'object',
|
|
66
|
-
value: {},
|
|
67
|
-
compare: true
|
|
68
|
-
},
|
|
69
|
-
moduleProps: {
|
|
70
|
-
type: 'object',
|
|
71
|
-
value: {},
|
|
72
|
-
compare: true
|
|
73
|
-
},
|
|
74
|
-
onRedrawNeeded: {
|
|
75
|
-
type: 'function',
|
|
76
|
-
value: null,
|
|
77
|
-
compare: false
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
var RasterMeshLayer = exports["default"] = /*#__PURE__*/function (_SimpleMeshLayer) {
|
|
81
|
-
function RasterMeshLayer() {
|
|
82
|
-
var _this;
|
|
83
|
-
(0, _classCallCheck2["default"])(this, RasterMeshLayer);
|
|
84
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
85
|
-
args[_key] = arguments[_key];
|
|
86
|
-
}
|
|
87
|
-
_this = _callSuper(this, RasterMeshLayer, [].concat(args));
|
|
88
|
-
(0, _defineProperty2["default"])(_this, "_redrawScheduled", false);
|
|
89
|
-
return _this;
|
|
90
|
-
}
|
|
91
|
-
(0, _inherits2["default"])(RasterMeshLayer, _SimpleMeshLayer);
|
|
92
|
-
return (0, _createClass2["default"])(RasterMeshLayer, [{
|
|
93
|
-
key: "initializeState",
|
|
94
|
-
value: function initializeState() {
|
|
95
|
-
(0, _pipelineValidationPatch.patchPipelineValidation)();
|
|
96
|
-
(0, _rasterLayerShaders.ensureRasterHooksRegistered)();
|
|
97
|
-
this.setState({
|
|
98
|
-
images: {}
|
|
99
|
-
});
|
|
100
|
-
_superPropGet(RasterMeshLayer, "initializeState", this, 3)([]);
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "getShaders",
|
|
104
|
-
value: function getShaders() {
|
|
105
|
-
var _this$props$modules = this.props.modules,
|
|
106
|
-
modules = _this$props$modules === void 0 ? [] : _this$props$modules;
|
|
107
|
-
var lumaModules = (0, _rasterLayerShaders.prepareLumaModules)(modules);
|
|
108
|
-
var parentShaders = _superPropGet(RasterMeshLayer, "getShaders", this, 3)([]);
|
|
109
|
-
return _objectSpread(_objectSpread({}, parentShaders), {}, {
|
|
110
|
-
vs: (0, _rasterMeshLayerShaders.buildRasterMeshVertexShader)(),
|
|
111
|
-
fs: (0, _rasterMeshLayerShaders.buildRasterMeshFragmentShader)(),
|
|
112
|
-
modules: [].concat((0, _toConsumableArray2["default"])(parentShaders.modules || []), [_rasterMeshLayerShaders.rasterMeshUniforms], (0, _toConsumableArray2["default"])(lumaModules))
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// eslint-disable-next-line complexity
|
|
117
|
-
}, {
|
|
118
|
-
key: "updateState",
|
|
119
|
-
value: function updateState(params) {
|
|
120
|
-
var props = params.props,
|
|
121
|
-
oldProps = params.oldProps,
|
|
122
|
-
changeFlags = params.changeFlags,
|
|
123
|
-
context = params.context;
|
|
124
|
-
_superPropGet(RasterMeshLayer, "updateState", this, 3)([{
|
|
125
|
-
props: props,
|
|
126
|
-
oldProps: oldProps,
|
|
127
|
-
changeFlags: changeFlags,
|
|
128
|
-
context: context
|
|
129
|
-
}]);
|
|
130
|
-
var modules = props && props.modules;
|
|
131
|
-
var oldModules = oldProps && oldProps.modules;
|
|
132
|
-
if (props.mesh !== oldProps.mesh || changeFlags.extensionsChanged || !(0, _util.modulesEqual)(modules, oldModules)) {
|
|
133
|
-
var _this$getAttributeMan;
|
|
134
|
-
if (this.state.model) {
|
|
135
|
-
var _this$state$model$des, _this$state$model;
|
|
136
|
-
(_this$state$model$des = (_this$state$model = this.state.model).destroy) === null || _this$state$model$des === void 0 || _this$state$model$des.call(_this$state$model);
|
|
137
|
-
}
|
|
138
|
-
if (props.mesh) {
|
|
139
|
-
this.state.model = this.getModel(props.mesh);
|
|
140
|
-
var attributes = props.mesh.attributes || props.mesh;
|
|
141
|
-
this.setState({
|
|
142
|
-
hasNormals: Boolean(attributes.NORMAL || attributes.normals)
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
(_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 || _this$getAttributeMan.invalidateAll();
|
|
146
|
-
}
|
|
147
|
-
if (props && props.images) {
|
|
148
|
-
this.updateImages({
|
|
149
|
-
props: props,
|
|
150
|
-
oldProps: oldProps
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
if (this.state.model) {
|
|
154
|
-
var _this$state$model$set, _this$state$model2;
|
|
155
|
-
(_this$state$model$set = (_this$state$model2 = this.state.model).setTopology) === null || _this$state$model$set === void 0 || _this$state$model$set.call(_this$state$model2, this.props.wireframe ? _constants.TOPOLOGY.LINE_STRIP : _constants.TOPOLOGY.TRIANGLE_LIST);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}, {
|
|
159
|
-
key: "updateImages",
|
|
160
|
-
value: function updateImages(_ref) {
|
|
161
|
-
var props = _ref.props,
|
|
162
|
-
oldProps = _ref.oldProps;
|
|
163
|
-
var images = this.state.images;
|
|
164
|
-
var device = this.context.device;
|
|
165
|
-
var gl = (device === null || device === void 0 ? void 0 : device.gl) || this.context.gl;
|
|
166
|
-
var newImages = (0, _images.loadImages)({
|
|
167
|
-
gl: gl,
|
|
168
|
-
device: device,
|
|
169
|
-
images: images,
|
|
170
|
-
imagesData: props.images,
|
|
171
|
-
oldImagesData: oldProps.images
|
|
172
|
-
});
|
|
173
|
-
if (newImages) {
|
|
174
|
-
this.setState({
|
|
175
|
-
images: newImages
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}, {
|
|
180
|
-
key: "draw",
|
|
181
|
-
value: function draw(_opts) {
|
|
182
|
-
var _this$props$opacity;
|
|
183
|
-
var _this$state = this.state,
|
|
184
|
-
model = _this$state.model,
|
|
185
|
-
images = _this$state.images;
|
|
186
|
-
var moduleProps = this.props.moduleProps;
|
|
187
|
-
if (!model || !images || Object.keys(images).length === 0 || !Object.values(images).every(function (item) {
|
|
188
|
-
return item;
|
|
189
|
-
})) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Set mesh-specific UBO uniforms
|
|
194
|
-
model.shaderInputs.setProps({
|
|
195
|
-
rasterMesh: {
|
|
196
|
-
meshOpacity: (_this$props$opacity = this.props.opacity) !== null && _this$props$opacity !== void 0 ? _this$props$opacity : 1,
|
|
197
|
-
meshFlatShading: !this.state.hasNormals ? 1.0 : 0.0
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
// Set props for each custom module through shaderInputs.
|
|
202
|
-
// Call getUniforms ourselves to skip inactive modules (null return),
|
|
203
|
-
// avoiding the ShaderInputs null-fallback that would dump all textures
|
|
204
|
-
// into bindings every frame.
|
|
205
|
-
var allModuleProps = _objectSpread(_objectSpread({}, moduleProps), images);
|
|
206
|
-
var modules = this.props.modules || [];
|
|
207
|
-
var _iterator = _createForOfIteratorHelper(modules),
|
|
208
|
-
_step;
|
|
209
|
-
try {
|
|
210
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
211
|
-
var mod = _step.value;
|
|
212
|
-
if (mod.getUniforms) {
|
|
213
|
-
var result = mod.getUniforms(allModuleProps);
|
|
214
|
-
if (result) {
|
|
215
|
-
model.shaderInputs.setProps((0, _defineProperty2["default"])({}, mod.name, result));
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
} catch (err) {
|
|
220
|
-
_iterator.e(err);
|
|
221
|
-
} finally {
|
|
222
|
-
_iterator.f();
|
|
223
|
-
}
|
|
224
|
-
var drawSuccess = model.draw(this.context.renderPass);
|
|
225
|
-
if (!drawSuccess) {
|
|
226
|
-
this._scheduleRedraw();
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}, {
|
|
230
|
-
key: "_scheduleRedraw",
|
|
231
|
-
value: function _scheduleRedraw() {
|
|
232
|
-
var _this2 = this;
|
|
233
|
-
if (this._redrawScheduled) return;
|
|
234
|
-
this._redrawScheduled = true;
|
|
235
|
-
requestAnimationFrame(function () {
|
|
236
|
-
var _this2$context$layerM;
|
|
237
|
-
_this2._redrawScheduled = false;
|
|
238
|
-
if (_this2.context.deck) {
|
|
239
|
-
// @ts-expect-error accessing private deck.gl property
|
|
240
|
-
_this2.context.deck._needsRedraw = 'RasterMeshLayer pipeline pending';
|
|
241
|
-
}
|
|
242
|
-
(_this2$context$layerM = _this2.context.layerManager) === null || _this2$context$layerM === void 0 || _this2$context$layerM.setNeedsRedraw('RasterMeshLayer pipeline pending');
|
|
243
|
-
if (typeof _this2.props.onRedrawNeeded === 'function') {
|
|
244
|
-
_this2.props.onRedrawNeeded();
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}, {
|
|
249
|
-
key: "finalizeState",
|
|
250
|
-
value: function finalizeState() {
|
|
251
|
-
_superPropGet(RasterMeshLayer, "finalizeState", this, 3)([this.context]);
|
|
252
|
-
if (this.state.images) {
|
|
253
|
-
for (var _i = 0, _Object$values = Object.values(this.state.images); _i < _Object$values.length; _i++) {
|
|
254
|
-
var image = _Object$values[_i];
|
|
255
|
-
if (Array.isArray(image)) {
|
|
256
|
-
image.map(function (x) {
|
|
257
|
-
var _x$delete;
|
|
258
|
-
return x && (x.destroy ? x.destroy() : (_x$delete = x["delete"]) === null || _x$delete === void 0 ? void 0 : _x$delete.call(x));
|
|
259
|
-
});
|
|
260
|
-
} else if (image) {
|
|
261
|
-
var _image$delete;
|
|
262
|
-
image.destroy ? image.destroy() : (_image$delete = image["delete"]) === null || _image$delete === void 0 ? void 0 : _image$delete.call(image);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}, {
|
|
268
|
-
key: "getModel",
|
|
269
|
-
value: function getModel(mesh) {
|
|
270
|
-
var device = this.context.device || this.context.gl;
|
|
271
|
-
var model = new _engine.Model(device, Object.assign({}, this.getShaders(), {
|
|
272
|
-
id: this.props.id,
|
|
273
|
-
geometry: getGeometry(mesh),
|
|
274
|
-
isInstanced: false
|
|
275
|
-
}));
|
|
276
|
-
return model;
|
|
277
|
-
}
|
|
278
|
-
}]);
|
|
279
|
-
}(_meshLayers.SimpleMeshLayer);
|
|
280
|
-
RasterMeshLayer.layerName = 'RasterMeshLayer';
|
|
281
|
-
RasterMeshLayer.defaultProps = defaultProps;
|
|
282
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVzaExheWVycyIsInJlcXVpcmUiLCJfZW5naW5lIiwiX3Jhc3Rlck1lc2hMYXllclNoYWRlcnMiLCJfcmFzdGVyTGF5ZXJTaGFkZXJzIiwiX2ltYWdlcyIsIl91dGlsIiwiX3BpcGVsaW5lVmFsaWRhdGlvblBhdGNoIiwiX2NvbnN0YW50cyIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWxpZGF0ZUdlb21ldHJ5QXR0cmlidXRlcyIsImF0dHJpYnV0ZXMiLCJwb3NpdGlvbnMiLCJQT1NJVElPTiIsIkVycm9yIiwiZ2V0R2VvbWV0cnkiLCJkYXRhIiwiR2VvbWV0cnkiLCJkZWZhdWx0UHJvcHMiLCJTaW1wbGVNZXNoTGF5ZXIiLCJtb2R1bGVzIiwidHlwZSIsImNvbXBhcmUiLCJpbWFnZXMiLCJtb2R1bGVQcm9wcyIsIm9uUmVkcmF3TmVlZGVkIiwiUmFzdGVyTWVzaExheWVyIiwiZXhwb3J0cyIsIl9TaW1wbGVNZXNoTGF5ZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJjb25jYXQiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImluaXRpYWxpemVTdGF0ZSIsInBhdGNoUGlwZWxpbmVWYWxpZGF0aW9uIiwiZW5zdXJlUmFzdGVySG9va3NSZWdpc3RlcmVkIiwic2V0U3RhdGUiLCJnZXRTaGFkZXJzIiwiX3RoaXMkcHJvcHMkbW9kdWxlcyIsInByb3BzIiwibHVtYU1vZHVsZXMiLCJwcmVwYXJlTHVtYU1vZHVsZXMiLCJwYXJlbnRTaGFkZXJzIiwidnMiLCJidWlsZFJhc3Rlck1lc2hWZXJ0ZXhTaGFkZXIiLCJmcyIsImJ1aWxkUmFzdGVyTWVzaEZyYWdtZW50U2hhZGVyIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJhc3Rlck1lc2hVbmlmb3JtcyIsInVwZGF0ZVN0YXRlIiwicGFyYW1zIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsImNvbnRleHQiLCJvbGRNb2R1bGVzIiwibWVzaCIsImV4dGVuc2lvbnNDaGFuZ2VkIiwibW9kdWxlc0VxdWFsIiwiX3RoaXMkZ2V0QXR0cmlidXRlTWFuIiwic3RhdGUiLCJtb2RlbCIsIl90aGlzJHN0YXRlJG1vZGVsJGRlcyIsIl90aGlzJHN0YXRlJG1vZGVsIiwiZGVzdHJveSIsImdldE1vZGVsIiwiaGFzTm9ybWFscyIsIk5PUk1BTCIsIm5vcm1hbHMiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiaW52YWxpZGF0ZUFsbCIsInVwZGF0ZUltYWdlcyIsIl90aGlzJHN0YXRlJG1vZGVsJHNldCIsIl90aGlzJHN0YXRlJG1vZGVsMiIsInNldFRvcG9sb2d5Iiwid2lyZWZyYW1lIiwiVE9QT0xPR1kiLCJMSU5FX1NUUklQIiwiVFJJQU5HTEVfTElTVCIsIl9yZWYiLCJkZXZpY2UiLCJnbCIsIm5ld0ltYWdlcyIsImxvYWRJbWFnZXMiLCJpbWFnZXNEYXRhIiwib2xkSW1hZ2VzRGF0YSIsImRyYXciLCJfb3B0cyIsIl90aGlzJHByb3BzJG9wYWNpdHkiLCJfdGhpcyRzdGF0ZSIsInZhbHVlcyIsImV2ZXJ5IiwiaXRlbSIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwicmFzdGVyTWVzaCIsIm1lc2hPcGFjaXR5Iiwib3BhY2l0eSIsIm1lc2hGbGF0U2hhZGluZyIsImFsbE1vZHVsZVByb3BzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJtb2QiLCJnZXRVbmlmb3JtcyIsInJlc3VsdCIsImVyciIsImRyYXdTdWNjZXNzIiwicmVuZGVyUGFzcyIsIl9zY2hlZHVsZVJlZHJhdyIsIl90aGlzMiIsIl9yZWRyYXdTY2hlZHVsZWQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJfdGhpczIkY29udGV4dCRsYXllck0iLCJkZWNrIiwiX25lZWRzUmVkcmF3IiwibGF5ZXJNYW5hZ2VyIiwic2V0TmVlZHNSZWRyYXciLCJmaW5hbGl6ZVN0YXRlIiwiX2kiLCJfT2JqZWN0JHZhbHVlcyIsImltYWdlIiwibWFwIiwieCIsIl94JGRlbGV0ZSIsIl9pbWFnZSRkZWxldGUiLCJNb2RlbCIsImFzc2lnbiIsImlkIiwiZ2VvbWV0cnkiLCJpc0luc3RhbmNlZCIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLW1lc2gtbGF5ZXIvcmFzdGVyLW1lc2gtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtVcGRhdGVQYXJhbWV0ZXJzfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7U2ltcGxlTWVzaExheWVyLCBTaW1wbGVNZXNoTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvbWVzaC1sYXllcnMnO1xuaW1wb3J0IHtHZW9tZXRyeX0gZnJvbSAnQGx1bWEuZ2wvZW5naW5lJztcbmltcG9ydCB7TW9kZWx9IGZyb20gJ0BsdW1hLmdsL2VuZ2luZSc7XG5cbmltcG9ydCB7XG4gIGJ1aWxkUmFzdGVyTWVzaEZyYWdtZW50U2hhZGVyLFxuICBidWlsZFJhc3Rlck1lc2hWZXJ0ZXhTaGFkZXIsXG4gIHJhc3Rlck1lc2hVbmlmb3Jtc1xufSBmcm9tICcuL3Jhc3Rlci1tZXNoLWxheWVyLXNoYWRlcnMnO1xuaW1wb3J0IHtcbiAgZW5zdXJlUmFzdGVySG9va3NSZWdpc3RlcmVkLFxuICBwcmVwYXJlTHVtYU1vZHVsZXNcbn0gZnJvbSAnLi4vcmFzdGVyLWxheWVyL3Jhc3Rlci1sYXllci1zaGFkZXJzJztcbmltcG9ydCB7bG9hZEltYWdlc30gZnJvbSAnLi4vaW1hZ2VzJztcbmltcG9ydCB0eXBlIHtSYXN0ZXJMYXllckFkZGVkUHJvcHMsIEltYWdlU3RhdGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bW9kdWxlc0VxdWFsfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7cGF0Y2hQaXBlbGluZVZhbGlkYXRpb259IGZyb20gJy4uL3BpcGVsaW5lLXZhbGlkYXRpb24tcGF0Y2gnO1xuaW1wb3J0IHtUT1BPTE9HWX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG50eXBlIE1lc2ggPSBTaW1wbGVNZXNoTGF5ZXJQcm9wc1snbWVzaCddO1xuXG5pbnRlcmZhY2UgTWVzaERhdGEge1xuICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBvc2l0aW9ucz86IHVua25vd247XG4gIFBPU0lUSU9OPzogdW5rbm93bjtcbiAgTk9STUFMPzogdW5rbm93bjtcbiAgbm9ybWFscz86IHVua25vd247XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlR2VvbWV0cnlBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gIGlmICghKGF0dHJpYnV0ZXMucG9zaXRpb25zIHx8IGF0dHJpYnV0ZXMuUE9TSVRJT04pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1Jhc3Rlck1lc2hMYXllciByZXF1aXJlcyBcInBvc2l0aW9uc1wiIG9yIFwiUE9TSVRJT05cIiBhdHRyaWJ1dGUgaW4gbWVzaCBwcm9wZXJ0eS4nXG4gICAgKTtcbiAgfVxufVxuXG4vKlxuICogQ29udmVydCBtZXNoIGRhdGEgaW50byBnZW9tZXRyeVxuICogQHJldHVybnMgZ2VvbWV0cnlcbiAqL1xuZnVuY3Rpb24gZ2V0R2VvbWV0cnkoZGF0YTogTWVzaERhdGEgfCBHZW9tZXRyeSk6IEdlb21ldHJ5IHtcbiAgaWYgKCdhdHRyaWJ1dGVzJyBpbiBkYXRhICYmIGRhdGEuYXR0cmlidXRlcykge1xuICAgIHZhbGlkYXRlR2VvbWV0cnlBdHRyaWJ1dGVzKGRhdGEuYXR0cmlidXRlcyk7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBHZW9tZXRyeSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBuZXcgR2VvbWV0cnkoZGF0YSBhcyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdlb21ldHJ5PlswXSk7XG4gIH0gZWxzZSBpZiAoJ3Bvc2l0aW9ucycgaW4gZGF0YSB8fCAnUE9TSVRJT04nIGluIGRhdGEpIHtcbiAgICB2YWxpZGF0ZUdlb21ldHJ5QXR0cmlidXRlcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICByZXR1cm4gbmV3IEdlb21ldHJ5KHtcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICB9IGFzIENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR2VvbWV0cnk+WzBdKTtcbiAgfVxuICB0aHJvdyBFcnJvcignSW52YWxpZCBtZXNoJyk7XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uU2ltcGxlTWVzaExheWVyLmRlZmF1bHRQcm9wcyxcbiAgbW9kdWxlczoge3R5cGU6ICdhcnJheScsIHZhbHVlOiBbXSwgY29tcGFyZTogdHJ1ZX0sXG4gIGltYWdlczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBtb2R1bGVQcm9wczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBvblJlZHJhd05lZWRlZDoge3R5cGU6ICdmdW5jdGlvbicsIHZhbHVlOiBudWxsLCBjb21wYXJlOiBmYWxzZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhc3Rlck1lc2hMYXllciBleHRlbmRzIFNpbXBsZU1lc2hMYXllcjxhbnksIFJhc3RlckxheWVyQWRkZWRQcm9wcz4ge1xuICBkZWNsYXJlIHN0YXRlOiBTaW1wbGVNZXNoTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPlsnc3RhdGUnXSAmIHtcbiAgICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIH07XG5cbiAgX3JlZHJhd1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGluaXRpYWxpemVTdGF0ZSgpOiB2b2lkIHtcbiAgICBwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbigpO1xuICAgIGVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlczoge319KTtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgfVxuXG4gIGdldFNoYWRlcnMoKTogYW55IHtcbiAgICBjb25zdCB7bW9kdWxlcyA9IFtdfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBsdW1hTW9kdWxlcyA9IHByZXBhcmVMdW1hTW9kdWxlcyhtb2R1bGVzKTtcbiAgICBjb25zdCBwYXJlbnRTaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhcmVudFNoYWRlcnMsXG4gICAgICB2czogYnVpbGRSYXN0ZXJNZXNoVmVydGV4U2hhZGVyKCksXG4gICAgICBmczogYnVpbGRSYXN0ZXJNZXNoRnJhZ21lbnRTaGFkZXIoKSxcbiAgICAgIG1vZHVsZXM6IFsuLi4ocGFyZW50U2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgcmFzdGVyTWVzaFVuaWZvcm1zLCAuLi5sdW1hTW9kdWxlc11cbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgdXBkYXRlU3RhdGUocGFyYW1zOiBVcGRhdGVQYXJhbWV0ZXJzPFNpbXBsZU1lc2hMYXllcjxhbnksIFJhc3RlckxheWVyQWRkZWRQcm9wcz4+KTogdm9pZCB7XG4gICAgY29uc3Qge3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3MsIGNvbnRleHR9ID0gcGFyYW1zO1xuICAgIHN1cGVyLnVwZGF0ZVN0YXRlKHtwcm9wcywgb2xkUHJvcHMsIGNoYW5nZUZsYWdzLCBjb250ZXh0fSk7XG5cbiAgICBjb25zdCBtb2R1bGVzID0gcHJvcHMgJiYgcHJvcHMubW9kdWxlcztcbiAgICBjb25zdCBvbGRNb2R1bGVzID0gb2xkUHJvcHMgJiYgb2xkUHJvcHMubW9kdWxlcztcblxuICAgIGlmIChcbiAgICAgIHByb3BzLm1lc2ggIT09IG9sZFByb3BzLm1lc2ggfHxcbiAgICAgIGNoYW5nZUZsYWdzLmV4dGVuc2lvbnNDaGFuZ2VkIHx8XG4gICAgICAhbW9kdWxlc0VxdWFsKG1vZHVsZXMsIG9sZE1vZHVsZXMpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgICB0aGlzLnN0YXRlLm1vZGVsLmRlc3Ryb3k/LigpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLm1lc2gpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5tb2RlbCA9IHRoaXMuZ2V0TW9kZWwocHJvcHMubWVzaCBhcyBNZXNoKTtcblxuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gKChwcm9wcy5tZXNoIGFzIE1lc2hEYXRhKS5hdHRyaWJ1dGVzIHx8IHByb3BzLm1lc2gpIGFzIE1lc2hEYXRhO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBoYXNOb3JtYWxzOiBCb29sZWFuKGF0dHJpYnV0ZXMuTk9STUFMIHx8IGF0dHJpYnV0ZXMubm9ybWFscylcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKT8uaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcyAmJiBwcm9wcy5pbWFnZXMpIHtcbiAgICAgIHRoaXMudXBkYXRlSW1hZ2VzKHtwcm9wcywgb2xkUHJvcHN9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5zZXRUb3BvbG9neT8uKFxuICAgICAgICB0aGlzLnByb3BzLndpcmVmcmFtZSA/IFRPUE9MT0dZLkxJTkVfU1RSSVAgOiBUT1BPTE9HWS5UUklBTkdMRV9MSVNUXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUltYWdlcyh7XG4gICAgcHJvcHMsXG4gICAgb2xkUHJvcHNcbiAgfToge1xuICAgIHByb3BzOiBSYXN0ZXJMYXllckFkZGVkUHJvcHM7XG4gICAgb2xkUHJvcHM6IFJhc3RlckxheWVyQWRkZWRQcm9wcztcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHtpbWFnZXN9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBkZXZpY2UgPSB0aGlzLmNvbnRleHQuZGV2aWNlO1xuICAgIGNvbnN0IGdsID0gZGV2aWNlPy5nbCB8fCB0aGlzLmNvbnRleHQuZ2w7XG5cbiAgICBjb25zdCBuZXdJbWFnZXMgPSBsb2FkSW1hZ2VzKHtcbiAgICAgIGdsLFxuICAgICAgZGV2aWNlLFxuICAgICAgaW1hZ2VzLFxuICAgICAgaW1hZ2VzRGF0YTogcHJvcHMuaW1hZ2VzLFxuICAgICAgb2xkSW1hZ2VzRGF0YTogb2xkUHJvcHMuaW1hZ2VzXG4gICAgfSk7XG5cbiAgICBpZiAobmV3SW1hZ2VzKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IG5ld0ltYWdlc30pO1xuICAgIH1cbiAgfVxuXG4gIGRyYXcoX29wdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgY29uc3Qge21vZGVsLCBpbWFnZXN9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7bW9kdWxlUHJvcHN9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChcbiAgICAgICFtb2RlbCB8fFxuICAgICAgIWltYWdlcyB8fFxuICAgICAgT2JqZWN0LmtleXMoaW1hZ2VzKS5sZW5ndGggPT09IDAgfHxcbiAgICAgICFPYmplY3QudmFsdWVzKGltYWdlcykuZXZlcnkoaXRlbSA9PiBpdGVtKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNldCBtZXNoLXNwZWNpZmljIFVCTyB1bmlmb3Jtc1xuICAgIG1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7XG4gICAgICByYXN0ZXJNZXNoOiB7XG4gICAgICAgIG1lc2hPcGFjaXR5OiB0aGlzLnByb3BzLm9wYWNpdHkgPz8gMSxcbiAgICAgICAgbWVzaEZsYXRTaGFkaW5nOiAhdGhpcy5zdGF0ZS5oYXNOb3JtYWxzID8gMS4wIDogMC4wXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgcHJvcHMgZm9yIGVhY2ggY3VzdG9tIG1vZHVsZSB0aHJvdWdoIHNoYWRlcklucHV0cy5cbiAgICAvLyBDYWxsIGdldFVuaWZvcm1zIG91cnNlbHZlcyB0byBza2lwIGluYWN0aXZlIG1vZHVsZXMgKG51bGwgcmV0dXJuKSxcbiAgICAvLyBhdm9pZGluZyB0aGUgU2hhZGVySW5wdXRzIG51bGwtZmFsbGJhY2sgdGhhdCB3b3VsZCBkdW1wIGFsbCB0ZXh0dXJlc1xuICAgIC8vIGludG8gYmluZGluZ3MgZXZlcnkgZnJhbWUuXG4gICAgY29uc3QgYWxsTW9kdWxlUHJvcHMgPSB7Li4ubW9kdWxlUHJvcHMsIC4uLmltYWdlc307XG4gICAgY29uc3QgbW9kdWxlcyA9IHRoaXMucHJvcHMubW9kdWxlcyB8fCBbXTtcbiAgICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzKSB7XG4gICAgICBpZiAobW9kLmdldFVuaWZvcm1zKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG1vZC5nZXRVbmlmb3JtcyhhbGxNb2R1bGVQcm9wcyk7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe1ttb2QubmFtZV06IHJlc3VsdH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZHJhd1N1Y2Nlc3MgPSBtb2RlbC5kcmF3KHRoaXMuY29udGV4dC5yZW5kZXJQYXNzKTtcbiAgICBpZiAoIWRyYXdTdWNjZXNzKSB7XG4gICAgICB0aGlzLl9zY2hlZHVsZVJlZHJhdygpO1xuICAgIH1cbiAgfVxuXG4gIF9zY2hlZHVsZVJlZHJhdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVkcmF3U2NoZWR1bGVkKSByZXR1cm47XG4gICAgdGhpcy5fcmVkcmF3U2NoZWR1bGVkID0gdHJ1ZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5fcmVkcmF3U2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5jb250ZXh0LmRlY2spIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBhY2Nlc3NpbmcgcHJpdmF0ZSBkZWNrLmdsIHByb3BlcnR5XG4gICAgICAgIHRoaXMuY29udGV4dC5kZWNrLl9uZWVkc1JlZHJhdyA9ICdSYXN0ZXJNZXNoTGF5ZXIgcGlwZWxpbmUgcGVuZGluZyc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRleHQubGF5ZXJNYW5hZ2VyPy5zZXROZWVkc1JlZHJhdygnUmFzdGVyTWVzaExheWVyIHBpcGVsaW5lIHBlbmRpbmcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblJlZHJhd05lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVkcmF3TmVlZGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmaW5hbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmZpbmFsaXplU3RhdGUodGhpcy5jb250ZXh0KTtcblxuICAgIGlmICh0aGlzLnN0YXRlLmltYWdlcykge1xuICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhdGUuaW1hZ2VzKSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZSkpIHtcbiAgICAgICAgICBpbWFnZS5tYXAoeCA9PiB4ICYmICh4LmRlc3Ryb3kgPyB4LmRlc3Ryb3koKSA6IHguZGVsZXRlPy4oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGltYWdlKSB7XG4gICAgICAgICAgaW1hZ2UuZGVzdHJveSA/IGltYWdlLmRlc3Ryb3koKSA6IGltYWdlLmRlbGV0ZT8uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwobWVzaDogTWVzaCk6IE1vZGVsIHtcbiAgICBjb25zdCBkZXZpY2UgPSB0aGlzLmNvbnRleHQuZGV2aWNlIHx8IHRoaXMuY29udGV4dC5nbDtcblxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsKFxuICAgICAgZGV2aWNlLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5nZXRTaGFkZXJzKCksIHtcbiAgICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAgIGdlb21ldHJ5OiBnZXRHZW9tZXRyeShtZXNoIGFzIE1lc2hEYXRhIHwgR2VvbWV0cnkpLFxuICAgICAgICBpc0luc3RhbmNlZDogZmFsc2VcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxufVxuXG5SYXN0ZXJNZXNoTGF5ZXIubGF5ZXJOYW1lID0gJ1Jhc3Rlck1lc2hMYXllcic7XG5SYXN0ZXJNZXNoTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFHQSxJQUFBRSx1QkFBQSxHQUFBRixPQUFBO0FBS0EsSUFBQUcsbUJBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFBOEMsU0FBQVEsMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLHlCQUFBQyxNQUFBLElBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLENBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsQ0FBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLENBQUEsSUFBQUQsQ0FBQSx1QkFBQUEsQ0FBQSxDQUFBUSxNQUFBLElBQUFOLENBQUEsS0FBQUYsQ0FBQSxHQUFBRSxDQUFBLE9BQUFPLEVBQUEsTUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsV0FBQUgsRUFBQSxJQUFBVCxDQUFBLENBQUFRLE1BQUEsS0FBQUssSUFBQSxXQUFBQSxJQUFBLE1BQUFDLEtBQUEsRUFBQWQsQ0FBQSxDQUFBUyxFQUFBLFVBQUFSLENBQUEsV0FBQUEsRUFBQUQsQ0FBQSxVQUFBQSxDQUFBLEtBQUFlLENBQUEsRUFBQUwsQ0FBQSxnQkFBQU0sU0FBQSxpSkFBQUMsQ0FB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
|
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,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.modulesEqual = modulesEqual;
|
|
7
|
-
// SPDX-License-Identifier: MIT
|
|
8
|
-
// Copyright contributors to the kepler.gl project
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Test if two lists of modules are equal
|
|
12
|
-
*
|
|
13
|
-
* @param modules Modules list
|
|
14
|
-
* @param oldModules Modules list
|
|
15
|
-
*
|
|
16
|
-
* @return true if both lists are equal
|
|
17
|
-
*/
|
|
18
|
-
function modulesEqual(modules, oldModules) {
|
|
19
|
-
if (modules.length !== oldModules.length) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
for (var i = 0; i < modules.length; i++) {
|
|
23
|
-
if (modules[i].name !== oldModules[i].name) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGVzRXF1YWwiLCJtb2R1bGVzIiwib2xkTW9kdWxlcyIsImxlbmd0aCIsImkiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhc3Rlci91dGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2hhZGVyTW9kdWxlfSBmcm9tICcuL3dlYmdsL3R5cGVzJztcblxuLyoqXG4gKiBUZXN0IGlmIHR3byBsaXN0cyBvZiBtb2R1bGVzIGFyZSBlcXVhbFxuICpcbiAqIEBwYXJhbSBtb2R1bGVzICAgICBNb2R1bGVzIGxpc3RcbiAqIEBwYXJhbSBvbGRNb2R1bGVzICBNb2R1bGVzIGxpc3RcbiAqXG4gKiBAcmV0dXJuIHRydWUgaWYgYm90aCBsaXN0cyBhcmUgZXF1YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZHVsZXNFcXVhbChtb2R1bGVzOiBTaGFkZXJNb2R1bGVbXSwgb2xkTW9kdWxlczogU2hhZGVyTW9kdWxlW10pOiBib29sZWFuIHtcbiAgaWYgKG1vZHVsZXMubGVuZ3RoICE9PSBvbGRNb2R1bGVzLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChtb2R1bGVzW2ldLm5hbWUgIT09IG9sZE1vZHVsZXNbaV0ubmFtZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxZQUFZQSxDQUFDQyxPQUF1QixFQUFFQyxVQUEwQixFQUFXO0VBQ3pGLElBQUlELE9BQU8sQ0FBQ0UsTUFBTSxLQUFLRCxVQUFVLENBQUNDLE1BQU0sRUFBRTtJQUN4QyxPQUFPLEtBQUs7RUFDZDtFQUVBLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHSCxPQUFPLENBQUNFLE1BQU0sRUFBRUMsQ0FBQyxFQUFFLEVBQUU7SUFDdkMsSUFBSUgsT0FBTyxDQUFDRyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxLQUFLSCxVQUFVLENBQUNFLENBQUMsQ0FBQyxDQUFDQyxJQUFJLEVBQUU7TUFDMUMsT0FBTyxLQUFLO0lBQ2Q7RUFDRjtFQUVBLE9BQU8sSUFBSTtBQUNiIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -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
|