@kepler.gl/deckgl-layers 3.3.0-alpha.0 → 3.3.0-alpha.1
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/cluster-layer/cluster-layer.js +1 -4
- package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +7 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +29 -8
- package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +7 -0
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +29 -8
- package/dist/index.d.ts +1 -0
- package/dist/index.js +13 -1
- package/dist/layer-utils/aggregation-utils.d.ts +44 -0
- package/dist/layer-utils/aggregation-utils.js +181 -0
- package/dist/layer-utils/shader-utils.d.ts +1 -0
- package/dist/layer-utils/shader-utils.js +10 -1
- package/dist/raster/pipeline-validation-patch.js +61 -20
- package/dist/raster/raster-layer/raster-layer-shaders.js +44 -10
- package/dist/raster/raster-layer/raster-layer.js +8 -27
- package/dist/raster/raster-mesh-layer/matrix.d.ts +1 -1
- package/dist/raster/raster-mesh-layer/matrix.js +1 -1
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +15 -26
- package/dist/raster/raster-processing-uniforms.d.ts +38 -0
- package/dist/raster/raster-processing-uniforms.js +124 -0
- package/dist/raster/util.d.ts +15 -0
- package/dist/raster/util.js +113 -3
- package/dist/wms/wms-layer.d.ts +5 -2
- package/dist/wms/wms-layer.js +94 -21
- package/package.json +20 -17
|
@@ -18,9 +18,7 @@ var _rasterLayerShaders = require("./raster-layer-shaders");
|
|
|
18
18
|
var _images = require("../images");
|
|
19
19
|
var _util = require("../util");
|
|
20
20
|
var _pipelineValidationPatch = require("../pipeline-validation-patch");
|
|
21
|
-
|
|
22
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
21
|
+
var _rasterProcessingUniforms = require("../raster-processing-uniforms");
|
|
24
22
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
25
23
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
26
24
|
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; }
|
|
@@ -107,30 +105,13 @@ var RasterLayer = exports["default"] = /*#__PURE__*/function (_BitmapLayer) {
|
|
|
107
105
|
}
|
|
108
106
|
});
|
|
109
107
|
|
|
110
|
-
//
|
|
111
|
-
// We call getUniforms
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
// triggering expensive texture rebinding every frame.
|
|
108
|
+
// Apply each custom module's uniforms/bindings to shaderInputs directly.
|
|
109
|
+
// We call getUniforms once per module and write the results into
|
|
110
|
+
// shaderInputs.moduleUniforms/moduleBindings, bypassing setProps() which
|
|
111
|
+
// would call getUniforms a second time on already-transformed values.
|
|
115
112
|
var allModuleProps = _objectSpread(_objectSpread({}, moduleProps), images);
|
|
116
113
|
var modules = this.props.modules || [];
|
|
117
|
-
|
|
118
|
-
_step;
|
|
119
|
-
try {
|
|
120
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
121
|
-
var mod = _step.value;
|
|
122
|
-
if (mod.getUniforms) {
|
|
123
|
-
var result = mod.getUniforms(allModuleProps);
|
|
124
|
-
if (result) {
|
|
125
|
-
model.shaderInputs.setProps((0, _defineProperty2["default"])({}, mod.name, result));
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
} catch (err) {
|
|
130
|
-
_iterator.e(err);
|
|
131
|
-
} finally {
|
|
132
|
-
_iterator.f();
|
|
133
|
-
}
|
|
114
|
+
(0, _util.applyModuleUniforms)(model.shaderInputs, modules, allModuleProps);
|
|
134
115
|
var drawSuccess = model.draw(this.context.renderPass);
|
|
135
116
|
if (!drawSuccess) {
|
|
136
117
|
this._scheduleRedraw();
|
|
@@ -165,7 +146,7 @@ var RasterLayer = exports["default"] = /*#__PURE__*/function (_BitmapLayer) {
|
|
|
165
146
|
return _objectSpread(_objectSpread({}, parentShaders), {}, {
|
|
166
147
|
vs: (0, _rasterLayerShaders.buildRasterVertexShader)(),
|
|
167
148
|
fs: (0, _rasterLayerShaders.buildRasterFragmentShader)(),
|
|
168
|
-
modules: [].concat((0, _toConsumableArray2["default"])(parentShaders.modules || []), [_rasterLayerShaders.rasterUniforms], (0, _toConsumableArray2["default"])(lumaModules))
|
|
149
|
+
modules: [].concat((0, _toConsumableArray2["default"])(parentShaders.modules || []), [_rasterLayerShaders.rasterUniforms, _rasterProcessingUniforms.rasterProcessingUniforms], (0, _toConsumableArray2["default"])(lumaModules))
|
|
169
150
|
});
|
|
170
151
|
}
|
|
171
152
|
|
|
@@ -253,4 +234,4 @@ var RasterLayer = exports["default"] = /*#__PURE__*/function (_BitmapLayer) {
|
|
|
253
234
|
}(_layers.BitmapLayer);
|
|
254
235
|
RasterLayer.defaultProps = defaultProps;
|
|
255
236
|
RasterLayer.layerName = 'RasterLayer';
|
|
256
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl9yYXN0ZXJMYXllclNoYWRlcnMiLCJfaW1hZ2VzIiwiX3V0aWwiLCJfcGlwZWxpbmVWYWxpZGF0aW9uUGF0Y2giLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiX3N1cGVyUHJvcEdldCIsInAiLCJfZ2V0MiIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVmYXVsdFByb3BzIiwiQml0bWFwTGF5ZXIiLCJtb2R1bGVzIiwidHlwZSIsImNvbXBhcmUiLCJpbWFnZXMiLCJtb2R1bGVQcm9wcyIsIm9uUmVkcmF3TmVlZGVkIiwiUmFzdGVyTGF5ZXIiLCJleHBvcnRzIiwiX0JpdG1hcExheWVyIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwiY29uY2F0IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJpbml0aWFsaXplU3RhdGUiLCJwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbiIsImVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCIsInNldFN0YXRlIiwiZHJhdyIsIl9vcHRzIiwiX3RoaXMkcHJvcHMkb3BhY2l0eSIsIl90aGlzJHN0YXRlIiwic3RhdGUiLCJtb2RlbCIsImNvb3JkaW5hdGVDb252ZXJzaW9uIiwiYm91bmRzIiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImRlc2F0dXJhdGUiLCJ0cmFuc3BhcmVudENvbG9yIiwidGludENvbG9yIiwidmFsdWVzIiwiZXZlcnkiLCJpdGVtIiwic2hhZGVySW5wdXRzIiwic2V0UHJvcHMiLCJyYXN0ZXIiLCJtYXAiLCJ4Iiwib3BhY2l0eSIsImFsbE1vZHVsZVByb3BzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJtb2QiLCJnZXRVbmlmb3JtcyIsInJlc3VsdCIsImVyciIsImRyYXdTdWNjZXNzIiwiY29udGV4dCIsInJlbmRlclBhc3MiLCJfc2NoZWR1bGVSZWRyYXciLCJfdGhpczIiLCJfcmVkcmF3U2NoZWR1bGVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3RoaXMyJGNvbnRleHQkbGF5ZXJNIiwiZGVjayIsIl9uZWVkc1JlZHJhdyIsImxheWVyTWFuYWdlciIsInNldE5lZWRzUmVkcmF3IiwiZ2V0U2hhZGVycyIsIl90aGlzJHByb3BzJG1vZHVsZXMiLCJsdW1hTW9kdWxlcyIsInByZXBhcmVMdW1hTW9kdWxlcyIsInBhcmVudFNoYWRlcnMiLCJ2cyIsImJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyIiwiZnMiLCJidWlsZFJhc3RlckZyYWdtZW50U2hhZGVyIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJhc3RlclVuaWZvcm1zIiwidXBkYXRlU3RhdGUiLCJwYXJhbXMiLCJvbGRQcm9wcyIsImNoYW5nZUZsYWdzIiwib2xkTW9kdWxlcyIsImV4dGVuc2lvbnNDaGFuZ2VkIiwibW9kdWxlc0VxdWFsIiwiX3RoaXMkc3RhdGUkbW9kZWwiLCJfdGhpcyRzdGF0ZSRtb2RlbCRkZXMiLCJfdGhpcyRnZXRBdHRyaWJ1dGVNYW4iLCJkZXN0cm95IiwiX2dldE1vZGVsIiwiZGV2aWNlIiwiZ2wiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiaW52YWxpZGF0ZUFsbCIsInVwZGF0ZUltYWdlcyIsImF0dHJpYnV0ZU1hbmFnZXIiLCJfdGhpcyRzdGF0ZSRtb2RlbDIiLCJvbGRNZXNoIiwibWVzaCIsIl9jcmVhdGVNZXNoIiwic2V0VmVydGV4Q291bnQiLCJ2ZXJ0ZXhDb3VudCIsImludmFsaWRhdGUiLCJfZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zIiwiX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSIsIl9yZWYiLCJuZXdJbWFnZXMiLCJsb2FkSW1hZ2VzIiwiaW1hZ2VzRGF0YSIsIm9sZEltYWdlc0RhdGEiLCJmaW5hbGl6ZVN0YXRlIiwiX2kiLCJfT2JqZWN0JHZhbHVlcyIsImltYWdlIiwiX3gkZGVsZXRlIiwiX2ltYWdlJGRlbGV0ZSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLWxheWVyL3Jhc3Rlci1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1VwZGF0ZVBhcmFtZXRlcnN9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtCaXRtYXBMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuaW1wb3J0IHtcbiAgYnVpbGRSYXN0ZXJGcmFnbWVudFNoYWRlcixcbiAgYnVpbGRSYXN0ZXJWZXJ0ZXhTaGFkZXIsXG4gIHJhc3RlclVuaWZvcm1zLFxuICBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQsXG4gIHByZXBhcmVMdW1hTW9kdWxlc1xufSBmcm9tICcuL3Jhc3Rlci1sYXllci1zaGFkZXJzJztcbmltcG9ydCB7bG9hZEltYWdlc30gZnJvbSAnLi4vaW1hZ2VzJztcbmltcG9ydCB0eXBlIHtSYXN0ZXJMYXllckFkZGVkUHJvcHMsIEltYWdlU3RhdGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bW9kdWxlc0VxdWFsfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7cGF0Y2hQaXBlbGluZVZhbGlkYXRpb259IGZyb20gJy4uL3BpcGVsaW5lLXZhbGlkYXRpb24tcGF0Y2gnO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIC4uLkJpdG1hcExheWVyLmRlZmF1bHRQcm9wcyxcbiAgbW9kdWxlczoge3R5cGU6ICdhcnJheScsIHZhbHVlOiBbXSwgY29tcGFyZTogdHJ1ZX0sXG4gIGltYWdlczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBtb2R1bGVQcm9wczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBvblJlZHJhd05lZWRlZDoge3R5cGU6ICdmdW5jdGlvbicsIHZhbHVlOiBudWxsLCBjb21wYXJlOiBmYWxzZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhc3RlckxheWVyIGV4dGVuZHMgQml0bWFwTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPiB7XG4gIGRlY2xhcmUgc3RhdGU6IEJpdG1hcExheWVyPFJhc3RlckxheWVyQWRkZWRQcm9wcz5bJ3N0YXRlJ10gJiB7XG4gICAgaW1hZ2VzOiBJbWFnZVN0YXRlO1xuICB9O1xuXG4gIF9yZWRyYXdTY2hlZHVsZWQgPSBmYWxzZTtcblxuICBpbml0aWFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgcGF0Y2hQaXBlbGluZVZhbGlkYXRpb24oKTtcbiAgICBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQoKTtcbiAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IHt9fSk7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gIH1cblxuICBkcmF3KF9vcHRzOiB7c2hhZGVyTW9kdWxlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+fSk6IHZvaWQge1xuICAgIGNvbnN0IHttb2RlbCwgaW1hZ2VzLCBjb29yZGluYXRlQ29udmVyc2lvbiwgYm91bmRzfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2Rlc2F0dXJhdGUsIHRyYW5zcGFyZW50Q29sb3IsIHRpbnRDb2xvciwgbW9kdWxlUHJvcHN9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChcbiAgICAgICFtb2RlbCB8fFxuICAgICAgIWltYWdlcyB8fFxuICAgICAgT2JqZWN0LmtleXMoaW1hZ2VzKS5sZW5ndGggPT09IDAgfHxcbiAgICAgICFPYmplY3QudmFsdWVzKGltYWdlcykuZXZlcnkoaXRlbSA9PiBpdGVtKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNldCBVQk8gdW5pZm9ybXMgZm9yIHRoZSByYXN0ZXIgbW9kdWxlXG4gICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtcbiAgICAgIHJhc3Rlcjoge1xuICAgICAgICBkZXNhdHVyYXRlOiBkZXNhdHVyYXRlIHx8IDAsXG4gICAgICAgIHRyYW5zcGFyZW50Q29sb3I6ICh0cmFuc3BhcmVudENvbG9yIHx8IFswLCAwLCAwLCAwXSkubWFwKHggPT4gKHggPyB4IC8gMjU1IDogMCkpLFxuICAgICAgICB0aW50Q29sb3I6ICh0aW50Q29sb3IgfHwgWzI1NSwgMjU1LCAyNTVdKS5zbGljZSgwLCAzKS5tYXAoeCA9PiB4IC8gMjU1KSxcbiAgICAgICAgY29vcmRpbmF0ZUNvbnZlcnNpb246IGNvb3JkaW5hdGVDb252ZXJzaW9uIHx8IDAsXG4gICAgICAgIGJvdW5kczogYm91bmRzIHx8IFswLCAwLCAwLCAwXSxcbiAgICAgICAgb3BhY2l0eTogdGhpcy5wcm9wcy5vcGFjaXR5ID8/IDFcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCBwcm9wcyBmb3IgZWFjaCBjdXN0b20gbW9kdWxlIHRocm91Z2ggc2hhZGVySW5wdXRzLlxuICAgIC8vIFdlIGNhbGwgZ2V0VW5pZm9ybXMgb3Vyc2VsdmVzIHRvIHNraXAgbW9kdWxlcyB0aGF0IHJldHVybiBudWxsIChpbmFjdGl2ZSkuXG4gICAgLy8gUGFzc2luZyBhbGxNb2R1bGVQcm9wcyBkaXJlY3RseSB0byBzZXRQcm9wcyB3b3VsZCBjYXVzZSB0aGUgbnVsbC1mYWxsYmFja1xuICAgIC8vIGluIFNoYWRlcklucHV0cyB0byB0cmVhdCB0aGUgZW50aXJlIHByb3BzIGJhZyBhcyB1bmlmb3Jtcy9iaW5kaW5ncyxcbiAgICAvLyB0cmlnZ2VyaW5nIGV4cGVuc2l2ZSB0ZXh0dXJlIHJlYmluZGluZyBldmVyeSBmcmFtZS5cbiAgICBjb25zdCBhbGxNb2R1bGVQcm9wcyA9IHsuLi5tb2R1bGVQcm9wcywgLi4uaW1hZ2VzfTtcbiAgICBjb25zdCBtb2R1bGVzID0gdGhpcy5wcm9wcy5tb2R1bGVzIHx8IFtdO1xuICAgIGZvciAoY29uc3QgbW9kIG9mIG1vZHVsZXMpIHtcbiAgICAgIGlmIChtb2QuZ2V0VW5pZm9ybXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbW9kLmdldFVuaWZvcm1zKGFsbE1vZHVsZVByb3BzKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIG1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7W21vZC5uYW1lXTogcmVzdWx0fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkcmF3U3VjY2VzcyA9IG1vZGVsLmRyYXcodGhpcy5jb250ZXh0LnJlbmRlclBhc3MpO1xuICAgIGlmICghZHJhd1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3NjaGVkdWxlUmVkcmF3KCk7XG4gICAgfVxuICB9XG5cbiAgX3NjaGVkdWxlUmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWRyYXdTY2hlZHVsZWQpIHJldHVybjtcbiAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuZGVjaykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGFjY2Vzc2luZyBwcml2YXRlIGRlY2suZ2wgcHJvcGVydHlcbiAgICAgICAgdGhpcy5jb250ZXh0LmRlY2suX25lZWRzUmVkcmF3ID0gJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0LmxheWVyTWFuYWdlcj8uc2V0TmVlZHNSZWRyYXcoJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblJlZHJhd05lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVkcmF3TmVlZGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRTaGFkZXJzKCk6IGFueSB7XG4gICAgY29uc3Qge21vZHVsZXMgPSBbXX0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgbHVtYU1vZHVsZXMgPSBwcmVwYXJlTHVtYU1vZHVsZXMobW9kdWxlcyk7XG4gICAgY29uc3QgcGFyZW50U2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJlbnRTaGFkZXJzLFxuICAgICAgdnM6IGJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyKCksXG4gICAgICBmczogYnVpbGRSYXN0ZXJGcmFnbWVudFNoYWRlcigpLFxuICAgICAgbW9kdWxlczogWy4uLihwYXJlbnRTaGFkZXJzLm1vZHVsZXMgfHwgW10pLCByYXN0ZXJVbmlmb3JtcywgLi4ubHVtYU1vZHVsZXNdXG4gICAgfTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gIHVwZGF0ZVN0YXRlKHBhcmFtczogVXBkYXRlUGFyYW1ldGVyczxCaXRtYXBMYXllcjxSYXN0ZXJMYXllckFkZGVkUHJvcHM+Pik6IHZvaWQge1xuICAgIGNvbnN0IHtwcm9wcywgb2xkUHJvcHMsIGNoYW5nZUZsYWdzfSA9IHBhcmFtcztcbiAgICBjb25zdCBtb2R1bGVzID0gcHJvcHMgJiYgcHJvcHMubW9kdWxlcztcbiAgICBjb25zdCBvbGRNb2R1bGVzID0gb2xkUHJvcHMgJiYgb2xkUHJvcHMubW9kdWxlcztcblxuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCB8fCAhbW9kdWxlc0VxdWFsKG1vZHVsZXMsIG9sZE1vZHVsZXMpKSB7XG4gICAgICB0aGlzLnN0YXRlLm1vZGVsPy5kZXN0cm95Py4oKTtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgX2dldE1vZGVsIGlzIGludGVybmFsIHRvIEJpdG1hcExheWVyXG4gICAgICB0aGlzLnN0YXRlLm1vZGVsID0gdGhpcy5fZ2V0TW9kZWwodGhpcy5jb250ZXh0LmRldmljZSB8fCB0aGlzLmNvbnRleHQuZ2wpO1xuICAgICAgdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk/LmludmFsaWRhdGVBbGwoKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMgJiYgcHJvcHMuaW1hZ2VzKSB7XG4gICAgICB0aGlzLnVwZGF0ZUltYWdlcyh7cHJvcHMsIG9sZFByb3BzfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlTWFuYWdlciA9IHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpO1xuXG4gICAgaWYgKHByb3BzLmJvdW5kcyAhPT0gb2xkUHJvcHMuYm91bmRzKSB7XG4gICAgICBjb25zdCBvbGRNZXNoID0gdGhpcy5zdGF0ZS5tZXNoO1xuICAgICAgY29uc3QgbWVzaCA9IHRoaXMuX2NyZWF0ZU1lc2goKTtcbiAgICAgIHRoaXMuc3RhdGUubW9kZWw/LnNldFZlcnRleENvdW50KG1lc2gudmVydGV4Q291bnQpO1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gbWVzaCkge1xuICAgICAgICBpZiAob2xkTWVzaCAmJiBvbGRNZXNoW2tleV0gIT09IG1lc2hba2V5XSkge1xuICAgICAgICAgIGF0dHJpYnV0ZU1hbmFnZXI/LmludmFsaWRhdGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7bWVzaCwgLi4udGhpcy5fZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zKCl9KTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLl9pbWFnZUNvb3JkaW5hdGVTeXN0ZW0gIT09IG9sZFByb3BzLl9pbWFnZUNvb3JkaW5hdGVTeXN0ZW0pIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5fZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zKCkpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUltYWdlcyh7XG4gICAgcHJvcHMsXG4gICAgb2xkUHJvcHNcbiAgfToge1xuICAgIHByb3BzOiBSYXN0ZXJMYXllckFkZGVkUHJvcHM7XG4gICAgb2xkUHJvcHM6IFJhc3RlckxheWVyQWRkZWRQcm9wcztcbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IHtpbWFnZXN9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBkZXZpY2UgPSB0aGlzLmNvbnRleHQuZGV2aWNlO1xuICAgIGNvbnN0IGdsID0gZGV2aWNlPy5nbCB8fCB0aGlzLmNvbnRleHQuZ2w7XG5cbiAgICBjb25zdCBuZXdJbWFnZXMgPSBsb2FkSW1hZ2VzKHtcbiAgICAgIGdsLFxuICAgICAgZGV2aWNlLFxuICAgICAgaW1hZ2VzLFxuICAgICAgaW1hZ2VzRGF0YTogcHJvcHMuaW1hZ2VzLFxuICAgICAgb2xkSW1hZ2VzRGF0YTogb2xkUHJvcHMuaW1hZ2VzXG4gICAgfSk7XG4gICAgaWYgKG5ld0ltYWdlcykge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7aW1hZ2VzOiBuZXdJbWFnZXN9KTtcbiAgICB9XG4gIH1cblxuICBmaW5hbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmZpbmFsaXplU3RhdGUodGhpcy5jb250ZXh0KTtcblxuICAgIGlmICh0aGlzLnN0YXRlLmltYWdlcykge1xuICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhdGUuaW1hZ2VzKSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZSkpIHtcbiAgICAgICAgICBpbWFnZS5tYXAoeCA9PiB4ICYmICh4LmRlc3Ryb3kgPyB4LmRlc3Ryb3koKSA6IHguZGVsZXRlPy4oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGltYWdlKSB7XG4gICAgICAgICAgaW1hZ2UuZGVzdHJveSA/IGltYWdlLmRlc3Ryb3koKSA6IGltYWdlLmRlbGV0ZT8uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuUmFzdGVyTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuUmFzdGVyTGF5ZXIubGF5ZXJOYW1lID0gJ1Jhc3RlckxheWVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUQsT0FBQTtBQU9BLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHdCQUFBLEdBQUFKLE9BQUE7QUFBcUUsU0FBQUssMkJBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLHlCQUFBQyxNQUFBLElBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLENBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsQ0FBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLENBQUEsSUFBQUQsQ0FBQSx1QkFBQUEsQ0FBQSxD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
|
|
237
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl9yYXN0ZXJMYXllclNoYWRlcnMiLCJfaW1hZ2VzIiwiX3V0aWwiLCJfcGlwZWxpbmVWYWxpZGF0aW9uUGF0Y2giLCJfcmFzdGVyUHJvY2Vzc2luZ1VuaWZvcm1zIiwiX2NhbGxTdXBlciIsInQiLCJvIiwiZSIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwiciIsInAiLCJfZ2V0MiIsIm93bktleXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVmYXVsdFByb3BzIiwiQml0bWFwTGF5ZXIiLCJtb2R1bGVzIiwidHlwZSIsInZhbHVlIiwiY29tcGFyZSIsImltYWdlcyIsIm1vZHVsZVByb3BzIiwib25SZWRyYXdOZWVkZWQiLCJSYXN0ZXJMYXllciIsImV4cG9ydHMiLCJfQml0bWFwTGF5ZXIiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiaW5pdGlhbGl6ZVN0YXRlIiwicGF0Y2hQaXBlbGluZVZhbGlkYXRpb24iLCJlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQiLCJzZXRTdGF0ZSIsImRyYXciLCJfb3B0cyIsIl90aGlzJHByb3BzJG9wYWNpdHkiLCJfdGhpcyRzdGF0ZSIsInN0YXRlIiwibW9kZWwiLCJjb29yZGluYXRlQ29udmVyc2lvbiIsImJvdW5kcyIsIl90aGlzJHByb3BzIiwicHJvcHMiLCJkZXNhdHVyYXRlIiwidHJhbnNwYXJlbnRDb2xvciIsInRpbnRDb2xvciIsInZhbHVlcyIsImV2ZXJ5IiwiaXRlbSIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwicmFzdGVyIiwibWFwIiwieCIsInNsaWNlIiwib3BhY2l0eSIsImFsbE1vZHVsZVByb3BzIiwiYXBwbHlNb2R1bGVVbmlmb3JtcyIsImRyYXdTdWNjZXNzIiwiY29udGV4dCIsInJlbmRlclBhc3MiLCJfc2NoZWR1bGVSZWRyYXciLCJfdGhpczIiLCJfcmVkcmF3U2NoZWR1bGVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3RoaXMyJGNvbnRleHQkbGF5ZXJNIiwiZGVjayIsIl9uZWVkc1JlZHJhdyIsImxheWVyTWFuYWdlciIsInNldE5lZWRzUmVkcmF3IiwiZ2V0U2hhZGVycyIsIl90aGlzJHByb3BzJG1vZHVsZXMiLCJsdW1hTW9kdWxlcyIsInByZXBhcmVMdW1hTW9kdWxlcyIsInBhcmVudFNoYWRlcnMiLCJ2cyIsImJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyIiwiZnMiLCJidWlsZFJhc3RlckZyYWdtZW50U2hhZGVyIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJhc3RlclVuaWZvcm1zIiwicmFzdGVyUHJvY2Vzc2luZ1VuaWZvcm1zIiwidXBkYXRlU3RhdGUiLCJwYXJhbXMiLCJvbGRQcm9wcyIsImNoYW5nZUZsYWdzIiwib2xkTW9kdWxlcyIsImV4dGVuc2lvbnNDaGFuZ2VkIiwibW9kdWxlc0VxdWFsIiwiX3RoaXMkc3RhdGUkbW9kZWwiLCJfdGhpcyRzdGF0ZSRtb2RlbCRkZXMiLCJfdGhpcyRnZXRBdHRyaWJ1dGVNYW4iLCJkZXN0cm95IiwiX2dldE1vZGVsIiwiZGV2aWNlIiwiZ2wiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiaW52YWxpZGF0ZUFsbCIsInVwZGF0ZUltYWdlcyIsImF0dHJpYnV0ZU1hbmFnZXIiLCJfdGhpcyRzdGF0ZSRtb2RlbDIiLCJvbGRNZXNoIiwibWVzaCIsIl9jcmVhdGVNZXNoIiwic2V0VmVydGV4Q291bnQiLCJ2ZXJ0ZXhDb3VudCIsImludmFsaWRhdGUiLCJfZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zIiwiX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSIsIl9yZWYiLCJuZXdJbWFnZXMiLCJsb2FkSW1hZ2VzIiwiaW1hZ2VzRGF0YSIsIm9sZEltYWdlc0RhdGEiLCJmaW5hbGl6ZVN0YXRlIiwiX2kiLCJfT2JqZWN0JHZhbHVlcyIsImltYWdlIiwiaXNBcnJheSIsIl94JGRlbGV0ZSIsIl9pbWFnZSRkZWxldGUiLCJsYXllck5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1sYXllci9yYXN0ZXItbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtVcGRhdGVQYXJhbWV0ZXJzfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Qml0bWFwTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5cbmltcG9ydCB7XG4gIGJ1aWxkUmFzdGVyRnJhZ21lbnRTaGFkZXIsXG4gIGJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyLFxuICByYXN0ZXJVbmlmb3JtcyxcbiAgZW5zdXJlUmFzdGVySG9va3NSZWdpc3RlcmVkLFxuICBwcmVwYXJlTHVtYU1vZHVsZXNcbn0gZnJvbSAnLi9yYXN0ZXItbGF5ZXItc2hhZGVycyc7XG5pbXBvcnQge2xvYWRJbWFnZXN9IGZyb20gJy4uL2ltYWdlcyc7XG5pbXBvcnQgdHlwZSB7UmFzdGVyTGF5ZXJBZGRlZFByb3BzLCBJbWFnZVN0YXRlfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge21vZHVsZXNFcXVhbCwgYXBwbHlNb2R1bGVVbmlmb3Jtc30gZnJvbSAnLi4vdXRpbCc7XG5pbXBvcnQge3BhdGNoUGlwZWxpbmVWYWxpZGF0aW9ufSBmcm9tICcuLi9waXBlbGluZS12YWxpZGF0aW9uLXBhdGNoJztcbmltcG9ydCB7cmFzdGVyUHJvY2Vzc2luZ1VuaWZvcm1zfSBmcm9tICcuLi9yYXN0ZXItcHJvY2Vzc2luZy11bmlmb3Jtcyc7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uQml0bWFwTGF5ZXIuZGVmYXVsdFByb3BzLFxuICBtb2R1bGVzOiB7dHlwZTogJ2FycmF5JywgdmFsdWU6IFtdLCBjb21wYXJlOiB0cnVlfSxcbiAgaW1hZ2VzOiB7dHlwZTogJ29iamVjdCcsIHZhbHVlOiB7fSwgY29tcGFyZTogdHJ1ZX0sXG4gIG1vZHVsZVByb3BzOiB7dHlwZTogJ29iamVjdCcsIHZhbHVlOiB7fSwgY29tcGFyZTogdHJ1ZX0sXG4gIG9uUmVkcmF3TmVlZGVkOiB7dHlwZTogJ2Z1bmN0aW9uJywgdmFsdWU6IG51bGwsIGNvbXBhcmU6IGZhbHNlfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFzdGVyTGF5ZXIgZXh0ZW5kcyBCaXRtYXBMYXllcjxSYXN0ZXJMYXllckFkZGVkUHJvcHM+IHtcbiAgZGVjbGFyZSBzdGF0ZTogQml0bWFwTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPlsnc3RhdGUnXSAmIHtcbiAgICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIH07XG5cbiAgX3JlZHJhd1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGluaXRpYWxpemVTdGF0ZSgpOiB2b2lkIHtcbiAgICBwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbigpO1xuICAgIGVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlczoge319KTtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgfVxuXG4gIGRyYXcoX29wdHM6IHtzaGFkZXJNb2R1bGVQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj59KTogdm9pZCB7XG4gICAgY29uc3Qge21vZGVsLCBpbWFnZXMsIGNvb3JkaW5hdGVDb252ZXJzaW9uLCBib3VuZHN9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7ZGVzYXR1cmF0ZSwgdHJhbnNwYXJlbnRDb2xvciwgdGludENvbG9yLCBtb2R1bGVQcm9wc30gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKFxuICAgICAgIW1vZGVsIHx8XG4gICAgICAhaW1hZ2VzIHx8XG4gICAgICBPYmplY3Qua2V5cyhpbWFnZXMpLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgIU9iamVjdC52YWx1ZXMoaW1hZ2VzKS5ldmVyeShpdGVtID0+IGl0ZW0pXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2V0IFVCTyB1bmlmb3JtcyBmb3IgdGhlIHJhc3RlciBtb2R1bGVcbiAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe1xuICAgICAgcmFzdGVyOiB7XG4gICAgICAgIGRlc2F0dXJhdGU6IGRlc2F0dXJhdGUgfHwgMCxcbiAgICAgICAgdHJhbnNwYXJlbnRDb2xvcjogKHRyYW5zcGFyZW50Q29sb3IgfHwgWzAsIDAsIDAsIDBdKS5tYXAoeCA9PiAoeCA/IHggLyAyNTUgOiAwKSksXG4gICAgICAgIHRpbnRDb2xvcjogKHRpbnRDb2xvciB8fCBbMjU1LCAyNTUsIDI1NV0pLnNsaWNlKDAsIDMpLm1hcCh4ID0+IHggLyAyNTUpLFxuICAgICAgICBjb29yZGluYXRlQ29udmVyc2lvbjogY29vcmRpbmF0ZUNvbnZlcnNpb24gfHwgMCxcbiAgICAgICAgYm91bmRzOiBib3VuZHMgfHwgWzAsIDAsIDAsIDBdLFxuICAgICAgICBvcGFjaXR5OiB0aGlzLnByb3BzLm9wYWNpdHkgPz8gMVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQXBwbHkgZWFjaCBjdXN0b20gbW9kdWxlJ3MgdW5pZm9ybXMvYmluZGluZ3MgdG8gc2hhZGVySW5wdXRzIGRpcmVjdGx5LlxuICAgIC8vIFdlIGNhbGwgZ2V0VW5pZm9ybXMgb25jZSBwZXIgbW9kdWxlIGFuZCB3cml0ZSB0aGUgcmVzdWx0cyBpbnRvXG4gICAgLy8gc2hhZGVySW5wdXRzLm1vZHVsZVVuaWZvcm1zL21vZHVsZUJpbmRpbmdzLCBieXBhc3Npbmcgc2V0UHJvcHMoKSB3aGljaFxuICAgIC8vIHdvdWxkIGNhbGwgZ2V0VW5pZm9ybXMgYSBzZWNvbmQgdGltZSBvbiBhbHJlYWR5LXRyYW5zZm9ybWVkIHZhbHVlcy5cbiAgICBjb25zdCBhbGxNb2R1bGVQcm9wcyA9IHsuLi5tb2R1bGVQcm9wcywgLi4uaW1hZ2VzfTtcbiAgICBjb25zdCBtb2R1bGVzID0gdGhpcy5wcm9wcy5tb2R1bGVzIHx8IFtdO1xuICAgIGFwcGx5TW9kdWxlVW5pZm9ybXMobW9kZWwuc2hhZGVySW5wdXRzLCBtb2R1bGVzLCBhbGxNb2R1bGVQcm9wcyk7XG5cbiAgICBjb25zdCBkcmF3U3VjY2VzcyA9IG1vZGVsLmRyYXcodGhpcy5jb250ZXh0LnJlbmRlclBhc3MpO1xuICAgIGlmICghZHJhd1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3NjaGVkdWxlUmVkcmF3KCk7XG4gICAgfVxuICB9XG5cbiAgX3NjaGVkdWxlUmVkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZWRyYXdTY2hlZHVsZWQpIHJldHVybjtcbiAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWRyYXdTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuZGVjaykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGFjY2Vzc2luZyBwcml2YXRlIGRlY2suZ2wgcHJvcGVydHlcbiAgICAgICAgdGhpcy5jb250ZXh0LmRlY2suX25lZWRzUmVkcmF3ID0gJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnO1xuICAgICAgfVxuICAgICAgdGhpcy5jb250ZXh0LmxheWVyTWFuYWdlcj8uc2V0TmVlZHNSZWRyYXcoJ1Jhc3RlckxheWVyIHBpcGVsaW5lIHBlbmRpbmcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblJlZHJhd05lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVkcmF3TmVlZGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRTaGFkZXJzKCk6IGFueSB7XG4gICAgY29uc3Qge21vZHVsZXMgPSBbXX0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgbHVtYU1vZHVsZXMgPSBwcmVwYXJlTHVtYU1vZHVsZXMobW9kdWxlcyk7XG4gICAgY29uc3QgcGFyZW50U2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJlbnRTaGFkZXJzLFxuICAgICAgdnM6IGJ1aWxkUmFzdGVyVmVydGV4U2hhZGVyKCksXG4gICAgICBmczogYnVpbGRSYXN0ZXJGcmFnbWVudFNoYWRlcigpLFxuICAgICAgbW9kdWxlczogW1xuICAgICAgICAuLi4ocGFyZW50U2hhZGVycy5tb2R1bGVzIHx8IFtdKSxcbiAgICAgICAgcmFzdGVyVW5pZm9ybXMsXG4gICAgICAgIHJhc3RlclByb2Nlc3NpbmdVbmlmb3JtcyxcbiAgICAgICAgLi4ubHVtYU1vZHVsZXNcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgdXBkYXRlU3RhdGUocGFyYW1zOiBVcGRhdGVQYXJhbWV0ZXJzPEJpdG1hcExheWVyPFJhc3RlckxheWVyQWRkZWRQcm9wcz4+KTogdm9pZCB7XG4gICAgY29uc3Qge3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9ID0gcGFyYW1zO1xuICAgIGNvbnN0IG1vZHVsZXMgPSBwcm9wcyAmJiBwcm9wcy5tb2R1bGVzO1xuICAgIGNvbnN0IG9sZE1vZHVsZXMgPSBvbGRQcm9wcyAmJiBvbGRQcm9wcy5tb2R1bGVzO1xuXG4gICAgaWYgKGNoYW5nZUZsYWdzLmV4dGVuc2lvbnNDaGFuZ2VkIHx8ICFtb2R1bGVzRXF1YWwobW9kdWxlcywgb2xkTW9kdWxlcykpIHtcbiAgICAgIHRoaXMuc3RhdGUubW9kZWw/LmRlc3Ryb3k/LigpO1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBfZ2V0TW9kZWwgaXMgaW50ZXJuYWwgdG8gQml0bWFwTGF5ZXJcbiAgICAgIHRoaXMuc3RhdGUubW9kZWwgPSB0aGlzLl9nZXRNb2RlbCh0aGlzLmNvbnRleHQuZGV2aWNlIHx8IHRoaXMuY29udGV4dC5nbCk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKT8uaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcyAmJiBwcm9wcy5pbWFnZXMpIHtcbiAgICAgIHRoaXMudXBkYXRlSW1hZ2VzKHtwcm9wcywgb2xkUHJvcHN9KTtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVNYW5hZ2VyID0gdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk7XG5cbiAgICBpZiAocHJvcHMuYm91bmRzICE9PSBvbGRQcm9wcy5ib3VuZHMpIHtcbiAgICAgIGNvbnN0IG9sZE1lc2ggPSB0aGlzLnN0YXRlLm1lc2g7XG4gICAgICBjb25zdCBtZXNoID0gdGhpcy5fY3JlYXRlTWVzaCgpO1xuICAgICAgdGhpcy5zdGF0ZS5tb2RlbD8uc2V0VmVydGV4Q291bnQobWVzaC52ZXJ0ZXhDb3VudCk7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBtZXNoKSB7XG4gICAgICAgIGlmIChvbGRNZXNoICYmIG9sZE1lc2hba2V5XSAhPT0gbWVzaFtrZXldKSB7XG4gICAgICAgICAgYXR0cmlidXRlTWFuYWdlcj8uaW52YWxpZGF0ZShrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHttZXNoLCAuLi50aGlzLl9nZXRDb29yZGluYXRlVW5pZm9ybXMoKX0pO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSAhPT0gb2xkUHJvcHMuX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh0aGlzLl9nZXRDb29yZGluYXRlVW5pZm9ybXMoKSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlSW1hZ2VzKHtcbiAgICBwcm9wcyxcbiAgICBvbGRQcm9wc1xuICB9OiB7XG4gICAgcHJvcHM6IFJhc3RlckxheWVyQWRkZWRQcm9wcztcbiAgICBvbGRQcm9wczogUmFzdGVyTGF5ZXJBZGRlZFByb3BzO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3Qge2ltYWdlc30gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGRldmljZSA9IHRoaXMuY29udGV4dC5kZXZpY2U7XG4gICAgY29uc3QgZ2wgPSBkZXZpY2U/LmdsIHx8IHRoaXMuY29udGV4dC5nbDtcblxuICAgIGNvbnN0IG5ld0ltYWdlcyA9IGxvYWRJbWFnZXMoe1xuICAgICAgZ2wsXG4gICAgICBkZXZpY2UsXG4gICAgICBpbWFnZXMsXG4gICAgICBpbWFnZXNEYXRhOiBwcm9wcy5pbWFnZXMsXG4gICAgICBvbGRJbWFnZXNEYXRhOiBvbGRQcm9wcy5pbWFnZXNcbiAgICB9KTtcbiAgICBpZiAobmV3SW1hZ2VzKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IG5ld0ltYWdlc30pO1xuICAgIH1cbiAgfVxuXG4gIGZpbmFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIuZmluYWxpemVTdGF0ZSh0aGlzLmNvbnRleHQpO1xuXG4gICAgaWYgKHRoaXMuc3RhdGUuaW1hZ2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIE9iamVjdC52YWx1ZXModGhpcy5zdGF0ZS5pbWFnZXMpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlKSkge1xuICAgICAgICAgIGltYWdlLm1hcCh4ID0+IHggJiYgKHguZGVzdHJveSA/IHguZGVzdHJveSgpIDogeC5kZWxldGU/LigpKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICBpbWFnZS5kZXN0cm95ID8gaW1hZ2UuZGVzdHJveSgpIDogaW1hZ2UuZGVsZXRlPy4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5SYXN0ZXJMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5SYXN0ZXJMYXllci5sYXllck5hbWUgPSAnUmFzdGVyTGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxtQkFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksd0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLHlCQUFBLEdBQUFMLE9BQUE7QUFBdUUsU0FBQU0sV0FBQUMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsV0FBQUQsQ0FBQSxPQUFBRSxnQkFBQSxhQUFBRixDQUFBLE9BQUFHLDJCQUFBLGFBQUFKLENBQUEsRUFBQUsseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFOLENBQUEsRUFBQUMsQ0FBQSxZQUFBQyxnQkFBQSxhQUFBSCxDQUFBLEVBQUFRLFdBQUEsSUFBQVAsQ0FBQSxDQUFBUSxLQUFBLENBQUFULENBQUEsRUFBQUUsQ0FBQTtBQUFBLFNBQUFHLDBCQUFBLGNBQUFMLENBQUEsSUFBQVUsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBUCxPQUFBLENBQUFDLFNBQUEsQ0FBQUcsT0FBQSxpQ0FBQVYsQ0FBQSxhQUFBSyx5QkFBQSxZQUFBQSwwQkFBQSxhQUFBTCxDQUFBO0FBQUEsU0FBQWMsY0FBQWQsQ0FB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
|
|
@@ -15,4 +15,4 @@ var _core = require("@deck.gl/core");
|
|
|
15
15
|
function shouldComposeModelMatrix(viewport, coordinateSystem) {
|
|
16
16
|
return coordinateSystem === _core.COORDINATE_SYSTEM.CARTESIAN || coordinateSystem === _core.COORDINATE_SYSTEM.METER_OFFSETS || coordinateSystem === _core.COORDINATE_SYSTEM.DEFAULT && !viewport.isGeospatial;
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJzaG91bGRDb21wb3NlTW9kZWxNYXRyaXgiLCJ2aWV3cG9ydCIsImNvb3JkaW5hdGVTeXN0ZW0iLCJDT09SRElOQVRFX1NZU1RFTSIsIkNBUlRFU0lBTiIsIk1FVEVSX09GRlNFVFMiLCJERUZBVUxUIiwiaXNHZW9zcGF0aWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9tYXRyaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDT09SRElOQVRFX1NZU1RFTSwgVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xudHlwZSBDb29yZGluYXRlU3lzdGVtID0gbnVtYmVyIHwgc3RyaW5nO1xuXG4vLyBvbmx5IGFwcGx5IGNvbXBvc2VNb2RlbE1hdHJpeCB3aGVuIGluIGNhcnRlc2lhbiBvciBtZXRlcl9vZmZzZXRzIGNvb3JkaW5hdGUgc3lzdGVtXG4vLyB3aXRoIGBjb21wb3NlTW9kZWxNYXRyaXhgIGVuYWJsZWQsIHRoZSByb3RhdGlvbiBwYXJ0IG9mIHRoZSBsYXllcidzIG1vZGVsTWF0cml4IHdpbGwgYmUgY29tcG9zZWQgdG8gaW5zdGFuY2UncyB0cmFuc2Zvcm1hdGlvbnNcbi8vIHNpbmNlIHJvdGF0aW5nIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgY2FuIG5vdCBwcm92aWRlIG1lYW5pbmdmdWwgcmVzdWx0cywgaGVuY2UgYGNvbXBvc2VNb2RlbE1hdHJpeGAgaXMgZGlzYWJsZWRcbi8vIHdoZW4gaW4gTE5HTEFUIGFuZCBMTkdMQVRfT0ZGU0VUIGNvb3JkaW5hdGVzLlxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENvbXBvc2VNb2RlbE1hdHJpeChcbiAgdmlld3BvcnQ6IFZpZXdwb3J0LFxuICBjb29yZGluYXRlU3lzdGVtOiBDb29yZGluYXRlU3lzdGVtXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5DQVJURVNJQU4gfHxcbiAgICBjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5NRVRFUl9PRkZTRVRTIHx8XG4gICAgKGNvb3JkaW5hdGVTeXN0ZW0gPT09IENPT1JESU5BVEVfU1lTVEVNLkRFRkFVTFQgJiYgIXZpZXdwb3J0LmlzR2Vvc3BhdGlhbClcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBSEE7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLHdCQUF3QkEsQ0FDdENDLFFBQWtCLEVBQ2xCQyxnQkFBa0MsRUFDekI7RUFDVCxPQUNFQSxnQkFBZ0IsS0FBS0MsdUJBQWlCLENBQUNDLFNBQVMsSUFDaERGLGdCQUFnQixLQUFLQyx1QkFBaUIsQ0FBQ0UsYUFBYSxJQUNuREgsZ0JBQWdCLEtBQUtDLHVCQUFpQixDQUFDRyxPQUFPLElBQUksQ0FBQ0wsUUFBUSxDQUFDTSxZQUFhO0FBRTlFIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -20,10 +20,8 @@ var _rasterLayerShaders = require("../raster-layer/raster-layer-shaders");
|
|
|
20
20
|
var _images = require("../images");
|
|
21
21
|
var _util = require("../util");
|
|
22
22
|
var _pipelineValidationPatch = require("../pipeline-validation-patch");
|
|
23
|
+
var _rasterProcessingUniforms = require("../raster-processing-uniforms");
|
|
23
24
|
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
25
|
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
26
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
29
27
|
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; }
|
|
@@ -106,10 +104,17 @@ var RasterMeshLayer = exports["default"] = /*#__PURE__*/function (_SimpleMeshLay
|
|
|
106
104
|
modules = _this$props$modules === void 0 ? [] : _this$props$modules;
|
|
107
105
|
var lumaModules = (0, _rasterLayerShaders.prepareLumaModules)(modules);
|
|
108
106
|
var parentShaders = _superPropGet(RasterMeshLayer, "getShaders", this, 3)([]);
|
|
107
|
+
|
|
108
|
+
// Filter out simpleMeshUniforms from parent — RasterMeshLayer uses its own
|
|
109
|
+
// shaders that don't reference SimpleMesh uniforms, and every UBO counts
|
|
110
|
+
// against the WebGL2 GL_MAX_FRAGMENT_UNIFORM_BUFFERS limit (typically 12).
|
|
111
|
+
var parentModules = (parentShaders.modules || []).filter(function (m) {
|
|
112
|
+
return m.name !== 'simpleMesh';
|
|
113
|
+
});
|
|
109
114
|
return _objectSpread(_objectSpread({}, parentShaders), {}, {
|
|
110
115
|
vs: (0, _rasterMeshLayerShaders.buildRasterMeshVertexShader)(),
|
|
111
116
|
fs: (0, _rasterMeshLayerShaders.buildRasterMeshFragmentShader)(),
|
|
112
|
-
modules: [].concat((0, _toConsumableArray2["default"])(
|
|
117
|
+
modules: [].concat((0, _toConsumableArray2["default"])(parentModules), [_rasterMeshLayerShaders.rasterMeshUniforms, _rasterProcessingUniforms.rasterProcessingUniforms], (0, _toConsumableArray2["default"])(lumaModules))
|
|
113
118
|
});
|
|
114
119
|
}
|
|
115
120
|
|
|
@@ -198,29 +203,13 @@ var RasterMeshLayer = exports["default"] = /*#__PURE__*/function (_SimpleMeshLay
|
|
|
198
203
|
}
|
|
199
204
|
});
|
|
200
205
|
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
//
|
|
204
|
-
//
|
|
206
|
+
// Apply each custom module's uniforms/bindings to shaderInputs directly.
|
|
207
|
+
// We call getUniforms once per module and write the results into
|
|
208
|
+
// shaderInputs.moduleUniforms/moduleBindings, bypassing setProps() which
|
|
209
|
+
// would call getUniforms a second time on already-transformed values.
|
|
205
210
|
var allModuleProps = _objectSpread(_objectSpread({}, moduleProps), images);
|
|
206
211
|
var modules = this.props.modules || [];
|
|
207
|
-
|
|
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
|
-
}
|
|
212
|
+
(0, _util.applyModuleUniforms)(model.shaderInputs, modules, allModuleProps);
|
|
224
213
|
var drawSuccess = model.draw(this.context.renderPass);
|
|
225
214
|
if (!drawSuccess) {
|
|
226
215
|
this._scheduleRedraw();
|
|
@@ -279,4 +268,4 @@ var RasterMeshLayer = exports["default"] = /*#__PURE__*/function (_SimpleMeshLay
|
|
|
279
268
|
}(_meshLayers.SimpleMeshLayer);
|
|
280
269
|
RasterMeshLayer.layerName = 'RasterMeshLayer';
|
|
281
270
|
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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
|
|
271
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVzaExheWVycyIsInJlcXVpcmUiLCJfZW5naW5lIiwiX3Jhc3Rlck1lc2hMYXllclNoYWRlcnMiLCJfcmFzdGVyTGF5ZXJTaGFkZXJzIiwiX2ltYWdlcyIsIl91dGlsIiwiX3BpcGVsaW5lVmFsaWRhdGlvblBhdGNoIiwiX3Jhc3RlclByb2Nlc3NpbmdVbmlmb3JtcyIsIl9jb25zdGFudHMiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJyIiwicCIsIl9nZXQyIiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWxpZGF0ZUdlb21ldHJ5QXR0cmlidXRlcyIsImF0dHJpYnV0ZXMiLCJwb3NpdGlvbnMiLCJQT1NJVElPTiIsIkVycm9yIiwiZ2V0R2VvbWV0cnkiLCJkYXRhIiwiR2VvbWV0cnkiLCJkZWZhdWx0UHJvcHMiLCJTaW1wbGVNZXNoTGF5ZXIiLCJtb2R1bGVzIiwidHlwZSIsInZhbHVlIiwiY29tcGFyZSIsImltYWdlcyIsIm1vZHVsZVByb3BzIiwib25SZWRyYXdOZWVkZWQiLCJSYXN0ZXJNZXNoTGF5ZXIiLCJleHBvcnRzIiwiX1NpbXBsZU1lc2hMYXllciIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJpbml0aWFsaXplU3RhdGUiLCJwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbiIsImVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCIsInNldFN0YXRlIiwiZ2V0U2hhZGVycyIsIl90aGlzJHByb3BzJG1vZHVsZXMiLCJwcm9wcyIsImx1bWFNb2R1bGVzIiwicHJlcGFyZUx1bWFNb2R1bGVzIiwicGFyZW50U2hhZGVycyIsInBhcmVudE1vZHVsZXMiLCJtIiwibmFtZSIsInZzIiwiYnVpbGRSYXN0ZXJNZXNoVmVydGV4U2hhZGVyIiwiZnMiLCJidWlsZFJhc3Rlck1lc2hGcmFnbWVudFNoYWRlciIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJyYXN0ZXJNZXNoVW5pZm9ybXMiLCJyYXN0ZXJQcm9jZXNzaW5nVW5pZm9ybXMiLCJ1cGRhdGVTdGF0ZSIsInBhcmFtcyIsIm9sZFByb3BzIiwiY2hhbmdlRmxhZ3MiLCJjb250ZXh0Iiwib2xkTW9kdWxlcyIsIm1lc2giLCJleHRlbnNpb25zQ2hhbmdlZCIsIm1vZHVsZXNFcXVhbCIsIl90aGlzJGdldEF0dHJpYnV0ZU1hbiIsInN0YXRlIiwibW9kZWwiLCJfdGhpcyRzdGF0ZSRtb2RlbCRkZXMiLCJfdGhpcyRzdGF0ZSRtb2RlbCIsImRlc3Ryb3kiLCJnZXRNb2RlbCIsImhhc05vcm1hbHMiLCJOT1JNQUwiLCJub3JtYWxzIiwiZ2V0QXR0cmlidXRlTWFuYWdlciIsImludmFsaWRhdGVBbGwiLCJ1cGRhdGVJbWFnZXMiLCJfdGhpcyRzdGF0ZSRtb2RlbCRzZXQiLCJfdGhpcyRzdGF0ZSRtb2RlbDIiLCJzZXRUb3BvbG9neSIsIndpcmVmcmFtZSIsIlRPUE9MT0dZIiwiTElORV9TVFJJUCIsIlRSSUFOR0xFX0xJU1QiLCJfcmVmIiwiZGV2aWNlIiwiZ2wiLCJuZXdJbWFnZXMiLCJsb2FkSW1hZ2VzIiwiaW1hZ2VzRGF0YSIsIm9sZEltYWdlc0RhdGEiLCJkcmF3IiwiX29wdHMiLCJfdGhpcyRwcm9wcyRvcGFjaXR5IiwiX3RoaXMkc3RhdGUiLCJ2YWx1ZXMiLCJldmVyeSIsIml0ZW0iLCJzaGFkZXJJbnB1dHMiLCJzZXRQcm9wcyIsInJhc3Rlck1lc2giLCJtZXNoT3BhY2l0eSIsIm9wYWNpdHkiLCJtZXNoRmxhdFNoYWRpbmciLCJhbGxNb2R1bGVQcm9wcyIsImFwcGx5TW9kdWxlVW5pZm9ybXMiLCJkcmF3U3VjY2VzcyIsInJlbmRlclBhc3MiLCJfc2NoZWR1bGVSZWRyYXciLCJfdGhpczIiLCJfcmVkcmF3U2NoZWR1bGVkIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3RoaXMyJGNvbnRleHQkbGF5ZXJNIiwiZGVjayIsIl9uZWVkc1JlZHJhdyIsImxheWVyTWFuYWdlciIsInNldE5lZWRzUmVkcmF3IiwiZmluYWxpemVTdGF0ZSIsIl9pIiwiX09iamVjdCR2YWx1ZXMiLCJpbWFnZSIsImlzQXJyYXkiLCJtYXAiLCJ4IiwiX3gkZGVsZXRlIiwiX2ltYWdlJGRlbGV0ZSIsIk1vZGVsIiwiYXNzaWduIiwiaWQiLCJnZW9tZXRyeSIsImlzSW5zdGFuY2VkIiwibGF5ZXJOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jhc3Rlci9yYXN0ZXItbWVzaC1sYXllci9yYXN0ZXItbWVzaC1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1VwZGF0ZVBhcmFtZXRlcnN9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtTaW1wbGVNZXNoTGF5ZXIsIFNpbXBsZU1lc2hMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9tZXNoLWxheWVycyc7XG5pbXBvcnQge0dlb21ldHJ5fSBmcm9tICdAbHVtYS5nbC9lbmdpbmUnO1xuaW1wb3J0IHtNb2RlbH0gZnJvbSAnQGx1bWEuZ2wvZW5naW5lJztcblxuaW1wb3J0IHtcbiAgYnVpbGRSYXN0ZXJNZXNoRnJhZ21lbnRTaGFkZXIsXG4gIGJ1aWxkUmFzdGVyTWVzaFZlcnRleFNoYWRlcixcbiAgcmFzdGVyTWVzaFVuaWZvcm1zXG59IGZyb20gJy4vcmFzdGVyLW1lc2gtbGF5ZXItc2hhZGVycyc7XG5pbXBvcnQge1xuICBlbnN1cmVSYXN0ZXJIb29rc1JlZ2lzdGVyZWQsXG4gIHByZXBhcmVMdW1hTW9kdWxlc1xufSBmcm9tICcuLi9yYXN0ZXItbGF5ZXIvcmFzdGVyLWxheWVyLXNoYWRlcnMnO1xuaW1wb3J0IHtsb2FkSW1hZ2VzfSBmcm9tICcuLi9pbWFnZXMnO1xuaW1wb3J0IHR5cGUge1Jhc3RlckxheWVyQWRkZWRQcm9wcywgSW1hZ2VTdGF0ZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHttb2R1bGVzRXF1YWwsIGFwcGx5TW9kdWxlVW5pZm9ybXN9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHtwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbn0gZnJvbSAnLi4vcGlwZWxpbmUtdmFsaWRhdGlvbi1wYXRjaCc7XG5pbXBvcnQge3Jhc3RlclByb2Nlc3NpbmdVbmlmb3Jtc30gZnJvbSAnLi4vcmFzdGVyLXByb2Nlc3NpbmctdW5pZm9ybXMnO1xuaW1wb3J0IHtUT1BPTE9HWX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG50eXBlIE1lc2ggPSBTaW1wbGVNZXNoTGF5ZXJQcm9wc1snbWVzaCddO1xuXG5pbnRlcmZhY2UgTWVzaERhdGEge1xuICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBvc2l0aW9ucz86IHVua25vd247XG4gIFBPU0lUSU9OPzogdW5rbm93bjtcbiAgTk9STUFMPzogdW5rbm93bjtcbiAgbm9ybWFscz86IHVua25vd247XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlR2VvbWV0cnlBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gIGlmICghKGF0dHJpYnV0ZXMucG9zaXRpb25zIHx8IGF0dHJpYnV0ZXMuUE9TSVRJT04pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1Jhc3Rlck1lc2hMYXllciByZXF1aXJlcyBcInBvc2l0aW9uc1wiIG9yIFwiUE9TSVRJT05cIiBhdHRyaWJ1dGUgaW4gbWVzaCBwcm9wZXJ0eS4nXG4gICAgKTtcbiAgfVxufVxuXG4vKlxuICogQ29udmVydCBtZXNoIGRhdGEgaW50byBnZW9tZXRyeVxuICogQHJldHVybnMgZ2VvbWV0cnlcbiAqL1xuZnVuY3Rpb24gZ2V0R2VvbWV0cnkoZGF0YTogTWVzaERhdGEgfCBHZW9tZXRyeSk6IEdlb21ldHJ5IHtcbiAgaWYgKCdhdHRyaWJ1dGVzJyBpbiBkYXRhICYmIGRhdGEuYXR0cmlidXRlcykge1xuICAgIHZhbGlkYXRlR2VvbWV0cnlBdHRyaWJ1dGVzKGRhdGEuYXR0cmlidXRlcyk7XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBHZW9tZXRyeSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIHJldHVybiBuZXcgR2VvbWV0cnkoZGF0YSBhcyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdlb21ldHJ5PlswXSk7XG4gIH0gZWxzZSBpZiAoJ3Bvc2l0aW9ucycgaW4gZGF0YSB8fCAnUE9TSVRJT04nIGluIGRhdGEpIHtcbiAgICB2YWxpZGF0ZUdlb21ldHJ5QXR0cmlidXRlcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICByZXR1cm4gbmV3IEdlb21ldHJ5KHtcbiAgICAgIGF0dHJpYnV0ZXM6IGRhdGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICB9IGFzIENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgR2VvbWV0cnk+WzBdKTtcbiAgfVxuICB0aHJvdyBFcnJvcignSW52YWxpZCBtZXNoJyk7XG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uU2ltcGxlTWVzaExheWVyLmRlZmF1bHRQcm9wcyxcbiAgbW9kdWxlczoge3R5cGU6ICdhcnJheScsIHZhbHVlOiBbXSwgY29tcGFyZTogdHJ1ZX0sXG4gIGltYWdlczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBtb2R1bGVQcm9wczoge3R5cGU6ICdvYmplY3QnLCB2YWx1ZToge30sIGNvbXBhcmU6IHRydWV9LFxuICBvblJlZHJhd05lZWRlZDoge3R5cGU6ICdmdW5jdGlvbicsIHZhbHVlOiBudWxsLCBjb21wYXJlOiBmYWxzZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhc3Rlck1lc2hMYXllciBleHRlbmRzIFNpbXBsZU1lc2hMYXllcjxhbnksIFJhc3RlckxheWVyQWRkZWRQcm9wcz4ge1xuICBkZWNsYXJlIHN0YXRlOiBTaW1wbGVNZXNoTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPlsnc3RhdGUnXSAmIHtcbiAgICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIH07XG5cbiAgX3JlZHJhd1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGluaXRpYWxpemVTdGF0ZSgpOiB2b2lkIHtcbiAgICBwYXRjaFBpcGVsaW5lVmFsaWRhdGlvbigpO1xuICAgIGVuc3VyZVJhc3Rlckhvb2tzUmVnaXN0ZXJlZCgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlczoge319KTtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgfVxuXG4gIGdldFNoYWRlcnMoKTogYW55IHtcbiAgICBjb25zdCB7bW9kdWxlcyA9IFtdfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBsdW1hTW9kdWxlcyA9IHByZXBhcmVMdW1hTW9kdWxlcyhtb2R1bGVzKTtcbiAgICBjb25zdCBwYXJlbnRTaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuXG4gICAgLy8gRmlsdGVyIG91dCBzaW1wbGVNZXNoVW5pZm9ybXMgZnJvbSBwYXJlbnQg4oCUIFJhc3Rlck1lc2hMYXllciB1c2VzIGl0cyBvd25cbiAgICAvLyBzaGFkZXJzIHRoYXQgZG9uJ3QgcmVmZXJlbmNlIFNpbXBsZU1lc2ggdW5pZm9ybXMsIGFuZCBldmVyeSBVQk8gY291bnRzXG4gICAgLy8gYWdhaW5zdCB0aGUgV2ViR0wyIEdMX01BWF9GUkFHTUVOVF9VTklGT1JNX0JVRkZFUlMgbGltaXQgKHR5cGljYWxseSAxMikuXG4gICAgY29uc3QgcGFyZW50TW9kdWxlcyA9IChwYXJlbnRTaGFkZXJzLm1vZHVsZXMgfHwgW10pLmZpbHRlcihcbiAgICAgIChtOiB7bmFtZT86IHN0cmluZ30pID0+IG0ubmFtZSAhPT0gJ3NpbXBsZU1lc2gnXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJlbnRTaGFkZXJzLFxuICAgICAgdnM6IGJ1aWxkUmFzdGVyTWVzaFZlcnRleFNoYWRlcigpLFxuICAgICAgZnM6IGJ1aWxkUmFzdGVyTWVzaEZyYWdtZW50U2hhZGVyKCksXG4gICAgICBtb2R1bGVzOiBbLi4ucGFyZW50TW9kdWxlcywgcmFzdGVyTWVzaFVuaWZvcm1zLCByYXN0ZXJQcm9jZXNzaW5nVW5pZm9ybXMsIC4uLmx1bWFNb2R1bGVzXVxuICAgIH07XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICB1cGRhdGVTdGF0ZShwYXJhbXM6IFVwZGF0ZVBhcmFtZXRlcnM8U2ltcGxlTWVzaExheWVyPGFueSwgUmFzdGVyTGF5ZXJBZGRlZFByb3BzPj4pOiB2b2lkIHtcbiAgICBjb25zdCB7cHJvcHMsIG9sZFByb3BzLCBjaGFuZ2VGbGFncywgY29udGV4dH0gPSBwYXJhbXM7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3MsIGNvbnRleHR9KTtcblxuICAgIGNvbnN0IG1vZHVsZXMgPSBwcm9wcyAmJiBwcm9wcy5tb2R1bGVzO1xuICAgIGNvbnN0IG9sZE1vZHVsZXMgPSBvbGRQcm9wcyAmJiBvbGRQcm9wcy5tb2R1bGVzO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMubWVzaCAhPT0gb2xkUHJvcHMubWVzaCB8fFxuICAgICAgY2hhbmdlRmxhZ3MuZXh0ZW5zaW9uc0NoYW5nZWQgfHxcbiAgICAgICFtb2R1bGVzRXF1YWwobW9kdWxlcywgb2xkTW9kdWxlcylcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubW9kZWwuZGVzdHJveT8uKCk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMubWVzaCkge1xuICAgICAgICB0aGlzLnN0YXRlLm1vZGVsID0gdGhpcy5nZXRNb2RlbChwcm9wcy5tZXNoIGFzIE1lc2gpO1xuXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSAoKHByb3BzLm1lc2ggYXMgTWVzaERhdGEpLmF0dHJpYnV0ZXMgfHwgcHJvcHMubWVzaCkgYXMgTWVzaERhdGE7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGhhc05vcm1hbHM6IEJvb2xlYW4oYXR0cmlidXRlcy5OT1JNQUwgfHwgYXR0cmlidXRlcy5ub3JtYWxzKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpPy5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzICYmIHByb3BzLmltYWdlcykge1xuICAgICAgdGhpcy51cGRhdGVJbWFnZXMoe3Byb3BzLCBvbGRQcm9wc30pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICB0aGlzLnN0YXRlLm1vZGVsLnNldFRvcG9sb2d5Py4oXG4gICAgICAgIHRoaXMucHJvcHMud2lyZWZyYW1lID8gVE9QT0xPR1kuTElORV9TVFJJUCA6IFRPUE9MT0dZLlRSSUFOR0xFX0xJU1RcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlSW1hZ2VzKHtcbiAgICBwcm9wcyxcbiAgICBvbGRQcm9wc1xuICB9OiB7XG4gICAgcHJvcHM6IFJhc3RlckxheWVyQWRkZWRQcm9wcztcbiAgICBvbGRQcm9wczogUmFzdGVyTGF5ZXJBZGRlZFByb3BzO1xuICB9KTogdm9pZCB7XG4gICAgY29uc3Qge2ltYWdlc30gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGRldmljZSA9IHRoaXMuY29udGV4dC5kZXZpY2U7XG4gICAgY29uc3QgZ2wgPSBkZXZpY2U/LmdsIHx8IHRoaXMuY29udGV4dC5nbDtcblxuICAgIGNvbnN0IG5ld0ltYWdlcyA9IGxvYWRJbWFnZXMoe1xuICAgICAgZ2wsXG4gICAgICBkZXZpY2UsXG4gICAgICBpbWFnZXMsXG4gICAgICBpbWFnZXNEYXRhOiBwcm9wcy5pbWFnZXMsXG4gICAgICBvbGRJbWFnZXNEYXRhOiBvbGRQcm9wcy5pbWFnZXNcbiAgICB9KTtcblxuICAgIGlmIChuZXdJbWFnZXMpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2ltYWdlczogbmV3SW1hZ2VzfSk7XG4gICAgfVxuICB9XG5cbiAgZHJhdyhfb3B0czogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBjb25zdCB7bW9kZWwsIGltYWdlc30gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHttb2R1bGVQcm9wc30gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKFxuICAgICAgIW1vZGVsIHx8XG4gICAgICAhaW1hZ2VzIHx8XG4gICAgICBPYmplY3Qua2V5cyhpbWFnZXMpLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgIU9iamVjdC52YWx1ZXMoaW1hZ2VzKS5ldmVyeShpdGVtID0+IGl0ZW0pXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2V0IG1lc2gtc3BlY2lmaWMgVUJPIHVuaWZvcm1zXG4gICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtcbiAgICAgIHJhc3Rlck1lc2g6IHtcbiAgICAgICAgbWVzaE9wYWNpdHk6IHRoaXMucHJvcHMub3BhY2l0eSA/PyAxLFxuICAgICAgICBtZXNoRmxhdFNoYWRpbmc6ICF0aGlzLnN0YXRlLmhhc05vcm1hbHMgPyAxLjAgOiAwLjBcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IGVhY2ggY3VzdG9tIG1vZHVsZSdzIHVuaWZvcm1zL2JpbmRpbmdzIHRvIHNoYWRlcklucHV0cyBkaXJlY3RseS5cbiAgICAvLyBXZSBjYWxsIGdldFVuaWZvcm1zIG9uY2UgcGVyIG1vZHVsZSBhbmQgd3JpdGUgdGhlIHJlc3VsdHMgaW50b1xuICAgIC8vIHNoYWRlcklucHV0cy5tb2R1bGVVbmlmb3Jtcy9tb2R1bGVCaW5kaW5ncywgYnlwYXNzaW5nIHNldFByb3BzKCkgd2hpY2hcbiAgICAvLyB3b3VsZCBjYWxsIGdldFVuaWZvcm1zIGEgc2Vjb25kIHRpbWUgb24gYWxyZWFkeS10cmFuc2Zvcm1lZCB2YWx1ZXMuXG4gICAgY29uc3QgYWxsTW9kdWxlUHJvcHMgPSB7Li4ubW9kdWxlUHJvcHMsIC4uLmltYWdlc307XG4gICAgY29uc3QgbW9kdWxlcyA9IHRoaXMucHJvcHMubW9kdWxlcyB8fCBbXTtcbiAgICBhcHBseU1vZHVsZVVuaWZvcm1zKG1vZGVsLnNoYWRlcklucHV0cywgbW9kdWxlcywgYWxsTW9kdWxlUHJvcHMpO1xuXG4gICAgY29uc3QgZHJhd1N1Y2Nlc3MgPSBtb2RlbC5kcmF3KHRoaXMuY29udGV4dC5yZW5kZXJQYXNzKTtcbiAgICBpZiAoIWRyYXdTdWNjZXNzKSB7XG4gICAgICB0aGlzLl9zY2hlZHVsZVJlZHJhdygpO1xuICAgIH1cbiAgfVxuXG4gIF9zY2hlZHVsZVJlZHJhdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVkcmF3U2NoZWR1bGVkKSByZXR1cm47XG4gICAgdGhpcy5fcmVkcmF3U2NoZWR1bGVkID0gdHJ1ZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5fcmVkcmF3U2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5jb250ZXh0LmRlY2spIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBhY2Nlc3NpbmcgcHJpdmF0ZSBkZWNrLmdsIHByb3BlcnR5XG4gICAgICAgIHRoaXMuY29udGV4dC5kZWNrLl9uZWVkc1JlZHJhdyA9ICdSYXN0ZXJNZXNoTGF5ZXIgcGlwZWxpbmUgcGVuZGluZyc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRleHQubGF5ZXJNYW5hZ2VyPy5zZXROZWVkc1JlZHJhdygnUmFzdGVyTWVzaExheWVyIHBpcGVsaW5lIHBlbmRpbmcnKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblJlZHJhd05lZWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uUmVkcmF3TmVlZGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmaW5hbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLmZpbmFsaXplU3RhdGUodGhpcy5jb250ZXh0KTtcblxuICAgIGlmICh0aGlzLnN0YXRlLmltYWdlcykge1xuICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBPYmplY3QudmFsdWVzKHRoaXMuc3RhdGUuaW1hZ2VzKSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZSkpIHtcbiAgICAgICAgICBpbWFnZS5tYXAoeCA9PiB4ICYmICh4LmRlc3Ryb3kgPyB4LmRlc3Ryb3koKSA6IHguZGVsZXRlPy4oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKGltYWdlKSB7XG4gICAgICAgICAgaW1hZ2UuZGVzdHJveSA/IGltYWdlLmRlc3Ryb3koKSA6IGltYWdlLmRlbGV0ZT8uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWwobWVzaDogTWVzaCk6IE1vZGVsIHtcbiAgICBjb25zdCBkZXZpY2UgPSB0aGlzLmNvbnRleHQuZGV2aWNlIHx8IHRoaXMuY29udGV4dC5nbDtcblxuICAgIGNvbnN0IG1vZGVsID0gbmV3IE1vZGVsKFxuICAgICAgZGV2aWNlLFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5nZXRTaGFkZXJzKCksIHtcbiAgICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAgIGdlb21ldHJ5OiBnZXRHZW9tZXRyeShtZXNoIGFzIE1lc2hEYXRhIHwgR2VvbWV0cnkpLFxuICAgICAgICBpc0luc3RhbmNlZDogZmFsc2VcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxufVxuXG5SYXN0ZXJNZXNoTGF5ZXIubGF5ZXJOYW1lID0gJ1Jhc3Rlck1lc2hMYXllcic7XG5SYXN0ZXJNZXNoTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFHQSxJQUFBRSx1QkFBQSxHQUFBRixPQUFBO0FBS0EsSUFBQUcsbUJBQUEsR0FBQUgsT0FBQTtBQUlBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyx5QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQThDLFNBQUFTLFdBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFdBQUFELENBQUEsT0FBQUUsZ0JBQUEsYUFBQUYsQ0FBQSxPQUFBRywyQkFBQSxhQUFBSixDQUFBLEVBQUFLLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTixDQUFBLEVBQUFDLENBQUEsWUFBQUMsZ0JBQUEsYUFBQUgsQ0FBQSxFQUFBUSxXQUFBLElBQUFQLENBQUEsQ0FBQVEsS0FBQSxDQUFBVCxDQUFBLEVBQUFFLENBQUE7QUFBQSxTQUFBRywwQkFBQSxj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
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const RASTER_PROCESSING_FS: string;
|
|
2
|
+
export declare const rasterProcessingUniforms: {
|
|
3
|
+
name: string;
|
|
4
|
+
fs: string;
|
|
5
|
+
vs: string;
|
|
6
|
+
uniformTypes: {
|
|
7
|
+
linear_rescale_scaler: string;
|
|
8
|
+
linear_rescale_offset: string;
|
|
9
|
+
gamma_contrast_gamma1: string;
|
|
10
|
+
gamma_contrast_gamma2: string;
|
|
11
|
+
gamma_contrast_gamma3: string;
|
|
12
|
+
gamma_contrast_gamma4: string;
|
|
13
|
+
sigmoidalContrast_contrast: string;
|
|
14
|
+
sigmoidalContrast_bias: string;
|
|
15
|
+
colormap_hasCategoricalColors: string;
|
|
16
|
+
colormap_categoricalMinValue: string;
|
|
17
|
+
colormap_categoricalMaxValue: string;
|
|
18
|
+
colormap_maxPixelValue: string;
|
|
19
|
+
bandFilter_min1: string;
|
|
20
|
+
bandFilter_max1: string;
|
|
21
|
+
bandFilter_min2: string;
|
|
22
|
+
bandFilter_max2: string;
|
|
23
|
+
bandFilter_min3: string;
|
|
24
|
+
bandFilter_max3: string;
|
|
25
|
+
bandFilter_min4: string;
|
|
26
|
+
bandFilter_max4: string;
|
|
27
|
+
saturation_value: string;
|
|
28
|
+
reorder_bands_ordering: string;
|
|
29
|
+
mask_keepMin: string;
|
|
30
|
+
mask_keepMax: string;
|
|
31
|
+
pansharpen_brovey_panWeight: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Map from original module uniform names (as returned by getUniforms) to
|
|
36
|
+
* the prefixed names used in the shared UBO.
|
|
37
|
+
*/
|
|
38
|
+
export declare const UNIFORM_NAME_MAP: Record<string, Record<string, string>>;
|
|
@@ -0,0 +1,124 @@
|
|
|
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+JyxcbiAgICBtYXNrX2tlZXBNaW46ICdmMzInLFxuICAgIG1hc2tfa2VlcE1heDogJ2YzMicsXG4gICAgcGFuc2hhcnBlbl9icm92ZXlfcGFuV2VpZ2h0OiAnZjMyJ1xuICB9XG59O1xuXG4vKipcbiAqIE1hcCBmcm9tIG9yaWdpbmFsIG1vZHVsZSB1bmlmb3JtIG5hbWVzIChhcyByZXR1cm5lZCBieSBnZXRVbmlmb3JtcykgdG9cbiAqIHRoZSBwcmVmaXhlZCBuYW1lcyB1c2VkIGluIHRoZSBzaGFyZWQgVUJPLlxuICovXG5leHBvcnQgY29uc3QgVU5JRk9STV9OQU1FX01BUDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gIGxpbmVhcl9yZXNjYWxlOiB7XG4gICAgc2NhbGVyOiAnbGluZWFyX3Jlc2NhbGVfc2NhbGVyJyxcbiAgICBvZmZzZXQ6ICdsaW5lYXJfcmVzY2FsZV9vZmZzZXQnXG4gIH0sXG4gIGdhbW1hX2NvbnRyYXN0OiB7XG4gICAgZ2FtbWExOiAnZ2FtbWFfY29udHJhc3RfZ2FtbWExJyxcbiAgICBnYW1tYTI6ICdnYW1tYV9jb250cmFzdF9nYW1tYTInLFxuICAgIGdhbW1hMzogJ2dhbW1hX2NvbnRyYXN0X2dhbW1hMycsXG4gICAgZ2FtbWE0OiAnZ2FtbWFfY29udHJhc3RfZ2FtbWE0J1xuICB9LFxuICBzaWdtb2lkYWxDb250cmFzdDoge1xuICAgIGNvbnRyYXN0OiAnc2lnbW9pZGFsQ29udHJhc3RfY29udHJhc3QnLFxuICAgIGJpYXM6ICdzaWdtb2lkYWxDb250cmFzdF9iaWFzJ1xuICB9LFxuICBjb2xvcm1hcDoge1xuICAgIGhhc0NhdGVnb3JpY2FsQ29sb3JzOiAnY29sb3JtYXBfaGFzQ2F0ZWdvcmljYWxDb2xvcnMnLFxuICAgIGNhdGVnb3JpY2FsTWluVmFsdWU6ICdjb2xvcm1hcF9jYXRlZ29yaWNhbE1pblZhbHVlJyxcbiAgICBjYXRlZ29yaWNhbE1heFZhbHVlOiAnY29sb3JtYXBfY2F0ZWdvcmljYWxNYXhWYWx1ZScsXG4gICAgbWF4UGl4ZWxWYWx1ZTogJ2NvbG9ybWFwX21heFBpeGVsVmFsdWUnXG4gIH0sXG4gIGJhbmRGaWx0ZXI6IHtcbiAgICBtaW4xOiAnYmFuZEZpbHRlcl9taW4xJyxcbiAgICBtYXgxOiAnYmFuZEZpbHRlcl9tYXgxJyxcbiAgICBtaW4yOiAnYmFuZEZpbHRlcl9taW4yJyxcbiAgICBtYXgyOiAnYmFuZEZpbHRlcl9tYXgyJyxcbiAgICBtaW4zOiAnYmFuZEZpbHRlcl9taW4zJyxcbiAgICBtYXgzOiAnYmFuZEZpbHRlcl9tYXgzJyxcbiAgICBtaW40OiAnYmFuZEZpbHRlcl9taW40JyxcbiAgICBtYXg0OiAnYmFuZEZpbHRlcl9tYXg0J1xuICB9LFxuICBzYXR1cmF0aW9uOiB7XG4gICAgdmFsdWU6ICdzYXR1cmF0aW9uX3ZhbHVlJ1xuICB9LFxuICByZW9yZGVyX2JhbmRzOiB7XG4gICAgb3JkZXJpbmc6ICdyZW9yZGVyX2JhbmRzX29yZGVyaW5nJ1xuICB9LFxuICBtYXNrX2ltYWdlX2Zsb2F0OiB7XG4gICAga2VlcE1pbjogJ21hc2tfa2VlcE1pbicsXG4gICAga2VlcE1heDogJ21hc2tfa2VlcE1heCdcbiAgfSxcbiAgbWFza19pbWFnZV91aW50OiB7XG4gICAga2VlcE1pbjogJ21hc2tfa2VlcE1pbicsXG4gICAga2VlcE1heDogJ21hc2tfa2VlcE1heCdcbiAgfSxcbiAgbWFza19pbWFnZV9pbnQ6IHtcbiAgICBrZWVwTWluOiAnbWFza19rZWVwTWluJyxcbiAgICBrZWVwTWF4OiAnbWFza19rZWVwTWF4J1xuICB9LFxuICBwYW5zaGFycGVuX2Jyb3ZleToge1xuICAgIHBhbldlaWdodDogJ3BhbnNoYXJwZW5fYnJvdmV5X3BhbldlaWdodCdcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
|
package/dist/raster/util.d.ts
CHANGED
|
@@ -8,3 +8,18 @@ import { ShaderModule } from './webgl/types';
|
|
|
8
8
|
* @return true if both lists are equal
|
|
9
9
|
*/
|
|
10
10
|
export declare function modulesEqual(modules: ShaderModule[], oldModules: ShaderModule[]): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Apply module uniforms/bindings to shaderInputs, calling each module's
|
|
13
|
+
* getUniforms exactly once and writing the result directly — avoiding the
|
|
14
|
+
* double-getUniforms bug where shaderInputs.setProps() would re-invoke
|
|
15
|
+
* getUniforms on already-transformed values.
|
|
16
|
+
*
|
|
17
|
+
* For modules whose uniforms have been consolidated into the shared
|
|
18
|
+
* rasterProcessing UBO, the uniform values are remapped (prefixed) and
|
|
19
|
+
* written to the rasterProcessing slot instead of the individual module slot.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyModuleUniforms(shaderInputs: {
|
|
22
|
+
moduleUniforms: Record<string, Record<string, unknown>>;
|
|
23
|
+
moduleBindings: Record<string, Record<string, unknown>>;
|
|
24
|
+
setProps?: (props: any) => void;
|
|
25
|
+
}, modules: ShaderModule[], allModuleProps: Record<string, unknown>): void;
|