UNPKG

kepler.gl

Version:

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

68 lines (67 loc) 8.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _core = require("@deck.gl/core"); var _filterShaderModule = _interopRequireDefault(require("./filter-shader-module")); 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; })(); } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project var VALUE_FILTERED = 1; var defaultProps = { getFiltered: { type: 'accessor', value: VALUE_FILTERED } }; /** * FilterArrowExtension - a deck.gl extension to filter arrow layer * * A simple extension to filter arrow layer based on the result of CPU filteredIndex, * so we can avoid filtering on the raw Arrow table and recreating geometry attributes. * Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered * the shader module is modified to discard the feature if filtered value is 0 * the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer */ var FilterArrowExtension = exports["default"] = /*#__PURE__*/function (_LayerExtension) { function FilterArrowExtension() { (0, _classCallCheck2["default"])(this, FilterArrowExtension); return _callSuper(this, FilterArrowExtension, arguments); } (0, _inherits2["default"])(FilterArrowExtension, _LayerExtension); return (0, _createClass2["default"])(FilterArrowExtension, [{ key: "getShaders", value: function getShaders() { return { modules: [_filterShaderModule["default"]], defines: {} }; } }, { key: "initializeState", value: function initializeState() { var attributeManager = this.getAttributeManager(); if (attributeManager) { attributeManager.add({ filtered: { size: 1, type: 'float32', stepMode: 'dynamic', accessor: 'getFiltered' } }); } } }]); }(_core.LayerExtension); (0, _defineProperty2["default"])(FilterArrowExtension, "defaultProps", defaultProps); (0, _defineProperty2["default"])(FilterArrowExtension, "extensionName", 'FilterArrowExtension'); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfZmlsdGVyU2hhZGVyTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jYWxsU3VwZXIiLCJ0IiwibyIsImUiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiVkFMVUVfRklMVEVSRUQiLCJkZWZhdWx0UHJvcHMiLCJnZXRGaWx0ZXJlZCIsInR5cGUiLCJ2YWx1ZSIsIkZpbHRlckFycm93RXh0ZW5zaW9uIiwiZXhwb3J0cyIsIl9MYXllckV4dGVuc2lvbiIsIl9jbGFzc0NhbGxDaGVjazIiLCJhcmd1bWVudHMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldFNoYWRlcnMiLCJtb2R1bGVzIiwic2hhZGVyTW9kdWxlIiwiZGVmaW5lcyIsImluaXRpYWxpemVTdGF0ZSIsImF0dHJpYnV0ZU1hbmFnZXIiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiYWRkIiwiZmlsdGVyZWQiLCJzaXplIiwic3RlcE1vZGUiLCJhY2Nlc3NvciIsIkxheWVyRXh0ZW5zaW9uIiwiX2RlZmluZVByb3BlcnR5MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNrZ2wtZXh0ZW5zaW9ucy9maWx0ZXItYXJyb3ctbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtMYXllciwgTGF5ZXJFeHRlbnNpb259IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG5pbXBvcnQgc2hhZGVyTW9kdWxlIGZyb20gJy4vZmlsdGVyLXNoYWRlci1tb2R1bGUnO1xuXG5jb25zdCBWQUxVRV9GSUxURVJFRCA9IDE7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgZ2V0RmlsdGVyZWQ6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogVkFMVUVfRklMVEVSRUR9XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJBcnJvd0V4dGVuc2lvblByb3BzID0ge1xuICBnZXRGaWx0ZXJlZD86ICgpID0+IG51bWJlcjtcbn07XG5cbi8qKlxuICogRmlsdGVyQXJyb3dFeHRlbnNpb24gLSBhIGRlY2suZ2wgZXh0ZW5zaW9uIHRvIGZpbHRlciBhcnJvdyBsYXllclxuICpcbiAqIEEgc2ltcGxlIGV4dGVuc2lvbiB0byBmaWx0ZXIgYXJyb3cgbGF5ZXIgYmFzZWQgb24gdGhlIHJlc3VsdCBvZiBDUFUgZmlsdGVyZWRJbmRleCxcbiAqIHNvIHdlIGNhbiBhdm9pZCBmaWx0ZXJpbmcgb24gdGhlIHJhdyBBcnJvdyB0YWJsZSBhbmQgcmVjcmVhdGluZyBnZW9tZXRyeSBhdHRyaWJ1dGVzLlxuICogU3BlY2lmaWNhbGx5LCBhbiBhdHRyaWJ1dGUgYGZpbHRlcmVkYCBpcyBhZGRlZCB0byB0aGUgbGF5ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgZmVhdHVyZSBoYXMgYmVlbiBGaWx0ZXJlZFxuICogdGhlIHNoYWRlciBtb2R1bGUgaXMgbW9kaWZpZWQgdG8gZGlzY2FyZCB0aGUgZmVhdHVyZSBpZiBmaWx0ZXJlZCB2YWx1ZSBpcyAwXG4gKiB0aGUgYWNjZXNzb3IgZ2V0RmlsdGVyZWQgaXMgdXNlZCB0byBnZXQgdGhlIHZhbHVlIG9mIGBmaWx0ZXJlZGAgYmFzZWQgb24gdGhlIHZhbHVlIGBmaWx0ZXJlZEluZGV4YCBpbiBBcnJvd2xheWVyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlckFycm93RXh0ZW5zaW9uIGV4dGVuZHMgTGF5ZXJFeHRlbnNpb24ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuICBzdGF0aWMgZXh0ZW5zaW9uTmFtZSA9ICdGaWx0ZXJBcnJvd0V4dGVuc2lvbic7XG5cbiAgZ2V0U2hhZGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlczogW3NoYWRlck1vZHVsZV0sXG4gICAgICBkZWZpbmVzOiB7fVxuICAgIH07XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUodGhpczogTGF5ZXI8RmlsdGVyQXJyb3dFeHRlbnNpb25Qcm9wcz4pIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVNYW5hZ2VyID0gdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk7XG4gICAgaWYgKGF0dHJpYnV0ZU1hbmFnZXIpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkKHtcbiAgICAgICAgZmlsdGVyZWQ6IHtcbiAgICAgICAgICBzaXplOiAxLFxuICAgICAgICAgIHR5cGU6ICdmbG9hdDMyJyxcbiAgICAgICAgICBzdGVwTW9kZTogJ2R5bmFtaWMnLFxuICAgICAgICAgIGFjY2Vzc29yOiAnZ2V0RmlsdGVyZWQnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFrRCxTQUFBRyxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENBQUFRLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBRSxDQUFBO0FBQUEsU0FBQUcsMEJBQUEsY0FBQUwsQ0FBQSxJQUFBVSxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBQyxJQUFBLENBQUFQLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRyxPQUFBLGlDQUFBVixDQUFBLGFBQUFLLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFMLENBQUEsVUFMbEQ7QUFDQTtBQU1BLElBQU1jLGNBQWMsR0FBRyxDQUFDO0FBRXhCLElBQU1DLFlBQVksR0FBRztFQUNuQkMsV0FBVyxFQUFFO0lBQUNDLElBQUksRUFBRSxVQUFVO0lBQUVDLEtBQUssRUFBRUo7RUFBYztBQUN2RCxDQUFDO0FBTUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkEsSUFTcUJLLG9CQUFvQixHQUFBQyxPQUFBLHFDQUFBQyxlQUFBO0VBQUEsU0FBQUYscUJBQUE7SUFBQSxJQUFBRyxnQkFBQSxtQkFBQUgsb0JBQUE7SUFBQSxPQUFBcEIsVUFBQSxPQUFBb0Isb0JBQUEsRUFBQUksU0FBQTtFQUFBO0VBQUEsSUFBQUMsVUFBQSxhQUFBTCxvQkFBQSxFQUFBRSxlQUFBO0VBQUEsV0FBQUksYUFBQSxhQUFBTixvQkFBQTtJQUFBTyxHQUFBO0lBQUFSLEtBQUEsRUFJdkMsU0FBQVMsVUFBVUEsQ0FBQSxFQUFHO01BQ1gsT0FBTztRQUNMQyxPQUFPLEVBQUUsQ0FBQ0MsOEJBQVksQ0FBQztRQUN2QkMsT0FBTyxFQUFFLENBQUM7TUFDWixDQUFDO0lBQ0g7RUFBQztJQUFBSixHQUFBO0lBQUFSLEtBQUEsRUFFRCxTQUFBYSxlQUFlQSxDQUFBLEVBQXlDO01BQ3RELElBQU1DLGdCQUFnQixHQUFHLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQztNQUNuRCxJQUFJRCxnQkFBZ0IsRUFBRTtRQUNwQkEsZ0JBQWdCLENBQUNFLEdBQUcsQ0FBQztVQUNuQkMsUUFBUSxFQUFFO1lBQ1JDLElBQUksRUFBRSxDQUFDO1lBQ1BuQixJQUFJLEVBQUUsU0FBUztZQUNmb0IsUUFBUSxFQUFFLFNBQVM7WUFDbkJDLFFBQVEsRUFBRTtVQUNaO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7SUFDRjtFQUFDO0FBQUEsRUF2QitDQyxvQkFBYztBQUFBLElBQUFDLGdCQUFBLGFBQTNDckIsb0JBQW9CLGtCQUNqQkosWUFBWTtBQUFBLElBQUF5QixnQkFBQSxhQURmckIsb0JBQW9CLG1CQUVoQixzQkFBc0IiLCJpZ25vcmVMaXN0IjpbXX0=