@deck.gl/geo-layers 8.10.0-alpha.4 → 8.10.0-alpha.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 (84) hide show
  1. package/dist/dist.dev.js +23 -666
  2. package/dist/es5/geo-cell-layer/GeoCellLayer.js +66 -69
  3. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -1
  4. package/dist/es5/geohash-layer/geohash-layer.js +18 -22
  5. package/dist/es5/geohash-layer/geohash-layer.js.map +1 -1
  6. package/dist/es5/great-circle-layer/great-circle-layer.js +2 -4
  7. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  8. package/dist/es5/h3-layers/h3-cluster-layer.js +85 -91
  9. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  10. package/dist/es5/h3-layers/h3-hexagon-layer.js +222 -234
  11. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  12. package/dist/es5/index.js.map +1 -1
  13. package/dist/es5/mesh-layer/mesh-layer.js +126 -136
  14. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  15. package/dist/es5/mvt-layer/mvt-layer.js +338 -350
  16. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  17. package/dist/es5/quadkey-layer/quadkey-layer.js +23 -27
  18. package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-layer.js +18 -22
  20. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  21. package/dist/es5/terrain-layer/terrain-layer.js +225 -234
  22. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  23. package/dist/es5/tile-3d-layer/tile-3d-layer.js +338 -354
  24. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  25. package/dist/es5/tile-layer/tile-layer.js +219 -234
  26. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  27. package/dist/es5/tileset-2d/tile-2d-header.js +160 -164
  28. package/dist/es5/tileset-2d/tile-2d-header.js.map +1 -1
  29. package/dist/es5/tileset-2d/tile-2d-traversal.js +118 -122
  30. package/dist/es5/tileset-2d/tile-2d-traversal.js.map +1 -1
  31. package/dist/es5/tileset-2d/tileset-2d.js +397 -411
  32. package/dist/es5/tileset-2d/tileset-2d.js.map +1 -1
  33. package/dist/es5/trips-layer/trips-layer.js +48 -52
  34. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  35. package/dist/es5/wms-layer/wms-layer.js +263 -274
  36. package/dist/es5/wms-layer/wms-layer.js.map +1 -1
  37. package/dist/esm/geo-cell-layer/GeoCellLayer.js +2 -5
  38. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -1
  39. package/dist/esm/geohash-layer/geohash-layer.js +2 -5
  40. package/dist/esm/geohash-layer/geohash-layer.js.map +1 -1
  41. package/dist/esm/great-circle-layer/great-circle-layer.js +2 -5
  42. package/dist/esm/great-circle-layer/great-circle-layer.js.map +1 -1
  43. package/dist/esm/h3-layers/h3-cluster-layer.js +2 -5
  44. package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
  45. package/dist/esm/h3-layers/h3-hexagon-layer.js +4 -8
  46. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js +55 -1
  49. package/dist/esm/mesh-layer/mesh-layer-fragment.glsl.js.map +1 -1
  50. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +80 -1
  51. package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
  52. package/dist/esm/mesh-layer/mesh-layer.js +2 -5
  53. package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
  54. package/dist/esm/mvt-layer/mvt-layer.js +2 -5
  55. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  56. package/dist/esm/quadkey-layer/quadkey-layer.js +2 -5
  57. package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -1
  58. package/dist/esm/s2-layer/s2-geometry.js +1 -1
  59. package/dist/esm/s2-layer/s2-geometry.js.map +1 -1
  60. package/dist/esm/s2-layer/s2-layer.js +2 -5
  61. package/dist/esm/s2-layer/s2-layer.js.map +1 -1
  62. package/dist/esm/terrain-layer/terrain-layer.js +3 -7
  63. package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
  64. package/dist/esm/tile-3d-layer/tile-3d-layer.js +7 -11
  65. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
  66. package/dist/esm/tile-layer/tile-layer.js +2 -5
  67. package/dist/esm/tile-layer/tile-layer.js.map +1 -1
  68. package/dist/esm/tileset-2d/tile-2d-header.js +19 -39
  69. package/dist/esm/tileset-2d/tile-2d-header.js.map +1 -1
  70. package/dist/esm/tileset-2d/tile-2d-traversal.js +6 -13
  71. package/dist/esm/tileset-2d/tile-2d-traversal.js.map +1 -1
  72. package/dist/esm/tileset-2d/tileset-2d.js +17 -34
  73. package/dist/esm/tileset-2d/tileset-2d.js.map +1 -1
  74. package/dist/esm/tileset-2d/utils.js +1 -1
  75. package/dist/esm/tileset-2d/utils.js.map +1 -1
  76. package/dist/esm/trips-layer/trips-layer.js +27 -10
  77. package/dist/esm/trips-layer/trips-layer.js.map +1 -1
  78. package/dist/esm/wms-layer/wms-layer.js +3 -7
  79. package/dist/esm/wms-layer/wms-layer.js.map +1 -1
  80. package/dist.min.js +111 -56
  81. package/package.json +2 -2
  82. package/src/index.ts +1 -0
  83. package/typed/index.d.ts +1 -0
  84. package/typed/index.d.ts.map +1 -1
@@ -9,22 +9,20 @@ exports.default = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
15
 
14
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
17
 
16
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
19
 
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
21
 
22
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
23
 
24
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
25
 
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
26
  var _core = require("@luma.gl/core");
29
27
 
30
28
  var _core2 = require("@deck.gl/core");
@@ -97,409 +95,395 @@ var Tile3DLayer = function (_CompositeLayer) {
97
95
  }
98
96
 
99
97
  _this = _super.call.apply(_super, [this].concat(args));
100
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
98
+ _this.state = void 0;
101
99
  return _this;
102
100
  }
103
101
 
104
- (0, _createClass2.default)(Tile3DLayer, [{
105
- key: "initializeState",
106
- value: function initializeState() {
107
- if ('onTileLoadFail' in this.props) {
108
- _core2.log.removed('onTileLoadFail', 'onTileError')();
109
- }
102
+ var _proto = Tile3DLayer.prototype;
110
103
 
111
- this.state = {
112
- layerMap: {},
113
- tileset3d: null,
114
- activeViewports: {},
115
- lastUpdatedViewports: null
116
- };
104
+ _proto.initializeState = function initializeState() {
105
+ if ('onTileLoadFail' in this.props) {
106
+ _core2.log.removed('onTileLoadFail', 'onTileError')();
117
107
  }
118
- }, {
119
- key: "isLoaded",
120
- get: function get() {
121
- var tileset3d = this.state.tileset3d;
122
- return tileset3d !== null && tileset3d.isLoaded();
123
- }
124
- }, {
125
- key: "shouldUpdateState",
126
- value: function shouldUpdateState(_ref) {
127
- var changeFlags = _ref.changeFlags;
128
- return changeFlags.somethingChanged;
108
+
109
+ this.state = {
110
+ layerMap: {},
111
+ tileset3d: null,
112
+ activeViewports: {},
113
+ lastUpdatedViewports: null
114
+ };
115
+ };
116
+
117
+ _proto.shouldUpdateState = function shouldUpdateState(_ref) {
118
+ var changeFlags = _ref.changeFlags;
119
+ return changeFlags.somethingChanged;
120
+ };
121
+
122
+ _proto.updateState = function updateState(_ref2) {
123
+ var props = _ref2.props,
124
+ oldProps = _ref2.oldProps,
125
+ changeFlags = _ref2.changeFlags;
126
+
127
+ if (props.data && props.data !== oldProps.data) {
128
+ this._loadTileset(props.data);
129
129
  }
130
- }, {
131
- key: "updateState",
132
- value: function updateState(_ref2) {
133
- var props = _ref2.props,
134
- oldProps = _ref2.oldProps,
135
- changeFlags = _ref2.changeFlags;
136
-
137
- if (props.data && props.data !== oldProps.data) {
138
- this._loadTileset(props.data);
139
- }
140
130
 
141
- if (changeFlags.viewportChanged) {
142
- var activeViewports = this.state.activeViewports;
143
- var viewportsNumber = Object.keys(activeViewports).length;
131
+ if (changeFlags.viewportChanged) {
132
+ var activeViewports = this.state.activeViewports;
133
+ var viewportsNumber = Object.keys(activeViewports).length;
144
134
 
145
- if (viewportsNumber) {
146
- this._updateTileset(activeViewports);
135
+ if (viewportsNumber) {
136
+ this._updateTileset(activeViewports);
147
137
 
148
- this.state.lastUpdatedViewports = activeViewports;
149
- this.state.activeViewports = {};
150
- }
138
+ this.state.lastUpdatedViewports = activeViewports;
139
+ this.state.activeViewports = {};
151
140
  }
141
+ }
152
142
 
153
- if (changeFlags.propsChanged) {
154
- var layerMap = this.state.layerMap;
143
+ if (changeFlags.propsChanged) {
144
+ var layerMap = this.state.layerMap;
155
145
 
156
- for (var key in layerMap) {
157
- layerMap[key].needsUpdate = true;
158
- }
146
+ for (var key in layerMap) {
147
+ layerMap[key].needsUpdate = true;
159
148
  }
160
149
  }
161
- }, {
162
- key: "activateViewport",
163
- value: function activateViewport(viewport) {
164
- var _this$state = this.state,
165
- activeViewports = _this$state.activeViewports,
166
- lastUpdatedViewports = _this$state.lastUpdatedViewports;
167
- this.internalState.viewport = viewport;
168
- activeViewports[viewport.id] = viewport;
169
- var lastViewport = lastUpdatedViewports === null || lastUpdatedViewports === void 0 ? void 0 : lastUpdatedViewports[viewport.id];
170
-
171
- if (!lastViewport || !viewport.equals(lastViewport)) {
172
- this.setChangeFlags({
173
- viewportChanged: true
174
- });
175
- this.setNeedsUpdate();
176
- }
150
+ };
151
+
152
+ _proto.activateViewport = function activateViewport(viewport) {
153
+ var _this$state = this.state,
154
+ activeViewports = _this$state.activeViewports,
155
+ lastUpdatedViewports = _this$state.lastUpdatedViewports;
156
+ this.internalState.viewport = viewport;
157
+ activeViewports[viewport.id] = viewport;
158
+ var lastViewport = lastUpdatedViewports === null || lastUpdatedViewports === void 0 ? void 0 : lastUpdatedViewports[viewport.id];
159
+
160
+ if (!lastViewport || !viewport.equals(lastViewport)) {
161
+ this.setChangeFlags({
162
+ viewportChanged: true
163
+ });
164
+ this.setNeedsUpdate();
177
165
  }
178
- }, {
179
- key: "getPickingInfo",
180
- value: function getPickingInfo(_ref3) {
181
- var info = _ref3.info,
182
- sourceLayer = _ref3.sourceLayer;
183
- var sourceTile = sourceLayer && sourceLayer.props.tile;
184
-
185
- if (info.picked) {
186
- info.object = sourceTile;
187
- }
166
+ };
188
167
 
189
- info.sourceTile = sourceTile;
190
- return info;
191
- }
192
- }, {
193
- key: "filterSubLayer",
194
- value: function filterSubLayer(_ref4) {
195
- var layer = _ref4.layer,
196
- viewport = _ref4.viewport;
197
- var _ref5 = layer.props,
198
- tile = _ref5.tile;
199
- var viewportId = viewport.id;
200
- return tile.selected && tile.viewportIds.includes(viewportId);
168
+ _proto.getPickingInfo = function getPickingInfo(_ref3) {
169
+ var info = _ref3.info,
170
+ sourceLayer = _ref3.sourceLayer;
171
+ var sourceTile = sourceLayer && sourceLayer.props.tile;
172
+
173
+ if (info.picked) {
174
+ info.object = sourceTile;
201
175
  }
202
- }, {
203
- key: "_updateAutoHighlight",
204
- value: function _updateAutoHighlight(info) {
205
- var sourceTile = info.sourceTile;
206
- var layerCache = this.state.layerMap[sourceTile === null || sourceTile === void 0 ? void 0 : sourceTile.id];
207
-
208
- if (layerCache && layerCache.layer) {
209
- layerCache.layer.updateAutoHighlight(info);
210
- }
176
+
177
+ info.sourceTile = sourceTile;
178
+ return info;
179
+ };
180
+
181
+ _proto.filterSubLayer = function filterSubLayer(_ref4) {
182
+ var layer = _ref4.layer,
183
+ viewport = _ref4.viewport;
184
+ var _ref5 = layer.props,
185
+ tile = _ref5.tile;
186
+ var viewportId = viewport.id;
187
+ return tile.selected && tile.viewportIds.includes(viewportId);
188
+ };
189
+
190
+ _proto._updateAutoHighlight = function _updateAutoHighlight(info) {
191
+ var sourceTile = info.sourceTile;
192
+ var layerCache = this.state.layerMap[sourceTile === null || sourceTile === void 0 ? void 0 : sourceTile.id];
193
+
194
+ if (layerCache && layerCache.layer) {
195
+ layerCache.layer.updateAutoHighlight(info);
211
196
  }
212
- }, {
213
- key: "_loadTileset",
214
- value: function () {
215
- var _loadTileset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tilesetUrl) {
216
- var _this$props$loadOptio, loadOptions, loader, options, actualTilesetUrl, preloadOptions, tilesetJson, tileset3d;
217
-
218
- return _regenerator.default.wrap(function _callee$(_context) {
219
- while (1) {
220
- switch (_context.prev = _context.next) {
221
- case 0:
222
- _this$props$loadOptio = this.props.loadOptions, loadOptions = _this$props$loadOptio === void 0 ? {} : _this$props$loadOptio;
223
- loader = this.props.loader || this.props.loaders;
224
-
225
- if (Array.isArray(loader)) {
226
- loader = loader[0];
227
- }
228
-
229
- options = {
230
- loadOptions: _objectSpread({}, loadOptions)
231
- };
232
- actualTilesetUrl = tilesetUrl;
233
-
234
- if (!loader.preload) {
235
- _context.next = 12;
236
- break;
237
- }
238
-
239
- _context.next = 8;
240
- return loader.preload(tilesetUrl, loadOptions);
241
-
242
- case 8:
243
- preloadOptions = _context.sent;
244
-
245
- if (preloadOptions.url) {
246
- actualTilesetUrl = preloadOptions.url;
247
- }
248
-
249
- if (preloadOptions.headers) {
250
- options.loadOptions.fetch = _objectSpread(_objectSpread({}, options.loadOptions.fetch), {}, {
251
- headers: preloadOptions.headers
252
- });
253
- }
254
-
255
- Object.assign(options, preloadOptions);
256
-
257
- case 12:
258
- _context.next = 14;
259
- return (0, _core3.load)(actualTilesetUrl, loader, options.loadOptions);
260
-
261
- case 14:
262
- tilesetJson = _context.sent;
263
- tileset3d = new _tiles.Tileset3D(tilesetJson, _objectSpread({
264
- onTileLoad: this._onTileLoad.bind(this),
265
- onTileUnload: this._onTileUnload.bind(this),
266
- onTileError: this.props.onTileError
267
- }, options));
268
- this.setState({
269
- tileset3d: tileset3d,
270
- layerMap: {}
197
+ };
198
+
199
+ _proto._loadTileset = function () {
200
+ var _loadTileset2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tilesetUrl) {
201
+ var _this$props$loadOptio, loadOptions, loader, options, actualTilesetUrl, preloadOptions, tilesetJson, tileset3d;
202
+
203
+ return _regenerator.default.wrap(function _callee$(_context) {
204
+ while (1) {
205
+ switch (_context.prev = _context.next) {
206
+ case 0:
207
+ _this$props$loadOptio = this.props.loadOptions, loadOptions = _this$props$loadOptio === void 0 ? {} : _this$props$loadOptio;
208
+ loader = this.props.loader || this.props.loaders;
209
+
210
+ if (Array.isArray(loader)) {
211
+ loader = loader[0];
212
+ }
213
+
214
+ options = {
215
+ loadOptions: _objectSpread({}, loadOptions)
216
+ };
217
+ actualTilesetUrl = tilesetUrl;
218
+
219
+ if (!loader.preload) {
220
+ _context.next = 12;
221
+ break;
222
+ }
223
+
224
+ _context.next = 8;
225
+ return loader.preload(tilesetUrl, loadOptions);
226
+
227
+ case 8:
228
+ preloadOptions = _context.sent;
229
+
230
+ if (preloadOptions.url) {
231
+ actualTilesetUrl = preloadOptions.url;
232
+ }
233
+
234
+ if (preloadOptions.headers) {
235
+ options.loadOptions.fetch = _objectSpread(_objectSpread({}, options.loadOptions.fetch), {}, {
236
+ headers: preloadOptions.headers
271
237
  });
238
+ }
272
239
 
273
- this._updateTileset(this.state.activeViewports);
240
+ Object.assign(options, preloadOptions);
274
241
 
275
- this.props.onTilesetLoad(tileset3d);
242
+ case 12:
243
+ _context.next = 14;
244
+ return (0, _core3.load)(actualTilesetUrl, loader, options.loadOptions);
276
245
 
277
- case 19:
278
- case "end":
279
- return _context.stop();
280
- }
281
- }
282
- }, _callee, this);
283
- }));
246
+ case 14:
247
+ tilesetJson = _context.sent;
248
+ tileset3d = new _tiles.Tileset3D(tilesetJson, _objectSpread({
249
+ onTileLoad: this._onTileLoad.bind(this),
250
+ onTileUnload: this._onTileUnload.bind(this),
251
+ onTileError: this.props.onTileError
252
+ }, options));
253
+ this.setState({
254
+ tileset3d: tileset3d,
255
+ layerMap: {}
256
+ });
284
257
 
285
- function _loadTileset(_x) {
286
- return _loadTileset2.apply(this, arguments);
287
- }
258
+ this._updateTileset(this.state.activeViewports);
288
259
 
289
- return _loadTileset;
290
- }()
291
- }, {
292
- key: "_onTileLoad",
293
- value: function _onTileLoad(tileHeader) {
294
- var lastUpdatedViewports = this.state.lastUpdatedViewports;
295
- this.props.onTileLoad(tileHeader);
260
+ this.props.onTilesetLoad(tileset3d);
296
261
 
297
- this._updateTileset(lastUpdatedViewports);
262
+ case 19:
263
+ case "end":
264
+ return _context.stop();
265
+ }
266
+ }
267
+ }, _callee, this);
268
+ }));
298
269
 
299
- this.setNeedsUpdate();
300
- }
301
- }, {
302
- key: "_onTileUnload",
303
- value: function _onTileUnload(tileHeader) {
304
- delete this.state.layerMap[tileHeader.id];
305
- this.props.onTileUnload(tileHeader);
270
+ function _loadTileset(_x) {
271
+ return _loadTileset2.apply(this, arguments);
306
272
  }
307
- }, {
308
- key: "_updateTileset",
309
- value: function _updateTileset(viewports) {
310
- var _this2 = this;
311
273
 
312
- if (!viewports) {
313
- return;
314
- }
274
+ return _loadTileset;
275
+ }();
315
276
 
316
- var tileset3d = this.state.tileset3d;
317
- var timeline = this.context.timeline;
318
- var viewportsNumber = Object.keys(viewports).length;
277
+ _proto._onTileLoad = function _onTileLoad(tileHeader) {
278
+ var lastUpdatedViewports = this.state.lastUpdatedViewports;
279
+ this.props.onTileLoad(tileHeader);
319
280
 
320
- if (!timeline || !viewportsNumber || !tileset3d) {
321
- return;
322
- }
281
+ this._updateTileset(lastUpdatedViewports);
323
282
 
324
- tileset3d.selectTiles(Object.values(viewports)).then(function (frameNumber) {
325
- var tilesetChanged = _this2.state.frameNumber !== frameNumber;
283
+ this.setNeedsUpdate();
284
+ };
326
285
 
327
- if (tilesetChanged) {
328
- _this2.setState({
329
- frameNumber: frameNumber
330
- });
331
- }
332
- });
333
- }
334
- }, {
335
- key: "_getSubLayer",
336
- value: function _getSubLayer(tileHeader, oldLayer) {
337
- if (!tileHeader.content) {
338
- return null;
339
- }
286
+ _proto._onTileUnload = function _onTileUnload(tileHeader) {
287
+ delete this.state.layerMap[tileHeader.id];
288
+ this.props.onTileUnload(tileHeader);
289
+ };
340
290
 
341
- switch (tileHeader.type) {
342
- case _tiles.TILE_TYPE.POINTCLOUD:
343
- return this._makePointCloudLayer(tileHeader, oldLayer);
291
+ _proto._updateTileset = function _updateTileset(viewports) {
292
+ var _this2 = this;
344
293
 
345
- case _tiles.TILE_TYPE.SCENEGRAPH:
346
- return this._make3DModelLayer(tileHeader);
294
+ if (!viewports) {
295
+ return;
296
+ }
347
297
 
348
- case _tiles.TILE_TYPE.MESH:
349
- return this._makeSimpleMeshLayer(tileHeader, oldLayer);
298
+ var tileset3d = this.state.tileset3d;
299
+ var timeline = this.context.timeline;
300
+ var viewportsNumber = Object.keys(viewports).length;
350
301
 
351
- default:
352
- throw new Error("Tile3DLayer: Failed to render layer of type ".concat(tileHeader.content.type));
353
- }
302
+ if (!timeline || !viewportsNumber || !tileset3d) {
303
+ return;
354
304
  }
355
- }, {
356
- key: "_makePointCloudLayer",
357
- value: function _makePointCloudLayer(tileHeader, oldLayer) {
358
- var _tileHeader$content = tileHeader.content,
359
- attributes = _tileHeader$content.attributes,
360
- pointCount = _tileHeader$content.pointCount,
361
- constantRGBA = _tileHeader$content.constantRGBA,
362
- cartographicOrigin = _tileHeader$content.cartographicOrigin,
363
- modelMatrix = _tileHeader$content.modelMatrix;
364
- var positions = attributes.positions,
365
- normals = attributes.normals,
366
- colors = attributes.colors;
367
-
368
- if (!positions) {
369
- return null;
305
+
306
+ tileset3d.selectTiles(Object.values(viewports)).then(function (frameNumber) {
307
+ var tilesetChanged = _this2.state.frameNumber !== frameNumber;
308
+
309
+ if (tilesetChanged) {
310
+ _this2.setState({
311
+ frameNumber: frameNumber
312
+ });
370
313
  }
314
+ });
315
+ };
371
316
 
372
- var data = oldLayer && oldLayer.props.data || {
373
- header: {
374
- vertexCount: pointCount
375
- },
376
- attributes: {
377
- POSITION: positions,
378
- NORMAL: normals,
379
- COLOR_0: colors
380
- }
381
- };
382
- var _this$props = this.props,
383
- pointSize = _this$props.pointSize,
384
- getPointColor = _this$props.getPointColor;
385
- var SubLayerClass = this.getSubLayerClass('pointcloud', _layers.PointCloudLayer);
386
- return new SubLayerClass({
387
- pointSize: pointSize
388
- }, this.getSubLayerProps({
389
- id: 'pointcloud'
390
- }), {
391
- id: "".concat(this.id, "-pointcloud-").concat(tileHeader.id),
392
- tile: tileHeader,
393
- data: data,
394
- coordinateSystem: _core2.COORDINATE_SYSTEM.METER_OFFSETS,
395
- coordinateOrigin: cartographicOrigin,
396
- modelMatrix: modelMatrix,
397
- getColor: constantRGBA || getPointColor,
398
- _offset: 0
399
- });
317
+ _proto._getSubLayer = function _getSubLayer(tileHeader, oldLayer) {
318
+ if (!tileHeader.content) {
319
+ return null;
400
320
  }
401
- }, {
402
- key: "_make3DModelLayer",
403
- value: function _make3DModelLayer(tileHeader) {
404
- var _tileHeader$content2 = tileHeader.content,
405
- gltf = _tileHeader$content2.gltf,
406
- instances = _tileHeader$content2.instances,
407
- cartographicOrigin = _tileHeader$content2.cartographicOrigin,
408
- modelMatrix = _tileHeader$content2.modelMatrix;
409
- var SubLayerClass = this.getSubLayerClass('scenegraph', _meshLayers.ScenegraphLayer);
410
- return new SubLayerClass({
411
- _lighting: 'pbr'
412
- }, this.getSubLayerProps({
413
- id: 'scenegraph'
414
- }), {
415
- id: "".concat(this.id, "-scenegraph-").concat(tileHeader.id),
416
- tile: tileHeader,
417
- data: instances || SINGLE_DATA,
418
- scenegraph: gltf,
419
- coordinateSystem: _core2.COORDINATE_SYSTEM.METER_OFFSETS,
420
- coordinateOrigin: cartographicOrigin,
421
- modelMatrix: modelMatrix,
422
- getTransformMatrix: function getTransformMatrix(instance) {
423
- return instance.modelMatrix;
424
- },
425
- getPosition: [0, 0, 0],
426
- _offset: 0
427
- });
321
+
322
+ switch (tileHeader.type) {
323
+ case _tiles.TILE_TYPE.POINTCLOUD:
324
+ return this._makePointCloudLayer(tileHeader, oldLayer);
325
+
326
+ case _tiles.TILE_TYPE.SCENEGRAPH:
327
+ return this._make3DModelLayer(tileHeader);
328
+
329
+ case _tiles.TILE_TYPE.MESH:
330
+ return this._makeSimpleMeshLayer(tileHeader, oldLayer);
331
+
332
+ default:
333
+ throw new Error("Tile3DLayer: Failed to render layer of type ".concat(tileHeader.content.type));
428
334
  }
429
- }, {
430
- key: "_makeSimpleMeshLayer",
431
- value: function _makeSimpleMeshLayer(tileHeader, oldLayer) {
432
- var content = tileHeader.content;
433
- var attributes = content.attributes,
434
- indices = content.indices,
435
- modelMatrix = content.modelMatrix,
436
- cartographicOrigin = content.cartographicOrigin,
437
- _content$coordinateSy = content.coordinateSystem,
438
- coordinateSystem = _content$coordinateSy === void 0 ? _core2.COORDINATE_SYSTEM.METER_OFFSETS : _content$coordinateSy,
439
- material = content.material,
440
- featureIds = content.featureIds;
441
- var _getMeshColor = this.props._getMeshColor;
442
- var geometry = oldLayer && oldLayer.props.mesh || new _core.Geometry({
443
- drawMode: 4,
444
- attributes: getMeshGeometry(attributes),
445
- indices: indices
446
- });
447
- var SubLayerClass = this.getSubLayerClass('mesh', _meshLayer.default);
448
- return new SubLayerClass(this.getSubLayerProps({
449
- id: 'mesh'
450
- }), {
451
- id: "".concat(this.id, "-mesh-").concat(tileHeader.id),
452
- tile: tileHeader,
453
- mesh: geometry,
454
- data: SINGLE_DATA,
455
- getColor: _getMeshColor(tileHeader),
456
- pbrMaterial: material,
457
- modelMatrix: modelMatrix,
458
- coordinateOrigin: cartographicOrigin,
459
- coordinateSystem: coordinateSystem,
460
- featureIds: featureIds,
461
- _offset: 0
462
- });
335
+ };
336
+
337
+ _proto._makePointCloudLayer = function _makePointCloudLayer(tileHeader, oldLayer) {
338
+ var _tileHeader$content = tileHeader.content,
339
+ attributes = _tileHeader$content.attributes,
340
+ pointCount = _tileHeader$content.pointCount,
341
+ constantRGBA = _tileHeader$content.constantRGBA,
342
+ cartographicOrigin = _tileHeader$content.cartographicOrigin,
343
+ modelMatrix = _tileHeader$content.modelMatrix;
344
+ var positions = attributes.positions,
345
+ normals = attributes.normals,
346
+ colors = attributes.colors;
347
+
348
+ if (!positions) {
349
+ return null;
463
350
  }
464
- }, {
465
- key: "renderLayers",
466
- value: function renderLayers() {
467
- var _this3 = this;
468
-
469
- var _this$state2 = this.state,
470
- tileset3d = _this$state2.tileset3d,
471
- layerMap = _this$state2.layerMap;
472
351
 
473
- if (!tileset3d) {
474
- return null;
352
+ var data = oldLayer && oldLayer.props.data || {
353
+ header: {
354
+ vertexCount: pointCount
355
+ },
356
+ attributes: {
357
+ POSITION: positions,
358
+ NORMAL: normals,
359
+ COLOR_0: colors
475
360
  }
361
+ };
362
+ var _this$props = this.props,
363
+ pointSize = _this$props.pointSize,
364
+ getPointColor = _this$props.getPointColor;
365
+ var SubLayerClass = this.getSubLayerClass('pointcloud', _layers.PointCloudLayer);
366
+ return new SubLayerClass({
367
+ pointSize: pointSize
368
+ }, this.getSubLayerProps({
369
+ id: 'pointcloud'
370
+ }), {
371
+ id: "".concat(this.id, "-pointcloud-").concat(tileHeader.id),
372
+ tile: tileHeader,
373
+ data: data,
374
+ coordinateSystem: _core2.COORDINATE_SYSTEM.METER_OFFSETS,
375
+ coordinateOrigin: cartographicOrigin,
376
+ modelMatrix: modelMatrix,
377
+ getColor: constantRGBA || getPointColor,
378
+ _offset: 0
379
+ });
380
+ };
381
+
382
+ _proto._make3DModelLayer = function _make3DModelLayer(tileHeader) {
383
+ var _tileHeader$content2 = tileHeader.content,
384
+ gltf = _tileHeader$content2.gltf,
385
+ instances = _tileHeader$content2.instances,
386
+ cartographicOrigin = _tileHeader$content2.cartographicOrigin,
387
+ modelMatrix = _tileHeader$content2.modelMatrix;
388
+ var SubLayerClass = this.getSubLayerClass('scenegraph', _meshLayers.ScenegraphLayer);
389
+ return new SubLayerClass({
390
+ _lighting: 'pbr'
391
+ }, this.getSubLayerProps({
392
+ id: 'scenegraph'
393
+ }), {
394
+ id: "".concat(this.id, "-scenegraph-").concat(tileHeader.id),
395
+ tile: tileHeader,
396
+ data: instances || SINGLE_DATA,
397
+ scenegraph: gltf,
398
+ coordinateSystem: _core2.COORDINATE_SYSTEM.METER_OFFSETS,
399
+ coordinateOrigin: cartographicOrigin,
400
+ modelMatrix: modelMatrix,
401
+ getTransformMatrix: function getTransformMatrix(instance) {
402
+ return instance.modelMatrix;
403
+ },
404
+ getPosition: [0, 0, 0],
405
+ _offset: 0
406
+ });
407
+ };
408
+
409
+ _proto._makeSimpleMeshLayer = function _makeSimpleMeshLayer(tileHeader, oldLayer) {
410
+ var content = tileHeader.content;
411
+ var attributes = content.attributes,
412
+ indices = content.indices,
413
+ modelMatrix = content.modelMatrix,
414
+ cartographicOrigin = content.cartographicOrigin,
415
+ _content$coordinateSy = content.coordinateSystem,
416
+ coordinateSystem = _content$coordinateSy === void 0 ? _core2.COORDINATE_SYSTEM.METER_OFFSETS : _content$coordinateSy,
417
+ material = content.material,
418
+ featureIds = content.featureIds;
419
+ var _getMeshColor = this.props._getMeshColor;
420
+ var geometry = oldLayer && oldLayer.props.mesh || new _core.Geometry({
421
+ drawMode: 4,
422
+ attributes: getMeshGeometry(attributes),
423
+ indices: indices
424
+ });
425
+ var SubLayerClass = this.getSubLayerClass('mesh', _meshLayer.default);
426
+ return new SubLayerClass(this.getSubLayerProps({
427
+ id: 'mesh'
428
+ }), {
429
+ id: "".concat(this.id, "-mesh-").concat(tileHeader.id),
430
+ tile: tileHeader,
431
+ mesh: geometry,
432
+ data: SINGLE_DATA,
433
+ getColor: _getMeshColor(tileHeader),
434
+ pbrMaterial: material,
435
+ modelMatrix: modelMatrix,
436
+ coordinateOrigin: cartographicOrigin,
437
+ coordinateSystem: coordinateSystem,
438
+ featureIds: featureIds,
439
+ _offset: 0
440
+ });
441
+ };
442
+
443
+ _proto.renderLayers = function renderLayers() {
444
+ var _this3 = this;
445
+
446
+ var _this$state2 = this.state,
447
+ tileset3d = _this$state2.tileset3d,
448
+ layerMap = _this$state2.layerMap;
449
+
450
+ if (!tileset3d) {
451
+ return null;
452
+ }
476
453
 
477
- return tileset3d.tiles.map(function (tile) {
478
- var layerCache = layerMap[tile.id] = layerMap[tile.id] || {
479
- tile: tile
480
- };
481
- var layer = layerCache.layer;
482
-
483
- if (tile.selected) {
484
- if (!layer) {
485
- layer = _this3._getSubLayer(tile);
486
- } else if (layerCache.needsUpdate) {
487
- layer = _this3._getSubLayer(tile, layer);
488
- layerCache.needsUpdate = false;
489
- }
454
+ return tileset3d.tiles.map(function (tile) {
455
+ var layerCache = layerMap[tile.id] = layerMap[tile.id] || {
456
+ tile: tile
457
+ };
458
+ var layer = layerCache.layer;
459
+
460
+ if (tile.selected) {
461
+ if (!layer) {
462
+ layer = _this3._getSubLayer(tile);
463
+ } else if (layerCache.needsUpdate) {
464
+ layer = _this3._getSubLayer(tile, layer);
465
+ layerCache.needsUpdate = false;
490
466
  }
467
+ }
491
468
 
492
- layerCache.layer = layer;
493
- return layer;
494
- }).filter(Boolean);
469
+ layerCache.layer = layer;
470
+ return layer;
471
+ }).filter(Boolean);
472
+ };
473
+
474
+ (0, _createClass2.default)(Tile3DLayer, [{
475
+ key: "isLoaded",
476
+ get: function get() {
477
+ var tileset3d = this.state.tileset3d;
478
+ return tileset3d !== null && tileset3d.isLoaded();
495
479
  }
496
480
  }]);
497
481
  return Tile3DLayer;
498
482
  }(_core2.CompositeLayer);
499
483
 
500
484
  exports.default = Tile3DLayer;
501
- (0, _defineProperty2.default)(Tile3DLayer, "defaultProps", defaultProps);
502
- (0, _defineProperty2.default)(Tile3DLayer, "layerName", 'Tile3DLayer');
485
+ Tile3DLayer.defaultProps = defaultProps;
486
+ Tile3DLayer.layerName = 'Tile3DLayer';
503
487
 
504
488
  function getMeshGeometry(contentAttributes) {
505
489
  var attributes = {};