kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
75 lines (74 loc) • 15.6 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _constants = require("@kepler.gl/constants");
var _effect = _interopRequireDefault(require("./effect"));
var _distanceFog = require("./shader-passes/distance-fog");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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; }
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)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
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; } // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
var DistanceFogEffect = /*#__PURE__*/function (_Effect) {
function DistanceFogEffect(props) {
(0, _classCallCheck2["default"])(this, DistanceFogEffect);
return _callSuper(this, DistanceFogEffect, [props]);
}
(0, _inherits2["default"])(DistanceFogEffect, _Effect);
return (0, _createClass2["default"])(DistanceFogEffect, [{
key: "_initializeEffect",
value: function _initializeEffect() {
var effectDesc = _constants.POSTPROCESSING_EFFECTS.distanceFog;
if (!effectDesc) return;
var defaultParameters = {};
var _iterator = _createForOfIteratorHelper(effectDesc.parameters),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var _param$defaultValue;
var param = _step.value;
defaultParameters[param.name] = (_param$defaultValue = param.defaultValue) !== null && _param$defaultValue !== void 0 ? _param$defaultValue : param.min;
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
this.parameters = _objectSpread(_objectSpread({}, defaultParameters), this.parameters);
this.deckEffect = new _distanceFog.DeckDistanceFogEffect(this.parameters);
}
}, {
key: "getDefaultProps",
value: function getDefaultProps() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return _superPropGet(DistanceFogEffect, "getDefaultProps", this, 3)([_objectSpread({
type: _constants.DEFAULT_POST_PROCESSING_EFFECT_TYPE
}, props)]);
}
}, {
key: "setProps",
value: function setProps(props) {
_superPropGet(DistanceFogEffect, "setProps", this, 3)([props]);
if (props.parameters) {
var _this$deckEffect;
(_this$deckEffect = this.deckEffect) === null || _this$deckEffect === void 0 || _this$deckEffect.setProps(this.parameters);
}
}
}]);
}(_effect["default"]);
var _default = exports["default"] = DistanceFogEffect;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9lZmZlY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Rpc3RhbmNlRm9nIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiX3N1cGVyUHJvcEdldCIsInAiLCJfZ2V0MiIsIkRpc3RhbmNlRm9nRWZmZWN0IiwiX0VmZmVjdCIsInByb3BzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiX2luaXRpYWxpemVFZmZlY3QiLCJlZmZlY3REZXNjIiwiUE9TVFBST0NFU1NJTkdfRUZGRUNUUyIsImRpc3RhbmNlRm9nIiwiZGVmYXVsdFBhcmFtZXRlcnMiLCJfaXRlcmF0b3IiLCJwYXJhbWV0ZXJzIiwiX3N0ZXAiLCJfcGFyYW0kZGVmYXVsdFZhbHVlIiwicGFyYW0iLCJkZWZhdWx0VmFsdWUiLCJtaW4iLCJlcnIiLCJkZWNrRWZmZWN0IiwiRGVja0Rpc3RhbmNlRm9nRWZmZWN0IiwiZ2V0RGVmYXVsdFByb3BzIiwidW5kZWZpbmVkIiwidHlwZSIsIkRFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFIiwic2V0UHJvcHMiLCJfdGhpcyRkZWNrRWZmZWN0IiwiRWZmZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Rpc3RhbmNlLWZvZy1lZmZlY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLCBERUZBVUxUX1BPU1RfUFJPQ0VTU0lOR19FRkZFQ1RfVFlQRX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3RQcm9wc1BhcnRpYWx9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQgRWZmZWN0IGZyb20gJy4vZWZmZWN0JztcbmltcG9ydCB7RGVja0Rpc3RhbmNlRm9nRWZmZWN0LCBEaXN0YW5jZUZvZ1Byb3BzfSBmcm9tICcuL3NoYWRlci1wYXNzZXMvZGlzdGFuY2UtZm9nJztcblxuY2xhc3MgRGlzdGFuY2VGb2dFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogRWZmZWN0UHJvcHNQYXJ0aWFsKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgX2luaXRpYWxpemVFZmZlY3QoKSB7XG4gICAgY29uc3QgZWZmZWN0RGVzYyA9IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFMuZGlzdGFuY2VGb2c7XG4gICAgaWYgKCFlZmZlY3REZXNjKSByZXR1cm47XG5cbiAgICBjb25zdCBkZWZhdWx0UGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgZWZmZWN0RGVzYy5wYXJhbWV0ZXJzKSB7XG4gICAgICBkZWZhdWx0UGFyYW1ldGVyc1twYXJhbS5uYW1lXSA9IHBhcmFtLmRlZmF1bHRWYWx1ZSA/PyBwYXJhbS5taW47XG4gICAgfVxuICAgIHRoaXMucGFyYW1ldGVycyA9IHsuLi5kZWZhdWx0UGFyYW1ldGVycywgLi4udGhpcy5wYXJhbWV0ZXJzfTtcblxuICAgIHRoaXMuZGVja0VmZmVjdCA9IG5ldyBEZWNrRGlzdGFuY2VGb2dFZmZlY3QodGhpcy5wYXJhbWV0ZXJzIGFzIERpc3RhbmNlRm9nUHJvcHMpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdFByb3BzKHByb3BzOiBFZmZlY3RQcm9wc1BhcnRpYWwgPSB7fSkge1xuICAgIHJldHVybiBzdXBlci5nZXREZWZhdWx0UHJvcHMoe3R5cGU6IERFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFLCAuLi5wcm9wc30pO1xuICB9XG5cbiAgc2V0UHJvcHMocHJvcHM6IEVmZmVjdFByb3BzUGFydGlhbCkge1xuICAgIHN1cGVyLnNldFByb3BzKHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5wYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLmRlY2tFZmZlY3Q/LnNldFByb3BzKHRoaXMucGFyYW1ldGVycyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpc3RhbmNlRm9nRWZmZWN0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUFxRixT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