@kepler.gl/deckgl-layers 3.1.4 → 3.1.6

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.
Files changed (65) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +25 -2
  3. package/dist/raster/images.d.ts +9 -0
  4. package/dist/raster/images.js +165 -0
  5. package/dist/raster/raster-layer/raster-layer-webgl1.fs.d.ts +2 -0
  6. package/dist/raster/raster-layer/raster-layer-webgl1.fs.js +10 -0
  7. package/dist/raster/raster-layer/raster-layer-webgl1.vs.d.ts +2 -0
  8. package/dist/raster/raster-layer/raster-layer-webgl1.vs.js +10 -0
  9. package/dist/raster/raster-layer/raster-layer-webgl2.fs.d.ts +2 -0
  10. package/dist/raster/raster-layer/raster-layer-webgl2.fs.js +10 -0
  11. package/dist/raster/raster-layer/raster-layer-webgl2.vs.d.ts +2 -0
  12. package/dist/raster/raster-layer/raster-layer-webgl2.vs.js +10 -0
  13. package/dist/raster/raster-layer/raster-layer.d.ts +21 -0
  14. package/dist/raster/raster-layer/raster-layer.js +235 -0
  15. package/dist/raster/raster-mesh-layer/matrix.d.ts +2 -0
  16. package/dist/raster/raster-mesh-layer/matrix.js +18 -0
  17. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.d.ts +2 -0
  18. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.fs.js +10 -0
  19. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.d.ts +2 -0
  20. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl1.vs.js +10 -0
  21. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.d.ts +2 -0
  22. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.fs.js +10 -0
  23. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.d.ts +2 -0
  24. package/dist/raster/raster-mesh-layer/raster-mesh-layer-webgl2.vs.js +10 -0
  25. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +22 -0
  26. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +263 -0
  27. package/dist/raster/types.d.ts +17 -0
  28. package/dist/raster/types.js +6 -0
  29. package/dist/raster/util.d.ts +10 -0
  30. package/dist/raster/util.js +29 -0
  31. package/dist/raster/webgl/color/colormap.d.ts +2 -0
  32. package/dist/raster/webgl/color/colormap.js +39 -0
  33. package/dist/raster/webgl/color/filter.d.ts +2 -0
  34. package/dist/raster/webgl/color/filter.js +48 -0
  35. package/dist/raster/webgl/color/gamma-contrast.d.ts +2 -0
  36. package/dist/raster/webgl/color/gamma-contrast.js +62 -0
  37. package/dist/raster/webgl/color/linear-rescale.d.ts +2 -0
  38. package/dist/raster/webgl/color/linear-rescale.js +31 -0
  39. package/dist/raster/webgl/color/saturation.d.ts +2 -0
  40. package/dist/raster/webgl/color/saturation.js +39 -0
  41. package/dist/raster/webgl/color/sigmoidal-contrast.d.ts +2 -0
  42. package/dist/raster/webgl/color/sigmoidal-contrast.js +64 -0
  43. package/dist/raster/webgl/index.d.ts +16 -0
  44. package/dist/raster/webgl/index.js +135 -0
  45. package/dist/raster/webgl/pansharpen/pansharpen-brovey.d.ts +2 -0
  46. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +43 -0
  47. package/dist/raster/webgl/spectral-indices/evi.d.ts +2 -0
  48. package/dist/raster/webgl/spectral-indices/evi.js +26 -0
  49. package/dist/raster/webgl/spectral-indices/msavi.d.ts +2 -0
  50. package/dist/raster/webgl/spectral-indices/msavi.js +25 -0
  51. package/dist/raster/webgl/spectral-indices/normalized-difference.d.ts +2 -0
  52. package/dist/raster/webgl/spectral-indices/normalized-difference.js +19 -0
  53. package/dist/raster/webgl/spectral-indices/savi.d.ts +2 -0
  54. package/dist/raster/webgl/spectral-indices/savi.js +21 -0
  55. package/dist/raster/webgl/texture/combine-bands.d.ts +4 -0
  56. package/dist/raster/webgl/texture/combine-bands.js +65 -0
  57. package/dist/raster/webgl/texture/mask.d.ts +4 -0
  58. package/dist/raster/webgl/texture/mask.js +58 -0
  59. package/dist/raster/webgl/texture/reorder-bands.d.ts +10 -0
  60. package/dist/raster/webgl/texture/reorder-bands.js +69 -0
  61. package/dist/raster/webgl/texture/rgba-image.d.ts +2 -0
  62. package/dist/raster/webgl/texture/rgba-image.js +34 -0
  63. package/dist/raster/webgl/types.d.ts +23 -0
  64. package/dist/raster/webgl/types.js +6 -0
  65. package/package.json +4 -4
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _typed = require("@deck.gl/core/typed");
17
+ var _typed2 = require("@deck.gl/layers/typed");
18
+ var _core = require("@luma.gl/core");
19
+ var _engine = require("@luma.gl/engine");
20
+ var _rasterLayerWebgl = _interopRequireDefault(require("./raster-layer-webgl1.fs"));
21
+ var _rasterLayerWebgl2 = _interopRequireDefault(require("./raster-layer-webgl1.vs"));
22
+ var _rasterLayerWebgl3 = _interopRequireDefault(require("./raster-layer-webgl2.fs"));
23
+ var _rasterLayerWebgl4 = _interopRequireDefault(require("./raster-layer-webgl2.vs"));
24
+ var _images = require("../images");
25
+ var _util = require("../util");
26
+ 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; } } }; }
27
+ 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; } }
28
+ 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; }
29
+ 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)); }
30
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
31
+ 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; }
32
+ 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; }
33
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
34
+ // Copyright contributors to the kepler.gl project
35
+ var defaultProps = _objectSpread(_objectSpread({}, _typed2.BitmapLayer.defaultProps), {}, {
36
+ modules: {
37
+ type: 'array',
38
+ value: [],
39
+ compare: true
40
+ },
41
+ images: {
42
+ type: 'object',
43
+ value: {},
44
+ compare: true
45
+ },
46
+ moduleProps: {
47
+ type: 'object',
48
+ value: {},
49
+ compare: true
50
+ }
51
+ });
52
+ var RasterLayer = exports["default"] = /*#__PURE__*/function (_BitmapLayer) {
53
+ function RasterLayer() {
54
+ (0, _classCallCheck2["default"])(this, RasterLayer);
55
+ return _callSuper(this, RasterLayer, arguments);
56
+ }
57
+ (0, _inherits2["default"])(RasterLayer, _BitmapLayer);
58
+ return (0, _createClass2["default"])(RasterLayer, [{
59
+ key: "initializeState",
60
+ value: function initializeState() {
61
+ var gl = this.context.gl;
62
+ var programManager = _engine.ProgramManager.getDefaultProgramManager(gl);
63
+ var fsStr1 = 'fs:DECKGL_MUTATE_COLOR(inout vec4 image, in vec2 coord)';
64
+ var fsStr2 = 'fs:DECKGL_CREATE_COLOR(inout vec4 image, in vec2 coord)';
65
+
66
+ // Only initialize shader hook functions _once globally_
67
+ // Since the program manager is shared across all layers, but many layers
68
+ // might be created, this solves the performance issue of always adding new
69
+ // hook functions.
70
+ if (!programManager._hookFunctions.includes(fsStr1)) {
71
+ programManager.addShaderHook(fsStr1);
72
+ }
73
+ if (!programManager._hookFunctions.includes(fsStr2)) {
74
+ programManager.addShaderHook(fsStr2);
75
+ }
76
+
77
+ // images is a mapping from keys to Texture2D objects. The keys should match
78
+ // names of uniforms in shader modules
79
+ this.setState({
80
+ images: {}
81
+ });
82
+ _superPropGet(RasterLayer, "initializeState", this, 3)([]);
83
+ }
84
+ }, {
85
+ key: "draw",
86
+ value: function draw(_ref) {
87
+ var uniforms = _ref.uniforms;
88
+ var _this$state = this.state,
89
+ model = _this$state.model,
90
+ images = _this$state.images,
91
+ coordinateConversion = _this$state.coordinateConversion,
92
+ bounds = _this$state.bounds;
93
+ var _this$props = this.props,
94
+ desaturate = _this$props.desaturate,
95
+ transparentColor = _this$props.transparentColor,
96
+ tintColor = _this$props.tintColor,
97
+ moduleProps = _this$props.moduleProps;
98
+
99
+ // Render the image
100
+ if (!model || !images || Object.keys(images).length === 0 || !Object.values(images).every(function (item) {
101
+ return item;
102
+ })) {
103
+ return;
104
+ }
105
+ model.setUniforms(_objectSpread(_objectSpread({}, uniforms), {}, {
106
+ desaturate: desaturate,
107
+ transparentColor: transparentColor === null || transparentColor === void 0 ? void 0 : transparentColor.map(function (x) {
108
+ return x ? x / 255 : 0;
109
+ }),
110
+ tintColor: tintColor === null || tintColor === void 0 ? void 0 : tintColor.slice(0, 3).map(function (x) {
111
+ return x / 255;
112
+ }),
113
+ coordinateConversion: coordinateConversion,
114
+ bounds: bounds
115
+ })).updateModuleSettings(_objectSpread(_objectSpread({}, moduleProps), images)).draw();
116
+ }
117
+ }, {
118
+ key: "getShaders",
119
+ value: function getShaders() {
120
+ var gl = this.context.gl;
121
+ var _this$props$modules = this.props.modules,
122
+ modules = _this$props$modules === void 0 ? [] : _this$props$modules;
123
+ var webgl2 = (0, _core.isWebGL2)(gl);
124
+
125
+ // Choose webgl version for module
126
+ // If fs2 or fs1 keys exist, prefer them, but fall back to fs, so that
127
+ // version-independent modules don't need to care
128
+ var _iterator = _createForOfIteratorHelper(modules),
129
+ _step;
130
+ try {
131
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
132
+ var module = _step.value;
133
+ module.fs = webgl2 ? module.fs2 || module.fs : module.fs1 || module.fs;
134
+
135
+ // Sampler type is always float for WebGL1
136
+ if (!webgl2 && module.defines) {
137
+ module.defines.SAMPLER_TYPE = 'sampler2D';
138
+ }
139
+ }
140
+ } catch (err) {
141
+ _iterator.e(err);
142
+ } finally {
143
+ _iterator.f();
144
+ }
145
+ return _objectSpread(_objectSpread({}, _superPropGet(RasterLayer, "getShaders", this, 3)([])), {}, {
146
+ vs: webgl2 ? _rasterLayerWebgl4["default"] : _rasterLayerWebgl2["default"],
147
+ fs: webgl2 ? _rasterLayerWebgl3["default"] : _rasterLayerWebgl["default"],
148
+ modules: [_typed.project32].concat((0, _toConsumableArray2["default"])(modules))
149
+ });
150
+ }
151
+
152
+ // eslint-disable-next-line complexity
153
+ }, {
154
+ key: "updateState",
155
+ value: function updateState(params) {
156
+ var props = params.props,
157
+ oldProps = params.oldProps,
158
+ changeFlags = params.changeFlags;
159
+ var modules = props && props.modules;
160
+ var oldModules = oldProps && oldProps.modules;
161
+
162
+ // setup model first
163
+ // If the list of modules changed, need to recompile the shaders
164
+ if (changeFlags.extensionsChanged || !(0, _util.modulesEqual)(modules, oldModules)) {
165
+ var _this$state$model, _this$getAttributeMan;
166
+ var gl = this.context.gl;
167
+ (_this$state$model = this.state.model) === null || _this$state$model === void 0 || _this$state$model["delete"]();
168
+ this.state.model = this._getModel(gl);
169
+ (_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 || _this$getAttributeMan.invalidateAll();
170
+ }
171
+ if (props && props.images) {
172
+ this.updateImages({
173
+ props: props,
174
+ oldProps: oldProps
175
+ });
176
+ }
177
+ var attributeManager = this.getAttributeManager();
178
+ if (props.bounds !== oldProps.bounds) {
179
+ var _this$state$model2;
180
+ var oldMesh = this.state.mesh;
181
+ var mesh = this._createMesh();
182
+ (_this$state$model2 = this.state.model) === null || _this$state$model2 === void 0 || _this$state$model2.setVertexCount(mesh.vertexCount);
183
+ for (var key in mesh) {
184
+ if (oldMesh && oldMesh[key] !== mesh[key]) {
185
+ attributeManager === null || attributeManager === void 0 || attributeManager.invalidate(key);
186
+ }
187
+ }
188
+ this.setState(_objectSpread({
189
+ mesh: mesh
190
+ }, this._getCoordinateUniforms()));
191
+ } else if (props._imageCoordinateSystem !== oldProps._imageCoordinateSystem) {
192
+ this.setState(this._getCoordinateUniforms());
193
+ }
194
+ }
195
+ }, {
196
+ key: "updateImages",
197
+ value: function updateImages(_ref2) {
198
+ var props = _ref2.props,
199
+ oldProps = _ref2.oldProps;
200
+ var images = this.state.images;
201
+ var gl = this.context.gl;
202
+ var newImages = (0, _images.loadImages)({
203
+ gl: gl,
204
+ images: images,
205
+ imagesData: props.images,
206
+ oldImagesData: oldProps.images
207
+ });
208
+ if (newImages) {
209
+ this.setState({
210
+ images: newImages
211
+ });
212
+ }
213
+ }
214
+ }, {
215
+ key: "finalizeState",
216
+ value: function finalizeState() {
217
+ _superPropGet(RasterLayer, "finalizeState", this, 3)([this.context]);
218
+ if (this.state.images) {
219
+ for (var _i = 0, _Object$values = Object.values(this.state.images); _i < _Object$values.length; _i++) {
220
+ var image = _Object$values[_i];
221
+ if (Array.isArray(image)) {
222
+ image.map(function (x) {
223
+ return x && x["delete"]();
224
+ });
225
+ } else if (image) {
226
+ image["delete"]();
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }]);
232
+ }(_typed2.BitmapLayer);
233
+ RasterLayer.defaultProps = defaultProps;
234
+ RasterLayer.layerName = 'RasterLayer';
235
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZWQiLCJyZXF1aXJlIiwiX3R5cGVkMiIsIl9jb3JlIiwiX2VuZ2luZSIsIl9yYXN0ZXJMYXllcldlYmdsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yYXN0ZXJMYXllcldlYmdsMiIsIl9yYXN0ZXJMYXllcldlYmdsMyIsIl9yYXN0ZXJMYXllcldlYmdsNCIsIl9pbWFnZXMiLCJfdXRpbCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsImUiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZWZhdWx0UHJvcHMiLCJCaXRtYXBMYXllciIsIm1vZHVsZXMiLCJ0eXBlIiwiY29tcGFyZSIsImltYWdlcyIsIm1vZHVsZVByb3BzIiwiUmFzdGVyTGF5ZXIiLCJleHBvcnRzIiwiX0JpdG1hcExheWVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiaW5pdGlhbGl6ZVN0YXRlIiwiZ2wiLCJjb250ZXh0IiwicHJvZ3JhbU1hbmFnZXIiLCJQcm9ncmFtTWFuYWdlciIsImdldERlZmF1bHRQcm9ncmFtTWFuYWdlciIsImZzU3RyMSIsImZzU3RyMiIsIl9ob29rRnVuY3Rpb25zIiwiaW5jbHVkZXMiLCJhZGRTaGFkZXJIb29rIiwic2V0U3RhdGUiLCJkcmF3IiwiX3JlZiIsInVuaWZvcm1zIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsIm1vZGVsIiwiY29vcmRpbmF0ZUNvbnZlcnNpb24iLCJib3VuZHMiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwiZGVzYXR1cmF0ZSIsInRyYW5zcGFyZW50Q29sb3IiLCJ0aW50Q29sb3IiLCJ2YWx1ZXMiLCJldmVyeSIsIml0ZW0iLCJzZXRVbmlmb3JtcyIsIm1hcCIsIngiLCJ1cGRhdGVNb2R1bGVTZXR0aW5ncyIsImdldFNoYWRlcnMiLCJfdGhpcyRwcm9wcyRtb2R1bGVzIiwid2ViZ2wyIiwiaXNXZWJHTDIiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIm1vZHVsZSIsImZzIiwiZnMyIiwiZnMxIiwiZGVmaW5lcyIsIlNBTVBMRVJfVFlQRSIsImVyciIsInZzIiwidnNXZWJHTDIiLCJ2c1dlYkdMMSIsImZzV2ViR0wyIiwiZnNXZWJHTDEiLCJwcm9qZWN0MzIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwidXBkYXRlU3RhdGUiLCJwYXJhbXMiLCJvbGRQcm9wcyIsImNoYW5nZUZsYWdzIiwib2xkTW9kdWxlcyIsImV4dGVuc2lvbnNDaGFuZ2VkIiwibW9kdWxlc0VxdWFsIiwiX3RoaXMkc3RhdGUkbW9kZWwiLCJfdGhpcyRnZXRBdHRyaWJ1dGVNYW4iLCJfZ2V0TW9kZWwiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiaW52YWxpZGF0ZUFsbCIsInVwZGF0ZUltYWdlcyIsImF0dHJpYnV0ZU1hbmFnZXIiLCJfdGhpcyRzdGF0ZSRtb2RlbDIiLCJvbGRNZXNoIiwibWVzaCIsIl9jcmVhdGVNZXNoIiwic2V0VmVydGV4Q291bnQiLCJ2ZXJ0ZXhDb3VudCIsImludmFsaWRhdGUiLCJfZ2V0Q29vcmRpbmF0ZVVuaWZvcm1zIiwiX2ltYWdlQ29vcmRpbmF0ZVN5c3RlbSIsIl9yZWYyIiwibmV3SW1hZ2VzIiwibG9hZEltYWdlcyIsImltYWdlc0RhdGEiLCJvbGRJbWFnZXNEYXRhIiwiZmluYWxpemVTdGF0ZSIsIl9pIiwiX09iamVjdCR2YWx1ZXMiLCJpbWFnZSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLWxheWVyL3Jhc3Rlci1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge3Byb2plY3QzMiwgVXBkYXRlUGFyYW1ldGVyc30gZnJvbSAnQGRlY2suZ2wvY29yZS90eXBlZCc7XG5pbXBvcnQge0JpdG1hcExheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMvdHlwZWQnO1xuaW1wb3J0IHtpc1dlYkdMMn0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQge1Byb2dyYW1NYW5hZ2VyfSBmcm9tICdAbHVtYS5nbC9lbmdpbmUnO1xuXG5pbXBvcnQgZnNXZWJHTDEgZnJvbSAnLi9yYXN0ZXItbGF5ZXItd2ViZ2wxLmZzJztcbmltcG9ydCB2c1dlYkdMMSBmcm9tICcuL3Jhc3Rlci1sYXllci13ZWJnbDEudnMnO1xuaW1wb3J0IGZzV2ViR0wyIGZyb20gJy4vcmFzdGVyLWxheWVyLXdlYmdsMi5mcyc7XG5pbXBvcnQgdnNXZWJHTDIgZnJvbSAnLi9yYXN0ZXItbGF5ZXItd2ViZ2wyLnZzJztcbmltcG9ydCB7bG9hZEltYWdlc30gZnJvbSAnLi4vaW1hZ2VzJztcbmltcG9ydCB0eXBlIHtSYXN0ZXJMYXllckFkZGVkUHJvcHMsIEltYWdlU3RhdGV9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7bW9kdWxlc0VxdWFsfSBmcm9tICcuLi91dGlsJztcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAuLi5CaXRtYXBMYXllci5kZWZhdWx0UHJvcHMsXG4gIG1vZHVsZXM6IHt0eXBlOiAnYXJyYXknLCB2YWx1ZTogW10sIGNvbXBhcmU6IHRydWV9LFxuICBpbWFnZXM6IHt0eXBlOiAnb2JqZWN0JywgdmFsdWU6IHt9LCBjb21wYXJlOiB0cnVlfSxcbiAgbW9kdWxlUHJvcHM6IHt0eXBlOiAnb2JqZWN0JywgdmFsdWU6IHt9LCBjb21wYXJlOiB0cnVlfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFzdGVyTGF5ZXIgZXh0ZW5kcyBCaXRtYXBMYXllcjxSYXN0ZXJMYXllckFkZGVkUHJvcHM+IHtcbiAgZGVjbGFyZSBzdGF0ZTogQml0bWFwTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPlsnc3RhdGUnXSAmIHtcbiAgICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIH07XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHtnbH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgY29uc3QgcHJvZ3JhbU1hbmFnZXIgPSBQcm9ncmFtTWFuYWdlci5nZXREZWZhdWx0UHJvZ3JhbU1hbmFnZXIoZ2wpO1xuXG4gICAgY29uc3QgZnNTdHIxID0gJ2ZzOkRFQ0tHTF9NVVRBVEVfQ09MT1IoaW5vdXQgdmVjNCBpbWFnZSwgaW4gdmVjMiBjb29yZCknO1xuICAgIGNvbnN0IGZzU3RyMiA9ICdmczpERUNLR0xfQ1JFQVRFX0NPTE9SKGlub3V0IHZlYzQgaW1hZ2UsIGluIHZlYzIgY29vcmQpJztcblxuICAgIC8vIE9ubHkgaW5pdGlhbGl6ZSBzaGFkZXIgaG9vayBmdW5jdGlvbnMgX29uY2UgZ2xvYmFsbHlfXG4gICAgLy8gU2luY2UgdGhlIHByb2dyYW0gbWFuYWdlciBpcyBzaGFyZWQgYWNyb3NzIGFsbCBsYXllcnMsIGJ1dCBtYW55IGxheWVyc1xuICAgIC8vIG1pZ2h0IGJlIGNyZWF0ZWQsIHRoaXMgc29sdmVzIHRoZSBwZXJmb3JtYW5jZSBpc3N1ZSBvZiBhbHdheXMgYWRkaW5nIG5ld1xuICAgIC8vIGhvb2sgZnVuY3Rpb25zLlxuICAgIGlmICghcHJvZ3JhbU1hbmFnZXIuX2hvb2tGdW5jdGlvbnMuaW5jbHVkZXMoZnNTdHIxKSkge1xuICAgICAgcHJvZ3JhbU1hbmFnZXIuYWRkU2hhZGVySG9vayhmc1N0cjEpO1xuICAgIH1cbiAgICBpZiAoIXByb2dyYW1NYW5hZ2VyLl9ob29rRnVuY3Rpb25zLmluY2x1ZGVzKGZzU3RyMikpIHtcbiAgICAgIHByb2dyYW1NYW5hZ2VyLmFkZFNoYWRlckhvb2soZnNTdHIyKTtcbiAgICB9XG5cbiAgICAvLyBpbWFnZXMgaXMgYSBtYXBwaW5nIGZyb20ga2V5cyB0byBUZXh0dXJlMkQgb2JqZWN0cy4gVGhlIGtleXMgc2hvdWxkIG1hdGNoXG4gICAgLy8gbmFtZXMgb2YgdW5pZm9ybXMgaW4gc2hhZGVyIG1vZHVsZXNcbiAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IHt9fSk7XG5cbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgfVxuXG4gIGRyYXcoe3VuaWZvcm1zfToge3VuaWZvcm1zOiB7W2tleTogc3RyaW5nXTogYW55fX0pOiB2b2lkIHtcbiAgICBjb25zdCB7bW9kZWwsIGltYWdlcywgY29vcmRpbmF0ZUNvbnZlcnNpb24sIGJvdW5kc30gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHtkZXNhdHVyYXRlLCB0cmFuc3BhcmVudENvbG9yLCB0aW50Q29sb3IsIG1vZHVsZVByb3BzfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyBSZW5kZXIgdGhlIGltYWdlXG4gICAgaWYgKFxuICAgICAgIW1vZGVsIHx8XG4gICAgICAhaW1hZ2VzIHx8XG4gICAgICBPYmplY3Qua2V5cyhpbWFnZXMpLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgIU9iamVjdC52YWx1ZXMoaW1hZ2VzKS5ldmVyeShpdGVtID0+IGl0ZW0pXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW9kZWxcbiAgICAgIC5zZXRVbmlmb3Jtcyh7XG4gICAgICAgIC4uLnVuaWZvcm1zLFxuICAgICAgICBkZXNhdHVyYXRlLFxuICAgICAgICB0cmFuc3BhcmVudENvbG9yOiB0cmFuc3BhcmVudENvbG9yPy5tYXAoeCA9PiAoeCA/IHggLyAyNTUgOiAwKSksXG4gICAgICAgIHRpbnRDb2xvcjogdGludENvbG9yPy5zbGljZSgwLCAzKS5tYXAoeCA9PiB4IC8gMjU1KSxcbiAgICAgICAgY29vcmRpbmF0ZUNvbnZlcnNpb24sXG4gICAgICAgIGJvdW5kc1xuICAgICAgfSlcbiAgICAgIC51cGRhdGVNb2R1bGVTZXR0aW5ncyh7XG4gICAgICAgIC4uLm1vZHVsZVByb3BzLFxuICAgICAgICAuLi5pbWFnZXNcbiAgICAgIH0pXG4gICAgICAuZHJhdygpO1xuICB9XG5cbiAgZ2V0U2hhZGVycygpOiBhbnkge1xuICAgIGNvbnN0IHtnbH0gPSB0aGlzLmNvbnRleHQ7XG4gICAgY29uc3Qge21vZHVsZXMgPSBbXX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHdlYmdsMiA9IGlzV2ViR0wyKGdsKTtcblxuICAgIC8vIENob29zZSB3ZWJnbCB2ZXJzaW9uIGZvciBtb2R1bGVcbiAgICAvLyBJZiBmczIgb3IgZnMxIGtleXMgZXhpc3QsIHByZWZlciB0aGVtLCBidXQgZmFsbCBiYWNrIHRvIGZzLCBzbyB0aGF0XG4gICAgLy8gdmVyc2lvbi1pbmRlcGVuZGVudCBtb2R1bGVzIGRvbid0IG5lZWQgdG8gY2FyZVxuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcbiAgICAgIG1vZHVsZS5mcyA9IHdlYmdsMiA/IG1vZHVsZS5mczIgfHwgbW9kdWxlLmZzIDogbW9kdWxlLmZzMSB8fCBtb2R1bGUuZnM7XG5cbiAgICAgIC8vIFNhbXBsZXIgdHlwZSBpcyBhbHdheXMgZmxvYXQgZm9yIFdlYkdMMVxuICAgICAgaWYgKCF3ZWJnbDIgJiYgbW9kdWxlLmRlZmluZXMpIHtcbiAgICAgICAgbW9kdWxlLmRlZmluZXMuU0FNUExFUl9UWVBFID0gJ3NhbXBsZXIyRCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmdldFNoYWRlcnMoKSxcbiAgICAgIHZzOiB3ZWJnbDIgPyB2c1dlYkdMMiA6IHZzV2ViR0wxLFxuICAgICAgZnM6IHdlYmdsMiA/IGZzV2ViR0wyIDogZnNXZWJHTDEsXG4gICAgICBtb2R1bGVzOiBbcHJvamVjdDMyLCAuLi5tb2R1bGVzXVxuICAgIH07XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICB1cGRhdGVTdGF0ZShwYXJhbXM6IFVwZGF0ZVBhcmFtZXRlcnM8Qml0bWFwTGF5ZXI8UmFzdGVyTGF5ZXJBZGRlZFByb3BzPj4pOiB2b2lkIHtcbiAgICBjb25zdCB7cHJvcHMsIG9sZFByb3BzLCBjaGFuZ2VGbGFnc30gPSBwYXJhbXM7XG4gICAgY29uc3QgbW9kdWxlcyA9IHByb3BzICYmIHByb3BzLm1vZHVsZXM7XG4gICAgY29uc3Qgb2xkTW9kdWxlcyA9IG9sZFByb3BzICYmIG9sZFByb3BzLm1vZHVsZXM7XG5cbiAgICAvLyBzZXR1cCBtb2RlbCBmaXJzdFxuICAgIC8vIElmIHRoZSBsaXN0IG9mIG1vZHVsZXMgY2hhbmdlZCwgbmVlZCB0byByZWNvbXBpbGUgdGhlIHNoYWRlcnNcbiAgICBpZiAoY2hhbmdlRmxhZ3MuZXh0ZW5zaW9uc0NoYW5nZWQgfHwgIW1vZHVsZXNFcXVhbChtb2R1bGVzLCBvbGRNb2R1bGVzKSkge1xuICAgICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIHRoaXMuc3RhdGUubW9kZWw/LmRlbGV0ZSgpO1xuICAgICAgdGhpcy5zdGF0ZS5tb2RlbCA9IHRoaXMuX2dldE1vZGVsKGdsKTtcbiAgICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpPy5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzICYmIHByb3BzLmltYWdlcykge1xuICAgICAgdGhpcy51cGRhdGVJbWFnZXMoe3Byb3BzLCBvbGRQcm9wc30pO1xuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcblxuICAgIGlmIChwcm9wcy5ib3VuZHMgIT09IG9sZFByb3BzLmJvdW5kcykge1xuICAgICAgY29uc3Qgb2xkTWVzaCA9IHRoaXMuc3RhdGUubWVzaDtcbiAgICAgIGNvbnN0IG1lc2ggPSB0aGlzLl9jcmVhdGVNZXNoKCk7XG4gICAgICB0aGlzLnN0YXRlLm1vZGVsPy5zZXRWZXJ0ZXhDb3VudChtZXNoLnZlcnRleENvdW50KTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG1lc2gpIHtcbiAgICAgICAgaWYgKG9sZE1lc2ggJiYgb2xkTWVzaFtrZXldICE9PSBtZXNoW2tleV0pIHtcbiAgICAgICAgICBhdHRyaWJ1dGVNYW5hZ2VyPy5pbnZhbGlkYXRlKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe21lc2gsIC4uLnRoaXMuX2dldENvb3JkaW5hdGVVbmlmb3JtcygpfSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5faW1hZ2VDb29yZGluYXRlU3lzdGVtICE9PSBvbGRQcm9wcy5faW1hZ2VDb29yZGluYXRlU3lzdGVtKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHRoaXMuX2dldENvb3JkaW5hdGVVbmlmb3JtcygpKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVJbWFnZXMoe1xuICAgIHByb3BzLFxuICAgIG9sZFByb3BzXG4gIH06IHtcbiAgICBwcm9wczogUmFzdGVyTGF5ZXJBZGRlZFByb3BzO1xuICAgIG9sZFByb3BzOiBSYXN0ZXJMYXllckFkZGVkUHJvcHM7XG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCB7aW1hZ2VzfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcblxuICAgIGNvbnN0IG5ld0ltYWdlcyA9IGxvYWRJbWFnZXMoe1xuICAgICAgZ2wsXG4gICAgICBpbWFnZXMsXG4gICAgICBpbWFnZXNEYXRhOiBwcm9wcy5pbWFnZXMsXG4gICAgICBvbGRJbWFnZXNEYXRhOiBvbGRQcm9wcy5pbWFnZXNcbiAgICB9KTtcbiAgICBpZiAobmV3SW1hZ2VzKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtpbWFnZXM6IG5ld0ltYWdlc30pO1xuICAgIH1cbiAgfVxuXG4gIGZpbmFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIuZmluYWxpemVTdGF0ZSh0aGlzLmNvbnRleHQpO1xuXG4gICAgaWYgKHRoaXMuc3RhdGUuaW1hZ2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIE9iamVjdC52YWx1ZXModGhpcy5zdGF0ZS5pbWFnZXMpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlKSkge1xuICAgICAgICAgIGltYWdlLm1hcCh4ID0+IHggJiYgeC5kZWxldGUoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICBpbWFnZS5kZWxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5SYXN0ZXJMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5SYXN0ZXJMYXllci5sYXllck5hbWUgPSAnUmFzdGVyTGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFB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
@@ -0,0 +1,2 @@
1
+ import { Viewport, CoordinateSystem } from '@deck.gl/core/typed';
2
+ export declare function shouldComposeModelMatrix(viewport: Viewport, coordinateSystem: CoordinateSystem): boolean;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shouldComposeModelMatrix = shouldComposeModelMatrix;
7
+ var _typed = require("@deck.gl/core/typed");
8
+ // SPDX-License-Identifier: MIT
9
+ // Copyright contributors to the kepler.gl project
10
+
11
+ // only apply composeModelMatrix when in cartesian or meter_offsets coordinate system
12
+ // with `composeModelMatrix` enabled, the rotation part of the layer's modelMatrix will be composed to instance's transformations
13
+ // since rotating latitude and longitude can not provide meaningful results, hence `composeModelMatrix` is disabled
14
+ // when in LNGLAT and LNGLAT_OFFSET coordinates.
15
+ function shouldComposeModelMatrix(viewport, coordinateSystem) {
16
+ return coordinateSystem === _typed.COORDINATE_SYSTEM.CARTESIAN || coordinateSystem === _typed.COORDINATE_SYSTEM.METER_OFFSETS || coordinateSystem === _typed.COORDINATE_SYSTEM.DEFAULT && !viewport.isGeospatial;
17
+ }
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZWQiLCJyZXF1aXJlIiwic2hvdWxkQ29tcG9zZU1vZGVsTWF0cml4Iiwidmlld3BvcnQiLCJjb29yZGluYXRlU3lzdGVtIiwiQ09PUkRJTkFURV9TWVNURU0iLCJDQVJURVNJQU4iLCJNRVRFUl9PRkZTRVRTIiwiREVGQVVMVCIsImlzR2Vvc3BhdGlhbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYXN0ZXIvcmFzdGVyLW1lc2gtbGF5ZXIvbWF0cml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q09PUkRJTkFURV9TWVNURU0sIFZpZXdwb3J0LCBDb29yZGluYXRlU3lzdGVtfSBmcm9tICdAZGVjay5nbC9jb3JlL3R5cGVkJztcblxuLy8gb25seSBhcHBseSBjb21wb3NlTW9kZWxNYXRyaXggd2hlbiBpbiBjYXJ0ZXNpYW4gb3IgbWV0ZXJfb2Zmc2V0cyBjb29yZGluYXRlIHN5c3RlbVxuLy8gd2l0aCBgY29tcG9zZU1vZGVsTWF0cml4YCBlbmFibGVkLCB0aGUgcm90YXRpb24gcGFydCBvZiB0aGUgbGF5ZXIncyBtb2RlbE1hdHJpeCB3aWxsIGJlIGNvbXBvc2VkIHRvIGluc3RhbmNlJ3MgdHJhbnNmb3JtYXRpb25zXG4vLyBzaW5jZSByb3RhdGluZyBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGNhbiBub3QgcHJvdmlkZSBtZWFuaW5nZnVsIHJlc3VsdHMsIGhlbmNlIGBjb21wb3NlTW9kZWxNYXRyaXhgIGlzIGRpc2FibGVkXG4vLyB3aGVuIGluIExOR0xBVCBhbmQgTE5HTEFUX09GRlNFVCBjb29yZGluYXRlcy5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDb21wb3NlTW9kZWxNYXRyaXgoXG4gIHZpZXdwb3J0OiBWaWV3cG9ydCxcbiAgY29vcmRpbmF0ZVN5c3RlbTogQ29vcmRpbmF0ZVN5c3RlbVxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgY29vcmRpbmF0ZVN5c3RlbSA9PT0gQ09PUkRJTkFURV9TWVNURU0uQ0FSVEVTSUFOIHx8XG4gICAgY29vcmRpbmF0ZVN5c3RlbSA9PT0gQ09PUkRJTkFURV9TWVNURU0uTUVURVJfT0ZGU0VUUyB8fFxuICAgIChjb29yZGluYXRlU3lzdGVtID09PSBDT09SRElOQVRFX1NZU1RFTS5ERUZBVUxUICYmICF2aWV3cG9ydC5pc0dlb3NwYXRpYWwpXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUhBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyx3QkFBd0JBLENBQ3RDQyxRQUFrQixFQUNsQkMsZ0JBQWtDLEVBQ3pCO0VBQ1QsT0FDRUEsZ0JBQWdCLEtBQUtDLHdCQUFpQixDQUFDQyxTQUFTLElBQ2hERixnQkFBZ0IsS0FBS0Msd0JBQWlCLENBQUNFLGFBQWEsSUFDbkRILGdCQUFnQixLQUFLQyx3QkFBaUIsQ0FBQ0csT0FBTyxJQUFJLENBQUNMLFFBQVEsQ0FBQ00sWUFBYTtBQUU5RSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: "#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n gl_FragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+ var _default = exports["default"] = "#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n gl_FragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMS5mcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLW1lc2gtbGF5ZXItZnNcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG51bmlmb3JtIGJvb2wgaGFzVGV4dHVyZTtcblxudW5pZm9ybSBib29sIGZsYXRTaGFkaW5nO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzIgdlRleENvb3JkO1xudmFyeWluZyB2ZWMzIGNhbWVyYVBvc2l0aW9uO1xudmFyeWluZyB2ZWMzIG5vcm1hbHNfY29tbW9uc3BhY2U7XG52YXJ5aW5nIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2U7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS51diA9IHZUZXhDb29yZDtcbiAgdmVjNCBpbWFnZTtcbiAgREVDS0dMX0NSRUFURV9DT0xPUihpbWFnZSwgdlRleENvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIHZlYzMgbm9ybWFsO1xuICBpZiAoZmxhdFNoYWRpbmcpIHtcblxuLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuLy8gaGVhZGxlc3MuZ2wgcmVwb3J0cyB0aGUgZXh0ZW5zaW9uIGFzXG4vLyBhdmFpbGFibGUgYnV0IGRvZXMgbm90IHN1cHBvcnQgaXQgaW5cbi8vIHRoZSBzaGFkZXIuXG4jaWZkZWYgREVSSVZBVElWRVNfQVZBSUxBQkxFXG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKGRGZHgocG9zaXRpb25fY29tbW9uc3BhY2UueHl6KSwgZEZkeShwb3NpdGlvbl9jb21tb25zcGFjZS54eXopKSk7XG4jZWxzZVxuICAgIG5vcm1hbCA9IHZlYzMoMC4wLCAwLjAsIDEuMCk7XG4jZW5kaWZcbiAgfSBlbHNlIHtcbiAgICBub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuICB9XG5cbiAgdmVjMyBsaWdodENvbG9yID0gbGlnaHRpbmdfZ2V0TGlnaHRDb2xvcihpbWFnZS5yZ2IsIGNhbWVyYVBvc2l0aW9uLCBwb3NpdGlvbl9jb21tb25zcGFjZS54eXosIG5vcm1hbCk7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQobGlnaHRDb2xvciwgb3BhY2l0eSk7XG5cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihnbF9GcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,2 @@
1
+ declare const _default: "#define SHADER_NAME raster-mesh-layer-vs\n\n// Scale the model\nuniform float sizeScale;\nuniform bool composeModelMatrix;\n\n// Primitive attributes\nattribute vec3 positions;\nattribute vec3 normals;\nattribute vec3 colors;\nattribute vec2 texCoords;\n\n// Instance attributes\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute mat3 instanceModelMatrix;\nattribute vec3 instanceTranslation;\n\n// Outputs to fragment shader\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+ var _default = exports["default"] = "#define SHADER_NAME raster-mesh-layer-vs\n\n// Scale the model\nuniform float sizeScale;\nuniform bool composeModelMatrix;\n\n// Primitive attributes\nattribute vec3 positions;\nattribute vec3 normals;\nattribute vec3 colors;\nattribute vec2 texCoords;\n\n// Instance attributes\nattribute vec3 instancePositions;\nattribute vec3 instancePositions64Low;\nattribute vec4 instanceColors;\nattribute vec3 instancePickingColors;\nattribute mat3 instanceModelMatrix;\nattribute vec3 instanceTranslation;\n\n// Outputs to fragment shader\nvarying vec2 vTexCoord;\nvarying vec3 cameraPosition;\nvarying vec3 normals_commonspace;\nvarying vec4 position_commonspace;\nvarying vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMS52cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiNkZWZpbmUgU0hBREVSX05BTUUgcmFzdGVyLW1lc2gtbGF5ZXItdnNcblxuLy8gU2NhbGUgdGhlIG1vZGVsXG51bmlmb3JtIGZsb2F0IHNpemVTY2FsZTtcbnVuaWZvcm0gYm9vbCBjb21wb3NlTW9kZWxNYXRyaXg7XG5cbi8vIFByaW1pdGl2ZSBhdHRyaWJ1dGVzXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbnM7XG5hdHRyaWJ1dGUgdmVjMyBub3JtYWxzO1xuYXR0cmlidXRlIHZlYzMgY29sb3JzO1xuYXR0cmlidXRlIHZlYzIgdGV4Q29vcmRzO1xuXG4vLyBJbnN0YW5jZSBhdHRyaWJ1dGVzXG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9ycztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbmF0dHJpYnV0ZSBtYXQzIGluc3RhbmNlTW9kZWxNYXRyaXg7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVRyYW5zbGF0aW9uO1xuXG4vLyBPdXRwdXRzIHRvIGZyYWdtZW50IHNoYWRlclxudmFyeWluZyB2ZWMyIHZUZXhDb29yZDtcbnZhcnlpbmcgdmVjMyBjYW1lcmFQb3NpdGlvbjtcbnZhcnlpbmcgdmVjMyBub3JtYWxzX2NvbW1vbnNwYWNlO1xudmFyeWluZyB2ZWM0IHBvc2l0aW9uX2NvbW1vbnNwYWNlO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IGluc3RhbmNlUG9zaXRpb25zO1xuICBnZW9tZXRyeS51diA9IHRleENvb3JkcztcbiAgZ2VvbWV0cnkucGlja2luZ0NvbG9yID0gaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuXG4gIHZUZXhDb29yZCA9IHRleENvb3JkcztcbiAgY2FtZXJhUG9zaXRpb24gPSBwcm9qZWN0X3VDYW1lcmFQb3NpdGlvbjtcbiAgbm9ybWFsc19jb21tb25zcGFjZSA9IHByb2plY3Rfbm9ybWFsKGluc3RhbmNlTW9kZWxNYXRyaXggKiBub3JtYWxzKTtcbiAgdkNvbG9yID0gdmVjNChjb2xvcnMgKiBpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEpO1xuICBnZW9tZXRyeS5ub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuXG4gIHZlYzMgcG9zID0gKGluc3RhbmNlTW9kZWxNYXRyaXggKiBwb3NpdGlvbnMpICogc2l6ZVNjYWxlICsgaW5zdGFuY2VUcmFuc2xhdGlvbjtcblxuICBpZiAoY29tcG9zZU1vZGVsTWF0cml4KSB7XG4gICAgREVDS0dMX0ZJTFRFUl9TSVpFKHBvcywgZ2VvbWV0cnkpO1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zICsgaW5zdGFuY2VQb3NpdGlvbnMsIGluc3RhbmNlUG9zaXRpb25zNjRMb3csIHZlYzMoMC4wKSwgcG9zaXRpb25fY29tbW9uc3BhY2UpO1xuICB9XG4gIGVsc2Uge1xuICAgIHBvcyA9IHByb2plY3Rfc2l6ZShwb3MpO1xuICAgIERFQ0tHTF9GSUxURVJfU0laRShwb3MsIGdlb21ldHJ5KTtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfcG9zaXRpb25fdG9fY2xpcHNwYWNlKGluc3RhbmNlUG9zaXRpb25zLCBpbnN0YW5jZVBvc2l0aW9uczY0TG93LCBwb3MsIHBvc2l0aW9uX2NvbW1vbnNwYWNlKTtcbiAgfVxuXG4gIGdlb21ldHJ5LnBvc2l0aW9uID0gcG9zaXRpb25fY29tbW9uc3BhY2U7XG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcblxuICBERUNLR0xfRklMVEVSX0NPTE9SKHZDb2xvciwgZ2VvbWV0cnkpO1xufVxuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+ var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-mesh-layer-fs\n\nprecision highp float;\n\nuniform bool hasTexture;\n\nuniform bool flatShading;\nuniform float opacity;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n vec4 image;\n DECKGL_CREATE_COLOR(image, vTexCoord);\n\n DECKGL_MUTATE_COLOR(image, vTexCoord);\n\n vec3 normal;\n if (flatShading) {\n\n// This is necessary because\n// headless.gl reports the extension as\n// available but does not support it in\n// the shader.\n#ifdef DERIVATIVES_AVAILABLE\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n#else\n normal = vec3(0.0, 0.0, 1.0);\n#endif\n } else {\n normal = normals_commonspace;\n }\n\n vec3 lightColor = lighting_getLightColor(image.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, opacity);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMi5mcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbWVzaC1sYXllci1mc1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnVuaWZvcm0gYm9vbCBoYXNUZXh0dXJlO1xuXG51bmlmb3JtIGJvb2wgZmxhdFNoYWRpbmc7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbmluIHZlYzIgdlRleENvb3JkO1xuaW4gdmVjMyBjYW1lcmFQb3NpdGlvbjtcbmluIHZlYzMgbm9ybWFsc19jb21tb25zcGFjZTtcbmluIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2U7XG5pbiB2ZWM0IHZDb2xvcjtcblxub3V0IHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS51diA9IHZUZXhDb29yZDtcbiAgdmVjNCBpbWFnZTtcbiAgREVDS0dMX0NSRUFURV9DT0xPUihpbWFnZSwgdlRleENvb3JkKTtcblxuICBERUNLR0xfTVVUQVRFX0NPTE9SKGltYWdlLCB2VGV4Q29vcmQpO1xuXG4gIHZlYzMgbm9ybWFsO1xuICBpZiAoZmxhdFNoYWRpbmcpIHtcblxuLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZVxuLy8gaGVhZGxlc3MuZ2wgcmVwb3J0cyB0aGUgZXh0ZW5zaW9uIGFzXG4vLyBhdmFpbGFibGUgYnV0IGRvZXMgbm90IHN1cHBvcnQgaXQgaW5cbi8vIHRoZSBzaGFkZXIuXG4jaWZkZWYgREVSSVZBVElWRVNfQVZBSUxBQkxFXG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKGRGZHgocG9zaXRpb25fY29tbW9uc3BhY2UueHl6KSwgZEZkeShwb3NpdGlvbl9jb21tb25zcGFjZS54eXopKSk7XG4jZWxzZVxuICAgIG5vcm1hbCA9IHZlYzMoMC4wLCAwLjAsIDEuMCk7XG4jZW5kaWZcbiAgfSBlbHNlIHtcbiAgICBub3JtYWwgPSBub3JtYWxzX2NvbW1vbnNwYWNlO1xuICB9XG5cbiAgdmVjMyBsaWdodENvbG9yID0gbGlnaHRpbmdfZ2V0TGlnaHRDb2xvcihpbWFnZS5yZ2IsIGNhbWVyYVBvc2l0aW9uLCBwb3NpdGlvbl9jb21tb25zcGFjZS54eXosIG5vcm1hbCk7XG4gIGZyYWdDb2xvciA9IHZlYzQobGlnaHRDb2xvciwgb3BhY2l0eSk7XG5cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUihmcmFnQ29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME raster-mesh-layer-vs\n\n// Scale the model\nuniform float sizeScale;\nuniform bool composeModelMatrix;\n\n// Primitive attributes\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\n\n// Instance attributes\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin mat3 instanceModelMatrix;\nin vec3 instanceTranslation;\n\n// Outputs to fragment shader\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+ var _default = exports["default"] = "#version 300 es\n#define SHADER_NAME raster-mesh-layer-vs\n\n// Scale the model\nuniform float sizeScale;\nuniform bool composeModelMatrix;\n\n// Primitive attributes\nin vec3 positions;\nin vec3 normals;\nin vec3 colors;\nin vec2 texCoords;\n\n// Instance attributes\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec4 instanceColors;\nin vec3 instancePickingColors;\nin mat3 instanceModelMatrix;\nin vec3 instanceTranslation;\n\n// Outputs to fragment shader\nout vec2 vTexCoord;\nout vec3 cameraPosition;\nout vec3 normals_commonspace;\nout vec4 position_commonspace;\nout vec4 vColor;\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.uv = texCoords;\n geometry.pickingColor = instancePickingColors;\n\n vTexCoord = texCoords;\n cameraPosition = project_uCameraPosition;\n normals_commonspace = project_normal(instanceModelMatrix * normals);\n vColor = vec4(colors * instanceColors.rgb, instanceColors.a);\n geometry.normal = normals_commonspace;\n\n vec3 pos = (instanceModelMatrix * positions) * sizeScale + instanceTranslation;\n\n if (composeModelMatrix) {\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);\n }\n else {\n pos = project_size(pos);\n DECKGL_FILTER_SIZE(pos, geometry);\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);\n }\n\n geometry.position = position_commonspace;\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyLXdlYmdsMi52cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQgZGVmYXVsdCBgXFxcbiN2ZXJzaW9uIDMwMCBlc1xuI2RlZmluZSBTSEFERVJfTkFNRSByYXN0ZXItbWVzaC1sYXllci12c1xuXG4vLyBTY2FsZSB0aGUgbW9kZWxcbnVuaWZvcm0gZmxvYXQgc2l6ZVNjYWxlO1xudW5pZm9ybSBib29sIGNvbXBvc2VNb2RlbE1hdHJpeDtcblxuLy8gUHJpbWl0aXZlIGF0dHJpYnV0ZXNcbmluIHZlYzMgcG9zaXRpb25zO1xuaW4gdmVjMyBub3JtYWxzO1xuaW4gdmVjMyBjb2xvcnM7XG5pbiB2ZWMyIHRleENvb3JkcztcblxuLy8gSW5zdGFuY2UgYXR0cmlidXRlc1xuaW4gdmVjMyBpbnN0YW5jZVBvc2l0aW9ucztcbmluIHZlYzMgaW5zdGFuY2VQb3NpdGlvbnM2NExvdztcbmluIHZlYzQgaW5zdGFuY2VDb2xvcnM7XG5pbiB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbmluIG1hdDMgaW5zdGFuY2VNb2RlbE1hdHJpeDtcbmluIHZlYzMgaW5zdGFuY2VUcmFuc2xhdGlvbjtcblxuLy8gT3V0cHV0cyB0byBmcmFnbWVudCBzaGFkZXJcbm91dCB2ZWMyIHZUZXhDb29yZDtcbm91dCB2ZWMzIGNhbWVyYVBvc2l0aW9uO1xub3V0IHZlYzMgbm9ybWFsc19jb21tb25zcGFjZTtcbm91dCB2ZWM0IHBvc2l0aW9uX2NvbW1vbnNwYWNlO1xub3V0IHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4odm9pZCkge1xuICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VQb3NpdGlvbnM7XG4gIGdlb21ldHJ5LnV2ID0gdGV4Q29vcmRzO1xuICBnZW9tZXRyeS5waWNraW5nQ29sb3IgPSBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7XG5cbiAgdlRleENvb3JkID0gdGV4Q29vcmRzO1xuICBjYW1lcmFQb3NpdGlvbiA9IHByb2plY3RfdUNhbWVyYVBvc2l0aW9uO1xuICBub3JtYWxzX2NvbW1vbnNwYWNlID0gcHJvamVjdF9ub3JtYWwoaW5zdGFuY2VNb2RlbE1hdHJpeCAqIG5vcm1hbHMpO1xuICB2Q29sb3IgPSB2ZWM0KGNvbG9ycyAqIGluc3RhbmNlQ29sb3JzLnJnYiwgaW5zdGFuY2VDb2xvcnMuYSk7XG4gIGdlb21ldHJ5Lm5vcm1hbCA9IG5vcm1hbHNfY29tbW9uc3BhY2U7XG5cbiAgdmVjMyBwb3MgPSAoaW5zdGFuY2VNb2RlbE1hdHJpeCAqIHBvc2l0aW9ucykgKiBzaXplU2NhbGUgKyBpbnN0YW5jZVRyYW5zbGF0aW9uO1xuXG4gIGlmIChjb21wb3NlTW9kZWxNYXRyaXgpIHtcbiAgICBERUNLR0xfRklMVEVSX1NJWkUocG9zLCBnZW9tZXRyeSk7XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShwb3MgKyBpbnN0YW5jZVBvc2l0aW9ucywgaW5zdGFuY2VQb3NpdGlvbnM2NExvdywgdmVjMygwLjApLCBwb3NpdGlvbl9jb21tb25zcGFjZSk7XG4gIH1cbiAgZWxzZSB7XG4gICAgcG9zID0gcHJvamVjdF9zaXplKHBvcyk7XG4gICAgREVDS0dMX0ZJTFRFUl9TSVpFKHBvcywgZ2VvbWV0cnkpO1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UoaW5zdGFuY2VQb3NpdGlvbnMsIGluc3RhbmNlUG9zaXRpb25zNjRMb3csIHBvcywgcG9zaXRpb25fY29tbW9uc3BhY2UpO1xuICB9XG5cbiAgZ2VvbWV0cnkucG9zaXRpb24gPSBwb3NpdGlvbl9jb21tb25zcGFjZTtcbiAgREVDS0dMX0ZJTFRFUl9HTF9QT1NJVElPTihnbF9Qb3NpdGlvbiwgZ2VvbWV0cnkpO1xuXG4gIERFQ0tHTF9GSUxURVJfQ09MT1IodkNvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,22 @@
1
+ import { UpdateParameters } from '@deck.gl/core/typed';
2
+ import { SimpleMeshLayer, SimpleMeshLayerProps } from '@deck.gl/mesh-layers/typed';
3
+ import { Model } from '@luma.gl/core';
4
+ import { UniformsOptions } from '@luma.gl/webgl/src/classes/uniforms';
5
+ import type { RasterLayerAddedProps, ImageState } from '../types';
6
+ declare type Mesh = SimpleMeshLayerProps['mesh'];
7
+ export default class RasterMeshLayer extends SimpleMeshLayer<any, RasterLayerAddedProps> {
8
+ state: SimpleMeshLayer<RasterLayerAddedProps>['state'] & {
9
+ images: ImageState;
10
+ };
11
+ initializeState(): void;
12
+ getShaders(): any;
13
+ updateState(params: UpdateParameters<SimpleMeshLayer<any, RasterLayerAddedProps>>): void;
14
+ updateImages({ props, oldProps }: {
15
+ props: RasterLayerAddedProps;
16
+ oldProps: RasterLayerAddedProps;
17
+ }): void;
18
+ draw({ uniforms }: UniformsOptions): void;
19
+ finalizeState(): void;
20
+ protected getModel(mesh: Mesh): Model;
21
+ }
22
+ export {};