UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

69 lines (64 loc) 7.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.constructPermutationMatrix = constructPermutationMatrix; exports.reorderBands = void 0; 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; } } }; } 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; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project /** * Reorder image bands on GPU * Uses a permutation matrix to reorder a vec4 */ var fs = "uniform mat4 uReorder;\n\nvec4 reorder_image(vec4 image, mat4 ordering) {\n return image.rgba * ordering;\n}\n"; function getUniforms() { var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var ordering = opts.ordering; if (!ordering) { return null; } return { uReorder: constructPermutationMatrix(ordering) }; } /** * Construct permutation matrix from vector * * @param vector Vector describing how to reorder bands * * @return a mat4 permutation matrix representing how to reorder bands */ function constructPermutationMatrix(vector) { var mat4 = Array(16).fill(0); var row = 0; var _iterator = _createForOfIteratorHelper(vector), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var index = _step.value; mat4[row * 4 + index] = 1; row += 1; } // If input vector wasn't of length 4, add identity in final places } catch (err) { _iterator.e(err); } finally { _iterator.f(); } for (var r = row; r < 4; r++) { mat4[r * 4 + r] = 1; } return mat4; } var reorderBands = exports.reorderBands = { name: 'reorder-bands', fs: fs, getUniforms: getUniforms, inject: { 'fs:DECKGL_MUTATE_COLOR': "\n image = reorder_image(image, uReorder);\n " } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsImdldFVuaWZvcm1zIiwib3B0cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm9yZGVyaW5nIiwidVJlb3JkZXIiLCJjb25zdHJ1Y3RQZXJtdXRhdGlvbk1hdHJpeCIsInZlY3RvciIsIm1hdDQiLCJBcnJheSIsImZpbGwiLCJyb3ciLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwiaW5kZXgiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwiciIsInJlb3JkZXJCYW5kcyIsImV4cG9ydHMiLCJuYW1lIiwiaW5qZWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Jhc3Rlci93ZWJnbC90ZXh0dXJlL3Jlb3JkZXItYmFuZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTaGFkZXJNb2R1bGUsIEdldFVuaWZvcm1zT3V0cHV0fSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogUmVvcmRlciBpbWFnZSBiYW5kcyBvbiBHUFVcbiAqIFVzZXMgYSBwZXJtdXRhdGlvbiBtYXRyaXggdG8gcmVvcmRlciBhIHZlYzRcbiAqL1xuXG5jb25zdCBmcyA9IGBcXFxudW5pZm9ybSBtYXQ0IHVSZW9yZGVyO1xuXG52ZWM0IHJlb3JkZXJfaW1hZ2UodmVjNCBpbWFnZSwgbWF0NCBvcmRlcmluZykge1xuICByZXR1cm4gaW1hZ2UucmdiYSAqIG9yZGVyaW5nO1xufVxuYDtcblxuZnVuY3Rpb24gZ2V0VW5pZm9ybXMob3B0czoge29yZGVyaW5nPzogbnVtYmVyW119ID0ge30pOiBHZXRVbmlmb3Jtc091dHB1dCB7XG4gIGNvbnN0IHtvcmRlcmluZ30gPSBvcHRzO1xuXG4gIGlmICghb3JkZXJpbmcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdVJlb3JkZXI6IGNvbnN0cnVjdFBlcm11dGF0aW9uTWF0cml4KG9yZGVyaW5nKVxuICB9O1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBwZXJtdXRhdGlvbiBtYXRyaXggZnJvbSB2ZWN0b3JcbiAqXG4gKiBAcGFyYW0gdmVjdG9yICBWZWN0b3IgZGVzY3JpYmluZyBob3cgdG8gcmVvcmRlciBiYW5kc1xuICpcbiAqIEByZXR1cm4gYSBtYXQ0IHBlcm11dGF0aW9uIG1hdHJpeCByZXByZXNlbnRpbmcgaG93IHRvIHJlb3JkZXIgYmFuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdFBlcm11dGF0aW9uTWF0cml4KHZlY3RvcjogbnVtYmVyW10pOiBudW1iZXJbXSB7XG4gIGNvbnN0IG1hdDQgPSBBcnJheSgxNikuZmlsbCgwKTtcbiAgbGV0IHJvdyA9IDA7XG4gIGZvciAoY29uc3QgaW5kZXggb2YgdmVjdG9yKSB7XG4gICAgbWF0NFtyb3cgKiA0ICsgaW5kZXhdID0gMTtcbiAgICByb3cgKz0gMTtcbiAgfVxuXG4gIC8vIElmIGlucHV0IHZlY3RvciB3YXNuJ3Qgb2YgbGVuZ3RoIDQsIGFkZCBpZGVudGl0eSBpbiBmaW5hbCBwbGFjZXNcbiAgZm9yIChsZXQgciA9IHJvdzsgciA8IDQ7IHIrKykge1xuICAgIG1hdDRbciAqIDQgKyByXSA9IDE7XG4gIH1cblxuICByZXR1cm4gbWF0NDtcbn1cblxuZXhwb3J0IGNvbnN0IHJlb3JkZXJCYW5kczogU2hhZGVyTW9kdWxlID0ge1xuICBuYW1lOiAncmVvcmRlci1iYW5kcycsXG4gIGZzLFxuICBnZXRVbmlmb3JtcyxcbiAgaW5qZWN0OiB7XG4gICAgJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1InOiBgXG4gICAgaW1hZ2UgPSByZW9yZGVyX2ltYWdlKGltYWdlLCB1UmVvcmRlcik7XG4gICAgYFxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFNQSxFQUFFLG9IQU1QO0FBRUQsU0FBU0MsV0FBV0EsQ0FBQSxFQUFzRDtFQUFBLElBQXJEQyxJQUEyQixHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFDbkQsSUFBT0csUUFBUSxHQUFJSixJQUFJLENBQWhCSSxRQUFRO0VBRWYsSUFBSSxDQUFDQSxRQUFRLEVBQUU7SUFDYixPQUFPLElBQUk7RUFDYjtFQUVBLE9BQU87SUFDTEMsUUFBUSxFQUFFQywwQkFBMEIsQ0FBQ0YsUUFBUTtFQUMvQyxDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTRSwwQkFBMEJBLENBQUNDLE1BQWdCLEVBQVk7RUFDckUsSUFBTUMsSUFBSSxHQUFHQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDOUIsSUFBSUMsR0FBRyxHQUFHLENBQUM7RUFBQyxJQUFBQyxTQUFBLEdBQUFDLDBCQUFBLENBQ1FOLE1BQU07SUFBQU8sS0FBQTtFQUFBO0lBQTFCLEtBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxNQUFBRCxLQUFBLEdBQUFGLFNBQUEsQ0FBQUksQ0FBQSxJQUFBQyxJQUFBLEdBQTRCO01BQUEsSUFBakJDLEtBQUssR0FBQUosS0FBQSxDQUFBSyxLQUFBO01BQ2RYLElBQUksQ0FBQ0csR0FBRyxHQUFHLENBQUMsR0FBR08sS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUN6QlAsR0FBRyxJQUFJLENBQUM7SUFDVjs7SUFFQTtFQUFBLFNBQUFTLEdBQUE7SUFBQVIsU0FBQSxDQUFBUyxDQUFBLENBQUFELEdBQUE7RUFBQTtJQUFBUixTQUFBLENBQUFVLENBQUE7RUFBQTtFQUNBLEtBQUssSUFBSUMsQ0FBQyxHQUFHWixHQUFHLEVBQUVZLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsRUFBRSxFQUFFO0lBQzVCZixJQUFJLENBQUNlLENBQUMsR0FBRyxDQUFDLEdBQUdBLENBQUMsQ0FBQyxHQUFHLENBQUM7RUFDckI7RUFFQSxPQUFPZixJQUFJO0FBQ2I7QUFFTyxJQUFNZ0IsWUFBMEIsR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUc7RUFDeENFLElBQUksRUFBRSxlQUFlO0VBQ3JCNUIsRUFBRSxFQUFGQSxFQUFFO0VBQ0ZDLFdBQVcsRUFBWEEsV0FBVztFQUNYNEIsTUFBTSxFQUFFO0lBQ04sd0JBQXdCO0VBRzFCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==