@loaders.gl/tiles 3.1.3 → 4.0.0-alpha.5

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 (122) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/bundle.js.map +1 -0
  3. package/dist/constants.js +26 -29
  4. package/dist/constants.js.map +1 -0
  5. package/dist/dist.min.js +45 -264
  6. package/dist/index.js +10 -28
  7. package/dist/index.js.map +1 -0
  8. package/dist/tileset/helpers/3d-tiles-options.js +5 -8
  9. package/dist/tileset/helpers/3d-tiles-options.js.map +1 -0
  10. package/dist/tileset/helpers/bounding-volume.js +70 -159
  11. package/dist/tileset/helpers/bounding-volume.js.map +1 -0
  12. package/dist/tileset/helpers/frame-state.js +48 -67
  13. package/dist/tileset/helpers/frame-state.js.map +1 -0
  14. package/dist/tileset/helpers/i3s-lod.js +64 -80
  15. package/dist/tileset/helpers/i3s-lod.js.map +1 -0
  16. package/dist/tileset/helpers/tiles-3d-lod.js +100 -111
  17. package/dist/tileset/helpers/tiles-3d-lod.js.map +1 -0
  18. package/dist/tileset/helpers/transform-utils.js +56 -50
  19. package/dist/tileset/helpers/transform-utils.js.map +1 -0
  20. package/dist/tileset/helpers/zoom.js +30 -36
  21. package/dist/tileset/helpers/zoom.js.map +1 -0
  22. package/dist/tileset/tile-3d.js +533 -551
  23. package/dist/tileset/tile-3d.js.map +1 -0
  24. package/dist/tileset/tileset-3d.js +649 -576
  25. package/dist/tileset/tileset-3d.js.map +1 -0
  26. package/dist/tileset/tileset-cache.js +71 -71
  27. package/dist/tileset/tileset-cache.js.map +1 -0
  28. package/dist/tileset/traversers/i3s-tile-manager.js +40 -31
  29. package/dist/tileset/traversers/i3s-tile-manager.js.map +1 -0
  30. package/dist/tileset/traversers/i3s-tileset-traverser.js +76 -81
  31. package/dist/tileset/traversers/i3s-tileset-traverser.js.map +1 -0
  32. package/dist/tileset/traversers/tileset-3d-traverser.js +49 -51
  33. package/dist/tileset/traversers/tileset-3d-traverser.js.map +1 -0
  34. package/dist/tileset/traversers/tileset-traverser.js +276 -274
  35. package/dist/tileset/traversers/tileset-traverser.js.map +1 -0
  36. package/dist/utils/doubly-linked-list-node.js +15 -16
  37. package/dist/utils/doubly-linked-list-node.js.map +1 -0
  38. package/dist/utils/doubly-linked-list.js +75 -94
  39. package/dist/utils/doubly-linked-list.js.map +1 -0
  40. package/dist/utils/managed-array.js +109 -143
  41. package/dist/utils/managed-array.js.map +1 -0
  42. package/package.json +7 -7
  43. package/dist/es5/bundle.js +0 -7
  44. package/dist/es5/bundle.js.map +0 -1
  45. package/dist/es5/constants.js +0 -44
  46. package/dist/es5/constants.js.map +0 -1
  47. package/dist/es5/index.js +0 -104
  48. package/dist/es5/index.js.map +0 -1
  49. package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -13
  50. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +0 -1
  51. package/dist/es5/tileset/helpers/bounding-volume.js +0 -114
  52. package/dist/es5/tileset/helpers/bounding-volume.js.map +0 -1
  53. package/dist/es5/tileset/helpers/frame-state.js +0 -65
  54. package/dist/es5/tileset/helpers/frame-state.js.map +0 -1
  55. package/dist/es5/tileset/helpers/i3s-lod.js +0 -86
  56. package/dist/es5/tileset/helpers/i3s-lod.js.map +0 -1
  57. package/dist/es5/tileset/helpers/tiles-3d-lod.js +0 -119
  58. package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +0 -1
  59. package/dist/es5/tileset/helpers/transform-utils.js +0 -65
  60. package/dist/es5/tileset/helpers/transform-utils.js.map +0 -1
  61. package/dist/es5/tileset/helpers/zoom.js +0 -43
  62. package/dist/es5/tileset/helpers/zoom.js.map +0 -1
  63. package/dist/es5/tileset/tile-3d.js +0 -605
  64. package/dist/es5/tileset/tile-3d.js.map +0 -1
  65. package/dist/es5/tileset/tileset-3d.js +0 -838
  66. package/dist/es5/tileset/tileset-3d.js.map +0 -1
  67. package/dist/es5/tileset/tileset-cache.js +0 -101
  68. package/dist/es5/tileset/tileset-cache.js.map +0 -1
  69. package/dist/es5/tileset/traversers/i3s-tile-manager.js +0 -69
  70. package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +0 -1
  71. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +0 -185
  72. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +0 -1
  73. package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -94
  74. package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +0 -1
  75. package/dist/es5/tileset/traversers/tileset-traverser.js +0 -377
  76. package/dist/es5/tileset/traversers/tileset-traverser.js.map +0 -1
  77. package/dist/es5/utils/doubly-linked-list-node.js +0 -25
  78. package/dist/es5/utils/doubly-linked-list-node.js.map +0 -1
  79. package/dist/es5/utils/doubly-linked-list.js +0 -104
  80. package/dist/es5/utils/doubly-linked-list.js.map +0 -1
  81. package/dist/es5/utils/managed-array.js +0 -147
  82. package/dist/es5/utils/managed-array.js.map +0 -1
  83. package/dist/esm/bundle.js +0 -5
  84. package/dist/esm/bundle.js.map +0 -1
  85. package/dist/esm/constants.js +0 -32
  86. package/dist/esm/constants.js.map +0 -1
  87. package/dist/esm/index.js +0 -10
  88. package/dist/esm/index.js.map +0 -1
  89. package/dist/esm/tileset/helpers/3d-tiles-options.js +0 -6
  90. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +0 -1
  91. package/dist/esm/tileset/helpers/bounding-volume.js +0 -88
  92. package/dist/esm/tileset/helpers/bounding-volume.js.map +0 -1
  93. package/dist/esm/tileset/helpers/frame-state.js +0 -51
  94. package/dist/esm/tileset/helpers/frame-state.js.map +0 -1
  95. package/dist/esm/tileset/helpers/i3s-lod.js +0 -67
  96. package/dist/esm/tileset/helpers/i3s-lod.js.map +0 -1
  97. package/dist/esm/tileset/helpers/tiles-3d-lod.js +0 -105
  98. package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +0 -1
  99. package/dist/esm/tileset/helpers/transform-utils.js +0 -58
  100. package/dist/esm/tileset/helpers/transform-utils.js.map +0 -1
  101. package/dist/esm/tileset/helpers/zoom.js +0 -36
  102. package/dist/esm/tileset/helpers/zoom.js.map +0 -1
  103. package/dist/esm/tileset/tile-3d.js +0 -537
  104. package/dist/esm/tileset/tile-3d.js.map +0 -1
  105. package/dist/esm/tileset/tileset-3d.js +0 -674
  106. package/dist/esm/tileset/tileset-3d.js.map +0 -1
  107. package/dist/esm/tileset/tileset-cache.js +0 -79
  108. package/dist/esm/tileset/tileset-cache.js.map +0 -1
  109. package/dist/esm/tileset/traversers/i3s-tile-manager.js +0 -45
  110. package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +0 -1
  111. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +0 -80
  112. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +0 -1
  113. package/dist/esm/tileset/traversers/tileset-3d-traverser.js +0 -53
  114. package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +0 -1
  115. package/dist/esm/tileset/traversers/tileset-traverser.js +0 -296
  116. package/dist/esm/tileset/traversers/tileset-traverser.js.map +0 -1
  117. package/dist/esm/utils/doubly-linked-list-node.js +0 -16
  118. package/dist/esm/utils/doubly-linked-list-node.js.map +0 -1
  119. package/dist/esm/utils/doubly-linked-list.js +0 -81
  120. package/dist/esm/utils/doubly-linked-list.js.map +0 -1
  121. package/dist/esm/utils/managed-array.js +0 -117
  122. package/dist/esm/utils/managed-array.js.map +0 -1
@@ -1,838 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
- var _core = require("@math.gl/core");
21
-
22
- var _geospatial = require("@math.gl/geospatial");
23
-
24
- var _stats = require("@probe.gl/stats");
25
-
26
- var _loaderUtils = require("@loaders.gl/loader-utils");
27
-
28
- var _tilesetCache = _interopRequireDefault(require("./tileset-cache"));
29
-
30
- var _transformUtils = require("./helpers/transform-utils");
31
-
32
- var _frameState = require("./helpers/frame-state");
33
-
34
- var _zoom = require("./helpers/zoom");
35
-
36
- var _tile3d = _interopRequireDefault(require("./tile-3d"));
37
-
38
- var _tileset3dTraverser = _interopRequireDefault(require("./traversers/tileset-3d-traverser"));
39
-
40
- var _tilesetTraverser = _interopRequireDefault(require("./traversers/tileset-traverser"));
41
-
42
- var _i3sTilesetTraverser = _interopRequireDefault(require("./traversers/i3s-tileset-traverser"));
43
-
44
- var _constants = require("../constants");
45
-
46
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
47
-
48
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
49
-
50
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
51
-
52
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
53
-
54
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
55
-
56
- var DEFAULT_PROPS = {
57
- description: '',
58
- ellipsoid: _geospatial.Ellipsoid.WGS84,
59
- modelMatrix: new _core.Matrix4(),
60
- throttleRequests: true,
61
- maxRequests: 64,
62
- maximumMemoryUsage: 32,
63
- onTileLoad: function onTileLoad() {},
64
- onTileUnload: function onTileUnload() {},
65
- onTileError: function onTileError() {},
66
- onTraversalComplete: function onTraversalComplete(selectedTiles) {
67
- return selectedTiles;
68
- },
69
- contentLoader: undefined,
70
- viewDistanceScale: 1.0,
71
- maximumScreenSpaceError: 8,
72
- loadTiles: true,
73
- updateTransforms: true,
74
- viewportTraversersMap: null,
75
- loadOptions: {
76
- fetch: {}
77
- },
78
- attributions: [],
79
- basePath: '',
80
- i3s: {}
81
- };
82
- var TILES_TOTAL = 'Tiles In Tileset(s)';
83
- var TILES_IN_MEMORY = 'Tiles In Memory';
84
- var TILES_IN_VIEW = 'Tiles In View';
85
- var TILES_RENDERABLE = 'Tiles To Render';
86
- var TILES_LOADED = 'Tiles Loaded';
87
- var TILES_LOADING = 'Tiles Loading';
88
- var TILES_UNLOADED = 'Tiles Unloaded';
89
- var TILES_LOAD_FAILED = 'Failed Tile Loads';
90
- var POINTS_COUNT = 'Points';
91
- var TILES_GPU_MEMORY = 'Tile Memory Use';
92
-
93
- var Tileset3D = function () {
94
- function Tileset3D(json, options) {
95
- (0, _classCallCheck2.default)(this, Tileset3D);
96
- (0, _defineProperty2.default)(this, "options", void 0);
97
- (0, _defineProperty2.default)(this, "loadOptions", void 0);
98
- (0, _defineProperty2.default)(this, "type", void 0);
99
- (0, _defineProperty2.default)(this, "tileset", void 0);
100
- (0, _defineProperty2.default)(this, "loader", void 0);
101
- (0, _defineProperty2.default)(this, "url", void 0);
102
- (0, _defineProperty2.default)(this, "basePath", void 0);
103
- (0, _defineProperty2.default)(this, "modelMatrix", void 0);
104
- (0, _defineProperty2.default)(this, "ellipsoid", void 0);
105
- (0, _defineProperty2.default)(this, "lodMetricType", void 0);
106
- (0, _defineProperty2.default)(this, "lodMetricValue", void 0);
107
- (0, _defineProperty2.default)(this, "refine", void 0);
108
- (0, _defineProperty2.default)(this, "root", void 0);
109
- (0, _defineProperty2.default)(this, "roots", void 0);
110
- (0, _defineProperty2.default)(this, "asset", void 0);
111
- (0, _defineProperty2.default)(this, "description", void 0);
112
- (0, _defineProperty2.default)(this, "properties", void 0);
113
- (0, _defineProperty2.default)(this, "extras", void 0);
114
- (0, _defineProperty2.default)(this, "attributions", void 0);
115
- (0, _defineProperty2.default)(this, "credits", void 0);
116
- (0, _defineProperty2.default)(this, "stats", void 0);
117
- (0, _defineProperty2.default)(this, "traverseCounter", void 0);
118
- (0, _defineProperty2.default)(this, "geometricError", void 0);
119
- (0, _defineProperty2.default)(this, "selectedTiles", void 0);
120
- (0, _defineProperty2.default)(this, "cartographicCenter", void 0);
121
- (0, _defineProperty2.default)(this, "cartesianCenter", void 0);
122
- (0, _defineProperty2.default)(this, "zoom", void 0);
123
- (0, _defineProperty2.default)(this, "boundingVolume", void 0);
124
- (0, _defineProperty2.default)(this, "gpuMemoryUsageInBytes", void 0);
125
- (0, _defineProperty2.default)(this, "dynamicScreenSpaceErrorComputedDensity", void 0);
126
- (0, _defineProperty2.default)(this, "_traverser", void 0);
127
- (0, _defineProperty2.default)(this, "_cache", void 0);
128
- (0, _defineProperty2.default)(this, "_requestScheduler", void 0);
129
- (0, _defineProperty2.default)(this, "_frameNumber", void 0);
130
- (0, _defineProperty2.default)(this, "_queryParamsString", void 0);
131
- (0, _defineProperty2.default)(this, "_queryParams", void 0);
132
- (0, _defineProperty2.default)(this, "_extensionsUsed", void 0);
133
- (0, _defineProperty2.default)(this, "_tiles", void 0);
134
- (0, _defineProperty2.default)(this, "_pendingCount", void 0);
135
- (0, _defineProperty2.default)(this, "lastUpdatedVieports", void 0);
136
- (0, _defineProperty2.default)(this, "_requestedTiles", void 0);
137
- (0, _defineProperty2.default)(this, "_emptyTiles", void 0);
138
- (0, _defineProperty2.default)(this, "frameStateData", void 0);
139
- (0, _defineProperty2.default)(this, "maximumMemoryUsage", void 0);
140
- (0, _loaderUtils.assert)(json);
141
- this.options = _objectSpread(_objectSpread({}, DEFAULT_PROPS), options);
142
- this.tileset = json;
143
- this.loader = json.loader;
144
- this.type = json.type;
145
- this.url = json.url;
146
- this.basePath = json.basePath || _loaderUtils.path.dirname(this.url);
147
- this.modelMatrix = this.options.modelMatrix;
148
- this.ellipsoid = this.options.ellipsoid;
149
- this.lodMetricType = json.lodMetricType;
150
- this.lodMetricValue = json.lodMetricValue;
151
- this.refine = json.root.refine;
152
- this.loadOptions = this.options.loadOptions || {};
153
- this.root = null;
154
- this.roots = {};
155
- this.cartographicCenter = null;
156
- this.cartesianCenter = null;
157
- this.zoom = 1;
158
- this.boundingVolume = null;
159
- this.traverseCounter = 0;
160
- this.geometricError = 0;
161
- this._traverser = this._initializeTraverser();
162
- this._cache = new _tilesetCache.default();
163
- this._requestScheduler = new _loaderUtils.RequestScheduler({
164
- throttleRequests: this.options.throttleRequests,
165
- maxRequests: this.options.maxRequests
166
- });
167
- this._frameNumber = 0;
168
- this._pendingCount = 0;
169
- this._tiles = {};
170
- this.selectedTiles = [];
171
- this._emptyTiles = [];
172
- this._requestedTiles = [];
173
- this.frameStateData = {};
174
- this.lastUpdatedVieports = null;
175
- this._queryParams = {};
176
- this._queryParamsString = '';
177
- this.maximumMemoryUsage = this.options.maximumMemoryUsage || 32;
178
- this.gpuMemoryUsageInBytes = 0;
179
- this.stats = new _stats.Stats({
180
- id: this.url
181
- });
182
-
183
- this._initializeStats();
184
-
185
- this._extensionsUsed = undefined;
186
- this.dynamicScreenSpaceErrorComputedDensity = 0.0;
187
- this.extras = null;
188
- this.asset = {};
189
- this.credits = {};
190
- this.description = this.options.description || '';
191
-
192
- this._initializeTileSet(json);
193
- }
194
-
195
- (0, _createClass2.default)(Tileset3D, [{
196
- key: "destroy",
197
- value: function destroy() {
198
- this._destroy();
199
- }
200
- }, {
201
- key: "isLoaded",
202
- value: function isLoaded() {
203
- return this._pendingCount === 0 && this._frameNumber !== 0;
204
- }
205
- }, {
206
- key: "tiles",
207
- get: function get() {
208
- return Object.values(this._tiles);
209
- }
210
- }, {
211
- key: "frameNumber",
212
- get: function get() {
213
- return this._frameNumber;
214
- }
215
- }, {
216
- key: "queryParams",
217
- get: function get() {
218
- if (!this._queryParamsString) {
219
- this._queryParamsString = getQueryParamString(this._queryParams);
220
- }
221
-
222
- return this._queryParamsString;
223
- }
224
- }, {
225
- key: "setProps",
226
- value: function setProps(props) {
227
- this.options = _objectSpread(_objectSpread({}, this.options), props);
228
- }
229
- }, {
230
- key: "setOptions",
231
- value: function setOptions(options) {
232
- this.options = _objectSpread(_objectSpread({}, this.options), options);
233
- }
234
- }, {
235
- key: "getTileUrl",
236
- value: function getTileUrl(tilePath) {
237
- var isDataUrl = tilePath.startsWith('data:');
238
-
239
- if (isDataUrl) {
240
- return tilePath;
241
- }
242
-
243
- return "".concat(tilePath).concat(this.queryParams);
244
- }
245
- }, {
246
- key: "hasExtension",
247
- value: function hasExtension(extensionName) {
248
- return Boolean(this._extensionsUsed && this._extensionsUsed.indexOf(extensionName) > -1);
249
- }
250
- }, {
251
- key: "update",
252
- value: function update(viewports) {
253
- if ('loadTiles' in this.options && !this.options.loadTiles) {
254
- return;
255
- }
256
-
257
- if (this.traverseCounter > 0) {
258
- return;
259
- }
260
-
261
- if (!viewports && this.lastUpdatedVieports) {
262
- viewports = this.lastUpdatedVieports;
263
- } else {
264
- this.lastUpdatedVieports = viewports;
265
- }
266
-
267
- if (!(viewports instanceof Array)) {
268
- viewports = [viewports];
269
- }
270
-
271
- this._cache.reset();
272
-
273
- this._frameNumber++;
274
- this.traverseCounter = viewports.length;
275
- var viewportsToTraverse = [];
276
-
277
- var _iterator = _createForOfIteratorHelper(viewports),
278
- _step;
279
-
280
- try {
281
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
282
- var viewport = _step.value;
283
- var _id = viewport.id;
284
-
285
- if (this._needTraverse(_id)) {
286
- viewportsToTraverse.push(_id);
287
- } else {
288
- this.traverseCounter--;
289
- }
290
- }
291
- } catch (err) {
292
- _iterator.e(err);
293
- } finally {
294
- _iterator.f();
295
- }
296
-
297
- var _iterator2 = _createForOfIteratorHelper(viewports),
298
- _step2;
299
-
300
- try {
301
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
302
- var _viewport = _step2.value;
303
- var _id2 = _viewport.id;
304
-
305
- if (!this.roots[_id2]) {
306
- this.roots[_id2] = this._initializeTileHeaders(this.tileset, null);
307
- }
308
-
309
- if (!viewportsToTraverse.includes(_id2)) {
310
- continue;
311
- }
312
-
313
- var frameState = (0, _frameState.getFrameState)(_viewport, this._frameNumber);
314
-
315
- this._traverser.traverse(this.roots[_id2], frameState, this.options);
316
- }
317
- } catch (err) {
318
- _iterator2.e(err);
319
- } finally {
320
- _iterator2.f();
321
- }
322
- }
323
- }, {
324
- key: "_needTraverse",
325
- value: function _needTraverse(viewportId) {
326
- var traverserId = viewportId;
327
-
328
- if (this.options.viewportTraversersMap) {
329
- traverserId = this.options.viewportTraversersMap[viewportId];
330
- }
331
-
332
- if (traverserId !== viewportId) {
333
- return false;
334
- }
335
-
336
- return true;
337
- }
338
- }, {
339
- key: "_onTraversalEnd",
340
- value: function _onTraversalEnd(frameState) {
341
- var id = frameState.viewport.id;
342
-
343
- if (!this.frameStateData[id]) {
344
- this.frameStateData[id] = {
345
- selectedTiles: [],
346
- _requestedTiles: [],
347
- _emptyTiles: []
348
- };
349
- }
350
-
351
- var currentFrameStateData = this.frameStateData[id];
352
- var selectedTiles = Object.values(this._traverser.selectedTiles);
353
- currentFrameStateData.selectedTiles = selectedTiles;
354
- currentFrameStateData._requestedTiles = Object.values(this._traverser.requestedTiles);
355
- currentFrameStateData._emptyTiles = Object.values(this._traverser.emptyTiles);
356
- this.traverseCounter--;
357
-
358
- if (this.traverseCounter > 0) {
359
- return;
360
- }
361
-
362
- this._updateTiles();
363
- }
364
- }, {
365
- key: "_updateTiles",
366
- value: function _updateTiles() {
367
- this.selectedTiles = [];
368
- this._requestedTiles = [];
369
- this._emptyTiles = [];
370
-
371
- for (var frameStateKey in this.frameStateData) {
372
- var frameStateDataValue = this.frameStateData[frameStateKey];
373
- this.selectedTiles = this.selectedTiles.concat(frameStateDataValue.selectedTiles);
374
- this._requestedTiles = this._requestedTiles.concat(frameStateDataValue._requestedTiles);
375
- this._emptyTiles = this._emptyTiles.concat(frameStateDataValue._emptyTiles);
376
- }
377
-
378
- this.selectedTiles = this.options.onTraversalComplete(this.selectedTiles);
379
-
380
- var _iterator3 = _createForOfIteratorHelper(this.selectedTiles),
381
- _step3;
382
-
383
- try {
384
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
385
- var _tile = _step3.value;
386
- this._tiles[_tile.id] = _tile;
387
- }
388
- } catch (err) {
389
- _iterator3.e(err);
390
- } finally {
391
- _iterator3.f();
392
- }
393
-
394
- this._loadTiles();
395
-
396
- this._unloadTiles();
397
-
398
- this._updateStats();
399
- }
400
- }, {
401
- key: "_tilesChanged",
402
- value: function _tilesChanged(oldSelectedTiles, selectedTiles) {
403
- if (oldSelectedTiles.length !== selectedTiles.length) {
404
- return true;
405
- }
406
-
407
- var set1 = new Set(oldSelectedTiles.map(function (t) {
408
- return t.id;
409
- }));
410
- var set2 = new Set(selectedTiles.map(function (t) {
411
- return t.id;
412
- }));
413
- var changed = oldSelectedTiles.filter(function (x) {
414
- return !set2.has(x.id);
415
- }).length > 0;
416
- changed = changed || selectedTiles.filter(function (x) {
417
- return !set1.has(x.id);
418
- }).length > 0;
419
- return changed;
420
- }
421
- }, {
422
- key: "_loadTiles",
423
- value: function _loadTiles() {
424
- var _iterator4 = _createForOfIteratorHelper(this._requestedTiles),
425
- _step4;
426
-
427
- try {
428
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
429
- var _tile2 = _step4.value;
430
-
431
- if (_tile2.contentUnloaded) {
432
- this._loadTile(_tile2);
433
- }
434
- }
435
- } catch (err) {
436
- _iterator4.e(err);
437
- } finally {
438
- _iterator4.f();
439
- }
440
- }
441
- }, {
442
- key: "_unloadTiles",
443
- value: function _unloadTiles() {
444
- this._cache.unloadTiles(this, function (tileset, tile) {
445
- return tileset._unloadTile(tile);
446
- });
447
- }
448
- }, {
449
- key: "_updateStats",
450
- value: function _updateStats() {
451
- var tilesRenderable = 0;
452
- var pointsRenderable = 0;
453
-
454
- var _iterator5 = _createForOfIteratorHelper(this.selectedTiles),
455
- _step5;
456
-
457
- try {
458
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
459
- var _tile3 = _step5.value;
460
-
461
- if (_tile3.contentAvailable && _tile3.content) {
462
- tilesRenderable++;
463
-
464
- if (_tile3.content.pointCount) {
465
- pointsRenderable += _tile3.content.pointCount;
466
- }
467
- }
468
- }
469
- } catch (err) {
470
- _iterator5.e(err);
471
- } finally {
472
- _iterator5.f();
473
- }
474
-
475
- this.stats.get(TILES_IN_VIEW).count = this.selectedTiles.length;
476
- this.stats.get(TILES_RENDERABLE).count = tilesRenderable;
477
- this.stats.get(POINTS_COUNT).count = pointsRenderable;
478
- }
479
- }, {
480
- key: "_initializeTileSet",
481
- value: function _initializeTileSet(tilesetJson) {
482
- this.root = this._initializeTileHeaders(tilesetJson, null);
483
-
484
- if (this.type === _constants.TILESET_TYPE.TILES3D) {
485
- this._initializeCesiumTileset(tilesetJson);
486
- }
487
-
488
- if (this.type === _constants.TILESET_TYPE.I3S) {
489
- this._initializeI3STileset();
490
- }
491
-
492
- this._calculateViewProps();
493
- }
494
- }, {
495
- key: "_calculateViewProps",
496
- value: function _calculateViewProps() {
497
- var root = this.root;
498
- (0, _loaderUtils.assert)(root);
499
- var center = root.boundingVolume.center;
500
-
501
- if (!center) {
502
- console.warn('center was not pre-calculated for the root tile');
503
- this.cartographicCenter = new _core.Vector3();
504
- this.zoom = 1;
505
- return;
506
- }
507
-
508
- this.cartographicCenter = _geospatial.Ellipsoid.WGS84.cartesianToCartographic(center, new _core.Vector3());
509
- this.cartesianCenter = center;
510
- this.zoom = (0, _zoom.getZoomFromBoundingVolume)(root.boundingVolume);
511
- }
512
- }, {
513
- key: "_initializeStats",
514
- value: function _initializeStats() {
515
- this.stats.get(TILES_TOTAL);
516
- this.stats.get(TILES_LOADING);
517
- this.stats.get(TILES_IN_MEMORY);
518
- this.stats.get(TILES_IN_VIEW);
519
- this.stats.get(TILES_RENDERABLE);
520
- this.stats.get(TILES_LOADED);
521
- this.stats.get(TILES_UNLOADED);
522
- this.stats.get(TILES_LOAD_FAILED);
523
- this.stats.get(POINTS_COUNT, 'memory');
524
- this.stats.get(TILES_GPU_MEMORY, 'memory');
525
- }
526
- }, {
527
- key: "_initializeTileHeaders",
528
- value: function _initializeTileHeaders(tilesetJson, parentTileHeader) {
529
- var rootTile = new _tile3d.default(this, tilesetJson.root, parentTileHeader);
530
-
531
- if (parentTileHeader) {
532
- parentTileHeader.children.push(rootTile);
533
- rootTile.depth = parentTileHeader.depth + 1;
534
- }
535
-
536
- if (this.type === _constants.TILESET_TYPE.TILES3D) {
537
- var stack = [];
538
- stack.push(rootTile);
539
-
540
- while (stack.length > 0) {
541
- var _tile4 = stack.pop();
542
-
543
- this.stats.get(TILES_TOTAL).incrementCount();
544
- var children = _tile4.header.children || [];
545
-
546
- var _iterator6 = _createForOfIteratorHelper(children),
547
- _step6;
548
-
549
- try {
550
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
551
- var childHeader = _step6.value;
552
- var childTile = new _tile3d.default(this, childHeader, _tile4);
553
-
554
- _tile4.children.push(childTile);
555
-
556
- childTile.depth = _tile4.depth + 1;
557
- stack.push(childTile);
558
- }
559
- } catch (err) {
560
- _iterator6.e(err);
561
- } finally {
562
- _iterator6.f();
563
- }
564
- }
565
- }
566
-
567
- return rootTile;
568
- }
569
- }, {
570
- key: "_initializeTraverser",
571
- value: function _initializeTraverser() {
572
- var TraverserClass;
573
- var type = this.type;
574
-
575
- switch (type) {
576
- case _constants.TILESET_TYPE.TILES3D:
577
- TraverserClass = _tileset3dTraverser.default;
578
- break;
579
-
580
- case _constants.TILESET_TYPE.I3S:
581
- TraverserClass = _i3sTilesetTraverser.default;
582
- break;
583
-
584
- default:
585
- TraverserClass = _tilesetTraverser.default;
586
- }
587
-
588
- return new TraverserClass({
589
- basePath: this.basePath,
590
- onTraversalEnd: this._onTraversalEnd.bind(this)
591
- });
592
- }
593
- }, {
594
- key: "_destroyTileHeaders",
595
- value: function _destroyTileHeaders(parentTile) {
596
- this._destroySubtree(parentTile);
597
- }
598
- }, {
599
- key: "_loadTile",
600
- value: function () {
601
- var _loadTile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tile) {
602
- var loaded;
603
- return _regenerator.default.wrap(function _callee$(_context) {
604
- while (1) {
605
- switch (_context.prev = _context.next) {
606
- case 0:
607
- _context.prev = 0;
608
-
609
- this._onStartTileLoading();
610
-
611
- _context.next = 4;
612
- return tile.loadContent();
613
-
614
- case 4:
615
- loaded = _context.sent;
616
- _context.next = 10;
617
- break;
618
-
619
- case 7:
620
- _context.prev = 7;
621
- _context.t0 = _context["catch"](0);
622
-
623
- this._onTileLoadError(tile, _context.t0);
624
-
625
- case 10:
626
- _context.prev = 10;
627
-
628
- this._onEndTileLoading();
629
-
630
- this._onTileLoad(tile, loaded);
631
-
632
- return _context.finish(10);
633
-
634
- case 14:
635
- case "end":
636
- return _context.stop();
637
- }
638
- }
639
- }, _callee, this, [[0, 7, 10, 14]]);
640
- }));
641
-
642
- function _loadTile(_x) {
643
- return _loadTile2.apply(this, arguments);
644
- }
645
-
646
- return _loadTile;
647
- }()
648
- }, {
649
- key: "_onTileLoadError",
650
- value: function _onTileLoadError(tile, error) {
651
- this.stats.get(TILES_LOAD_FAILED).incrementCount();
652
- var message = error.message || error.toString();
653
- var url = tile.url;
654
- console.error("A 3D tile failed to load: ".concat(tile.url, " ").concat(message));
655
- this.options.onTileError(tile, message, url);
656
- }
657
- }, {
658
- key: "_onTileLoad",
659
- value: function _onTileLoad(tile, loaded) {
660
- if (!loaded) {
661
- return;
662
- }
663
-
664
- if (tile && tile.content) {
665
- (0, _transformUtils.calculateTransformProps)(tile, tile.content);
666
- }
667
-
668
- this._addTileToCache(tile);
669
-
670
- this.options.onTileLoad(tile);
671
- }
672
- }, {
673
- key: "_onStartTileLoading",
674
- value: function _onStartTileLoading() {
675
- this._pendingCount++;
676
- this.stats.get(TILES_LOADING).incrementCount();
677
- }
678
- }, {
679
- key: "_onEndTileLoading",
680
- value: function _onEndTileLoading() {
681
- this._pendingCount--;
682
- this.stats.get(TILES_LOADING).decrementCount();
683
- }
684
- }, {
685
- key: "_addTileToCache",
686
- value: function _addTileToCache(tile) {
687
- this._cache.add(this, tile, function (tileset) {
688
- return tileset._updateCacheStats(tile);
689
- });
690
- }
691
- }, {
692
- key: "_updateCacheStats",
693
- value: function _updateCacheStats(tile) {
694
- this.stats.get(TILES_LOADED).incrementCount();
695
- this.stats.get(TILES_IN_MEMORY).incrementCount();
696
- this.gpuMemoryUsageInBytes += tile.content.byteLength || 0;
697
- this.stats.get(TILES_GPU_MEMORY).count = this.gpuMemoryUsageInBytes;
698
- }
699
- }, {
700
- key: "_unloadTile",
701
- value: function _unloadTile(tile) {
702
- this.gpuMemoryUsageInBytes -= tile.content && tile.content.byteLength || 0;
703
- this.stats.get(TILES_IN_MEMORY).decrementCount();
704
- this.stats.get(TILES_UNLOADED).incrementCount();
705
- this.stats.get(TILES_GPU_MEMORY).count = this.gpuMemoryUsageInBytes;
706
- this.options.onTileUnload(tile);
707
- tile.unloadContent();
708
- }
709
- }, {
710
- key: "_destroy",
711
- value: function _destroy() {
712
- var stack = [];
713
-
714
- if (this.root) {
715
- stack.push(this.root);
716
- }
717
-
718
- while (stack.length > 0) {
719
- var _tile5 = stack.pop();
720
-
721
- var _iterator7 = _createForOfIteratorHelper(_tile5.children),
722
- _step7;
723
-
724
- try {
725
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
726
- var child = _step7.value;
727
- stack.push(child);
728
- }
729
- } catch (err) {
730
- _iterator7.e(err);
731
- } finally {
732
- _iterator7.f();
733
- }
734
-
735
- this._destroyTile(_tile5);
736
- }
737
-
738
- this.root = null;
739
- }
740
- }, {
741
- key: "_destroySubtree",
742
- value: function _destroySubtree(tile) {
743
- var root = tile;
744
- var stack = [];
745
- stack.push(root);
746
-
747
- while (stack.length > 0) {
748
- tile = stack.pop();
749
-
750
- var _iterator8 = _createForOfIteratorHelper(tile.children),
751
- _step8;
752
-
753
- try {
754
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
755
- var child = _step8.value;
756
- stack.push(child);
757
- }
758
- } catch (err) {
759
- _iterator8.e(err);
760
- } finally {
761
- _iterator8.f();
762
- }
763
-
764
- if (tile !== root) {
765
- this._destroyTile(tile);
766
- }
767
- }
768
-
769
- root.children = [];
770
- }
771
- }, {
772
- key: "_destroyTile",
773
- value: function _destroyTile(tile) {
774
- this._cache.unloadTile(this, tile);
775
-
776
- this._unloadTile(tile);
777
-
778
- tile.destroy();
779
- }
780
- }, {
781
- key: "_initializeCesiumTileset",
782
- value: function _initializeCesiumTileset(tilesetJson) {
783
- this.asset = tilesetJson.asset;
784
-
785
- if (!this.asset) {
786
- throw new Error('Tileset must have an asset property.');
787
- }
788
-
789
- if (this.asset.version !== '0.0' && this.asset.version !== '1.0') {
790
- throw new Error('The tileset must be 3D Tiles version 0.0 or 1.0.');
791
- }
792
-
793
- if ('tilesetVersion' in this.asset) {
794
- this._queryParams.v = this.asset.tilesetVersion;
795
- }
796
-
797
- this.credits = {
798
- attributions: this.options.attributions || []
799
- };
800
- this.description = this.options.description || '';
801
- this.properties = tilesetJson.properties;
802
- this.geometricError = tilesetJson.geometricError;
803
- this._extensionsUsed = tilesetJson.extensionsUsed;
804
- this.extras = tilesetJson.extras;
805
- }
806
- }, {
807
- key: "_initializeI3STileset",
808
- value: function _initializeI3STileset() {
809
- if (this.loadOptions.i3s && 'token' in this.loadOptions.i3s) {
810
- this._queryParams.token = this.loadOptions.i3s.token;
811
- }
812
- }
813
- }]);
814
- return Tileset3D;
815
- }();
816
-
817
- exports.default = Tileset3D;
818
-
819
- function getQueryParamString(queryParams) {
820
- var queryParamStrings = [];
821
-
822
- for (var _i = 0, _Object$keys = Object.keys(queryParams); _i < _Object$keys.length; _i++) {
823
- var _key = _Object$keys[_i];
824
- queryParamStrings.push("".concat(_key, "=").concat(queryParams[_key]));
825
- }
826
-
827
- switch (queryParamStrings.length) {
828
- case 0:
829
- return '';
830
-
831
- case 1:
832
- return "?".concat(queryParamStrings[0]);
833
-
834
- default:
835
- return "?".concat(queryParamStrings.join('&'));
836
- }
837
- }
838
- //# sourceMappingURL=tileset-3d.js.map