@loaders.gl/tiles 4.0.0-beta.2 → 4.0.0-beta.3

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