@loaders.gl/tiles 4.0.0-alpha.6 → 4.0.0-alpha.7

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 (45) hide show
  1. package/dist/constants.d.ts +6 -0
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +0 -1
  4. package/dist/dist.min.js +429 -187
  5. package/dist/es5/constants.js.map +1 -1
  6. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
  7. package/dist/es5/tileset/tile-3d.js +42 -71
  8. package/dist/es5/tileset/tile-3d.js.map +1 -1
  9. package/dist/es5/tileset/tileset-3d.js +68 -103
  10. package/dist/es5/tileset/tileset-3d.js.map +1 -1
  11. package/dist/es5/tileset/tileset-cache.js +4 -7
  12. package/dist/es5/tileset/tileset-cache.js.map +1 -1
  13. package/dist/es5/tileset/tileset-traverser.js +12 -19
  14. package/dist/es5/tileset/tileset-traverser.js.map +1 -1
  15. package/dist/esm/constants.js.map +1 -1
  16. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
  17. package/dist/esm/tileset/tile-3d.js +40 -71
  18. package/dist/esm/tileset/tile-3d.js.map +1 -1
  19. package/dist/esm/tileset/tileset-3d.js +64 -95
  20. package/dist/esm/tileset/tileset-3d.js.map +1 -1
  21. package/dist/esm/tileset/tileset-cache.js +4 -7
  22. package/dist/esm/tileset/tileset-cache.js.map +1 -1
  23. package/dist/esm/tileset/tileset-traverser.js +9 -16
  24. package/dist/esm/tileset/tileset-traverser.js.map +1 -1
  25. package/dist/tileset/helpers/3d-tiles-options.d.ts +3 -2
  26. package/dist/tileset/helpers/3d-tiles-options.d.ts.map +1 -1
  27. package/dist/tileset/tile-3d.d.ts +37 -21
  28. package/dist/tileset/tile-3d.d.ts.map +1 -1
  29. package/dist/tileset/tile-3d.js +57 -43
  30. package/dist/tileset/tileset-3d.d.ts +90 -43
  31. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  32. package/dist/tileset/tileset-3d.js +110 -128
  33. package/dist/tileset/tileset-cache.d.ts +5 -4
  34. package/dist/tileset/tileset-cache.d.ts.map +1 -1
  35. package/dist/tileset/tileset-cache.js +4 -10
  36. package/dist/tileset/tileset-traverser.d.ts +32 -21
  37. package/dist/tileset/tileset-traverser.d.ts.map +1 -1
  38. package/dist/tileset/tileset-traverser.js +23 -32
  39. package/package.json +8 -5
  40. package/src/constants.ts +18 -0
  41. package/src/tileset/helpers/3d-tiles-options.ts +3 -1
  42. package/src/tileset/tile-3d.ts +68 -109
  43. package/src/tileset/tileset-3d.ts +182 -217
  44. package/src/tileset/tileset-cache.ts +20 -15
  45. package/src/tileset/tileset-traverser.ts +52 -65
@@ -68,7 +68,7 @@ var TILES_LOAD_FAILED = 'Failed Tile Loads';
68
68
  var POINTS_COUNT = 'Points/Vertices';
69
69
  var TILES_GPU_MEMORY = 'Tile Memory Use';
70
70
  var Tileset3D = function () {
71
- function Tileset3D(json, options) {
71
+ function Tileset3D(tileset, options) {
72
72
  (0, _classCallCheck2.default)(this, Tileset3D);
73
73
  (0, _defineProperty2.default)(this, "options", void 0);
74
74
  (0, _defineProperty2.default)(this, "loadOptions", void 0);
@@ -82,14 +82,14 @@ var Tileset3D = function () {
82
82
  (0, _defineProperty2.default)(this, "lodMetricType", void 0);
83
83
  (0, _defineProperty2.default)(this, "lodMetricValue", void 0);
84
84
  (0, _defineProperty2.default)(this, "refine", void 0);
85
- (0, _defineProperty2.default)(this, "root", void 0);
86
- (0, _defineProperty2.default)(this, "roots", void 0);
87
- (0, _defineProperty2.default)(this, "asset", void 0);
88
- (0, _defineProperty2.default)(this, "description", void 0);
85
+ (0, _defineProperty2.default)(this, "root", null);
86
+ (0, _defineProperty2.default)(this, "roots", {});
87
+ (0, _defineProperty2.default)(this, "asset", {});
88
+ (0, _defineProperty2.default)(this, "description", '');
89
89
  (0, _defineProperty2.default)(this, "properties", void 0);
90
- (0, _defineProperty2.default)(this, "extras", void 0);
91
- (0, _defineProperty2.default)(this, "attributions", void 0);
92
- (0, _defineProperty2.default)(this, "credits", void 0);
90
+ (0, _defineProperty2.default)(this, "extras", null);
91
+ (0, _defineProperty2.default)(this, "attributions", {});
92
+ (0, _defineProperty2.default)(this, "credits", {});
93
93
  (0, _defineProperty2.default)(this, "stats", void 0);
94
94
  (0, _defineProperty2.default)(this, "contentFormats", {
95
95
  draco: false,
@@ -97,81 +97,52 @@ var Tileset3D = function () {
97
97
  dds: false,
98
98
  ktx2: false
99
99
  });
100
- (0, _defineProperty2.default)(this, "traverseCounter", void 0);
101
- (0, _defineProperty2.default)(this, "geometricError", void 0);
102
- (0, _defineProperty2.default)(this, "selectedTiles", void 0);
103
- (0, _defineProperty2.default)(this, "updatePromise", null);
104
- (0, _defineProperty2.default)(this, "tilesetInitializationPromise", void 0);
105
- (0, _defineProperty2.default)(this, "cartographicCenter", void 0);
106
- (0, _defineProperty2.default)(this, "cartesianCenter", void 0);
107
- (0, _defineProperty2.default)(this, "zoom", void 0);
108
- (0, _defineProperty2.default)(this, "boundingVolume", void 0);
109
- (0, _defineProperty2.default)(this, "gpuMemoryUsageInBytes", void 0);
110
- (0, _defineProperty2.default)(this, "dynamicScreenSpaceErrorComputedDensity", void 0);
100
+ (0, _defineProperty2.default)(this, "cartographicCenter", null);
101
+ (0, _defineProperty2.default)(this, "cartesianCenter", null);
102
+ (0, _defineProperty2.default)(this, "zoom", 1);
103
+ (0, _defineProperty2.default)(this, "boundingVolume", null);
104
+ (0, _defineProperty2.default)(this, "dynamicScreenSpaceErrorComputedDensity", 0.0);
105
+ (0, _defineProperty2.default)(this, "maximumMemoryUsage", 32);
106
+ (0, _defineProperty2.default)(this, "gpuMemoryUsageInBytes", 0);
107
+ (0, _defineProperty2.default)(this, "_frameNumber", 0);
108
+ (0, _defineProperty2.default)(this, "_queryParams", {});
109
+ (0, _defineProperty2.default)(this, "_extensionsUsed", []);
110
+ (0, _defineProperty2.default)(this, "_tiles", {});
111
+ (0, _defineProperty2.default)(this, "_pendingCount", 0);
112
+ (0, _defineProperty2.default)(this, "selectedTiles", []);
113
+ (0, _defineProperty2.default)(this, "traverseCounter", 0);
114
+ (0, _defineProperty2.default)(this, "geometricError", 0);
115
+ (0, _defineProperty2.default)(this, "lastUpdatedVieports", null);
116
+ (0, _defineProperty2.default)(this, "_requestedTiles", []);
117
+ (0, _defineProperty2.default)(this, "_emptyTiles", []);
118
+ (0, _defineProperty2.default)(this, "frameStateData", {});
111
119
  (0, _defineProperty2.default)(this, "_traverser", void 0);
112
- (0, _defineProperty2.default)(this, "_cache", void 0);
120
+ (0, _defineProperty2.default)(this, "_cache", new _tilesetCache.TilesetCache());
113
121
  (0, _defineProperty2.default)(this, "_requestScheduler", void 0);
114
- (0, _defineProperty2.default)(this, "_frameNumber", void 0);
115
- (0, _defineProperty2.default)(this, "_queryParamsString", void 0);
116
- (0, _defineProperty2.default)(this, "_queryParams", void 0);
117
- (0, _defineProperty2.default)(this, "_extensionsUsed", void 0);
118
- (0, _defineProperty2.default)(this, "_tiles", void 0);
119
- (0, _defineProperty2.default)(this, "_pendingCount", void 0);
120
- (0, _defineProperty2.default)(this, "lastUpdatedVieports", void 0);
121
- (0, _defineProperty2.default)(this, "_requestedTiles", void 0);
122
- (0, _defineProperty2.default)(this, "_emptyTiles", void 0);
123
- (0, _defineProperty2.default)(this, "frameStateData", void 0);
124
- (0, _defineProperty2.default)(this, "maximumMemoryUsage", void 0);
125
- (0, _loaderUtils.assert)(json);
122
+ (0, _defineProperty2.default)(this, "updatePromise", null);
123
+ (0, _defineProperty2.default)(this, "tilesetInitializationPromise", void 0);
126
124
  this.options = _objectSpread(_objectSpread({}, DEFAULT_PROPS), options);
127
- this.tileset = json;
128
- this.loader = json.loader;
129
- this.type = json.type;
130
- this.url = json.url;
131
- this.basePath = json.basePath || _loaderUtils.path.dirname(this.url);
125
+ this.tileset = tileset;
126
+ this.loader = tileset.loader;
127
+ this.type = tileset.type;
128
+ this.url = tileset.url;
129
+ this.basePath = tileset.basePath || _loaderUtils.path.dirname(this.url);
132
130
  this.modelMatrix = this.options.modelMatrix;
133
131
  this.ellipsoid = this.options.ellipsoid;
134
- this.lodMetricType = json.lodMetricType;
135
- this.lodMetricValue = json.lodMetricValue;
136
- this.refine = json.root.refine;
132
+ this.lodMetricType = tileset.lodMetricType;
133
+ this.lodMetricValue = tileset.lodMetricValue;
134
+ this.refine = tileset.root.refine;
137
135
  this.loadOptions = this.options.loadOptions || {};
138
- this.root = null;
139
- this.roots = {};
140
- this.cartographicCenter = null;
141
- this.cartesianCenter = null;
142
- this.zoom = 1;
143
- this.boundingVolume = null;
144
- this.traverseCounter = 0;
145
- this.geometricError = 0;
146
136
  this._traverser = this._initializeTraverser();
147
- this._cache = new _tilesetCache.TilesetCache();
148
137
  this._requestScheduler = new _loaderUtils.RequestScheduler({
149
138
  throttleRequests: this.options.throttleRequests,
150
139
  maxRequests: this.options.maxRequests
151
140
  });
152
- this._frameNumber = 0;
153
- this._pendingCount = 0;
154
- this._tiles = {};
155
- this.selectedTiles = [];
156
- this._emptyTiles = [];
157
- this._requestedTiles = [];
158
- this.frameStateData = {};
159
- this.lastUpdatedVieports = null;
160
- this._queryParams = {};
161
- this._queryParamsString = '';
162
- this.maximumMemoryUsage = this.options.maximumMemoryUsage || 32;
163
- this.gpuMemoryUsageInBytes = 0;
164
141
  this.stats = new _stats.Stats({
165
142
  id: this.url
166
143
  });
167
144
  this._initializeStats();
168
- this._extensionsUsed = undefined;
169
- this.dynamicScreenSpaceErrorComputedDensity = 0.0;
170
- this.extras = null;
171
- this.asset = {};
172
- this.credits = {};
173
- this.description = this.options.description || '';
174
- this.tilesetInitializationPromise = this._initializeTileSet(json);
145
+ this.tilesetInitializationPromise = this._initializeTileSet(tileset);
175
146
  }
176
147
  (0, _createClass2.default)(Tileset3D, [{
177
148
  key: "destroy",
@@ -196,10 +167,7 @@ var Tileset3D = function () {
196
167
  }, {
197
168
  key: "queryParams",
198
169
  get: function get() {
199
- if (!this._queryParamsString) {
200
- this._queryParamsString = getQueryParamString(this._queryParams);
201
- }
202
- return this._queryParamsString;
170
+ return new URLSearchParams(this._queryParams).toString();
203
171
  }
204
172
  }, {
205
173
  key: "setProps",
@@ -218,12 +186,12 @@ var Tileset3D = function () {
218
186
  if (isDataUrl) {
219
187
  return tilePath;
220
188
  }
221
- return "".concat(tilePath).concat(this.queryParams);
189
+ return "".concat(tilePath).concat(tilePath.includes('?') ? '&' : '?').concat(this.queryParams);
222
190
  }
223
191
  }, {
224
192
  key: "hasExtension",
225
193
  value: function hasExtension(extensionName) {
226
- return Boolean(this._extensionsUsed && this._extensionsUsed.indexOf(extensionName) > -1);
194
+ return Boolean(this._extensionsUsed.indexOf(extensionName) > -1);
227
195
  }
228
196
  }, {
229
197
  key: "update",
@@ -300,9 +268,9 @@ var Tileset3D = function () {
300
268
  try {
301
269
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
302
270
  var viewport = _step.value;
303
- var _id = viewport.id;
304
- if (this._needTraverse(_id)) {
305
- viewportsToTraverse.push(_id);
271
+ var id = viewport.id;
272
+ if (this._needTraverse(id)) {
273
+ viewportsToTraverse.push(id);
306
274
  } else {
307
275
  this.traverseCounter--;
308
276
  }
@@ -317,15 +285,15 @@ var Tileset3D = function () {
317
285
  try {
318
286
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
319
287
  var _viewport = _step2.value;
320
- var _id2 = _viewport.id;
321
- if (!this.roots[_id2]) {
322
- this.roots[_id2] = this._initializeTileHeaders(this.tileset, null);
288
+ var _id = _viewport.id;
289
+ if (!this.roots[_id]) {
290
+ this.roots[_id] = this._initializeTileHeaders(this.tileset, null);
323
291
  }
324
- if (!viewportsToTraverse.includes(_id2)) {
292
+ if (!viewportsToTraverse.includes(_id)) {
325
293
  continue;
326
294
  }
327
295
  var frameState = (0, _frameState.getFrameState)(_viewport, this._frameNumber);
328
- this._traverser.traverse(this.roots[_id2], frameState, this.options);
296
+ this._traverser.traverse(this.roots[_id], frameState, this.options);
329
297
  }
330
298
  } catch (err) {
331
299
  _iterator2.e(err);
@@ -559,7 +527,6 @@ var Tileset3D = function () {
559
527
  key: "calculateViewPropsTiles3D",
560
528
  value: function calculateViewPropsTiles3D() {
561
529
  var root = this.root;
562
- (0, _loaderUtils.assert)(root);
563
530
  var center = root.boundingVolume.center;
564
531
  if (!center) {
565
532
  console.warn('center was not pre-calculated for the root tile');
@@ -608,8 +575,16 @@ var Tileset3D = function () {
608
575
  _step7;
609
576
  try {
610
577
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
578
+ var _childTile$contentUrl;
611
579
  var childHeader = _step7.value;
612
580
  var childTile = new _tile3d.Tile3D(this, childHeader, _tile5);
581
+ if ((_childTile$contentUrl = childTile.contentUrl) !== null && _childTile$contentUrl !== void 0 && _childTile$contentUrl.includes('?session=')) {
582
+ var _url = new URL(childTile.contentUrl);
583
+ var session = _url.searchParams.get('session');
584
+ if (session) {
585
+ this._queryParams.session = session;
586
+ }
587
+ }
613
588
  _tile5.children.push(childTile);
614
589
  childTile.depth = _tile5.depth + 1;
615
590
  stack.push(childTile);
@@ -667,7 +642,7 @@ var Tileset3D = function () {
667
642
  case 7:
668
643
  _context3.prev = 7;
669
644
  _context3.t0 = _context3["catch"](0);
670
- this._onTileLoadError(tile, _context3.t0);
645
+ this._onTileLoadError(tile, _context3.t0 instanceof Error ? _context3.t0 : new Error('load failed'));
671
646
  case 10:
672
647
  _context3.prev = 10;
673
648
  this._onEndTileLoading();
@@ -768,13 +743,13 @@ var Tileset3D = function () {
768
743
  value: function _updateCacheStats(tile) {
769
744
  this.stats.get(TILES_LOADED).incrementCount();
770
745
  this.stats.get(TILES_IN_MEMORY).incrementCount();
771
- this.gpuMemoryUsageInBytes += tile.content.byteLength || 0;
746
+ this.gpuMemoryUsageInBytes += tile.gpuMemoryUsageInBytes || 0;
772
747
  this.stats.get(TILES_GPU_MEMORY).count = this.gpuMemoryUsageInBytes;
773
748
  }
774
749
  }, {
775
750
  key: "_unloadTile",
776
751
  value: function _unloadTile(tile) {
777
- this.gpuMemoryUsageInBytes -= tile.content && tile.content.byteLength || 0;
752
+ this.gpuMemoryUsageInBytes -= tile.gpuMemoryUsageInBytes || 0;
778
753
  this.stats.get(TILES_IN_MEMORY).decrementCount();
779
754
  this.stats.get(TILES_UNLOADED).incrementCount();
780
755
  this.stats.get(TILES_GPU_MEMORY).count = this.gpuMemoryUsageInBytes;
@@ -842,11 +817,16 @@ var Tileset3D = function () {
842
817
  }, {
843
818
  key: "_initializeTiles3DTileset",
844
819
  value: function _initializeTiles3DTileset(tilesetJson) {
820
+ if (tilesetJson.queryString) {
821
+ var searchParams = new URLSearchParams(tilesetJson.queryString);
822
+ var queryParams = Object.fromEntries(searchParams.entries());
823
+ this._queryParams = _objectSpread(_objectSpread({}, this._queryParams), queryParams);
824
+ }
845
825
  this.asset = tilesetJson.asset;
846
826
  if (!this.asset) {
847
827
  throw new Error('Tileset must have an asset property.');
848
828
  }
849
- if (this.asset.version !== '0.0' && this.asset.version !== '1.0') {
829
+ if (this.asset.version !== '0.0' && this.asset.version !== '1.0' && this.asset.version !== '1.1') {
850
830
  throw new Error('The tileset must be 3D Tiles version 0.0 or 1.0.');
851
831
  }
852
832
  if ('tilesetVersion' in this.asset) {
@@ -858,7 +838,7 @@ var Tileset3D = function () {
858
838
  this.description = this.options.description || '';
859
839
  this.properties = tilesetJson.properties;
860
840
  this.geometricError = tilesetJson.geometricError;
861
- this._extensionsUsed = tilesetJson.extensionsUsed;
841
+ this._extensionsUsed = tilesetJson.extensionsUsed || [];
862
842
  this.extras = tilesetJson.extras;
863
843
  }
864
844
  }, {
@@ -872,19 +852,4 @@ var Tileset3D = function () {
872
852
  return Tileset3D;
873
853
  }();
874
854
  exports.Tileset3D = Tileset3D;
875
- function getQueryParamString(queryParams) {
876
- var queryParamStrings = [];
877
- for (var _i = 0, _Object$keys = Object.keys(queryParams); _i < _Object$keys.length; _i++) {
878
- var _key = _Object$keys[_i];
879
- queryParamStrings.push("".concat(_key, "=").concat(queryParams[_key]));
880
- }
881
- switch (queryParamStrings.length) {
882
- case 0:
883
- return '';
884
- case 1:
885
- return "?".concat(queryParamStrings[0]);
886
- default:
887
- return "?".concat(queryParamStrings.join('&'));
888
- }
889
- }
890
855
  //# sourceMappingURL=tileset-3d.js.map