@loaders.gl/tiles 3.2.12 → 3.3.0-alpha.10

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 (106) hide show
  1. package/dist/dist.min.js +951 -1387
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/constants.js +2 -1
  5. package/dist/es5/constants.js.map +1 -1
  6. package/dist/es5/index.js +26 -36
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -1
  9. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
  10. package/dist/es5/tileset/helpers/bounding-volume.js +7 -26
  11. package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
  12. package/dist/es5/tileset/helpers/frame-state.js +22 -42
  13. package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
  14. package/dist/es5/tileset/helpers/i3s-lod.js +0 -13
  15. package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
  16. package/dist/es5/tileset/helpers/tiles-3d-lod.js +7 -16
  17. package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
  18. package/dist/es5/tileset/helpers/transform-utils.js +2 -11
  19. package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
  20. package/dist/es5/tileset/helpers/zoom.js +6 -16
  21. package/dist/es5/tileset/helpers/zoom.js.map +1 -1
  22. package/dist/es5/tileset/tile-3d.js +119 -96
  23. package/dist/es5/tileset/tile-3d.js.map +1 -1
  24. package/dist/es5/tileset/tileset-3d.js +119 -185
  25. package/dist/es5/tileset/tileset-3d.js.map +1 -1
  26. package/dist/es5/tileset/tileset-cache.js +1 -14
  27. package/dist/es5/tileset/tileset-cache.js.map +1 -1
  28. package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js +8 -13
  29. package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js.map +1 -1
  30. package/dist/es5/tileset/traversers/i3s-tile-manager.js +20 -24
  31. package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
  32. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +8 -50
  33. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  34. package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -22
  35. package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  36. package/dist/es5/tileset/traversers/tileset-traverser.js +53 -76
  37. package/dist/es5/tileset/traversers/tileset-traverser.js.map +1 -1
  38. package/dist/es5/types.js.map +1 -1
  39. package/dist/es5/utils/doubly-linked-list-node.js +3 -7
  40. package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
  41. package/dist/es5/utils/doubly-linked-list.js +9 -17
  42. package/dist/es5/utils/doubly-linked-list.js.map +1 -1
  43. package/dist/es5/utils/managed-array.js +29 -30
  44. package/dist/es5/utils/managed-array.js.map +1 -1
  45. package/dist/esm/bundle.js +1 -1
  46. package/dist/esm/bundle.js.map +1 -1
  47. package/dist/esm/constants.js +3 -0
  48. package/dist/esm/constants.js.map +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
  51. package/dist/esm/tileset/helpers/bounding-volume.js +4 -10
  52. package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -1
  53. package/dist/esm/tileset/helpers/frame-state.js +16 -16
  54. package/dist/esm/tileset/helpers/frame-state.js.map +1 -1
  55. package/dist/esm/tileset/helpers/i3s-lod.js +4 -4
  56. package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
  57. package/dist/esm/tileset/helpers/tiles-3d-lod.js +11 -8
  58. package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +1 -1
  59. package/dist/esm/tileset/helpers/transform-utils.js +1 -3
  60. package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
  61. package/dist/esm/tileset/helpers/zoom.js +3 -2
  62. package/dist/esm/tileset/helpers/zoom.js.map +1 -1
  63. package/dist/esm/tileset/tile-3d.js +55 -108
  64. package/dist/esm/tileset/tile-3d.js.map +1 -1
  65. package/dist/esm/tileset/tileset-3d.js +58 -154
  66. package/dist/esm/tileset/tileset-3d.js.map +1 -1
  67. package/dist/esm/tileset/tileset-cache.js +2 -18
  68. package/dist/esm/tileset/tileset-cache.js.map +1 -1
  69. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js +0 -5
  70. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js.map +1 -1
  71. package/dist/esm/tileset/traversers/i3s-tile-manager.js +2 -4
  72. package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +1 -1
  73. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +5 -19
  74. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  75. package/dist/esm/tileset/traversers/tileset-3d-traverser.js +2 -9
  76. package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  77. package/dist/esm/tileset/traversers/tileset-traverser.js +18 -57
  78. package/dist/esm/tileset/traversers/tileset-traverser.js.map +1 -1
  79. package/dist/esm/types.js.map +1 -1
  80. package/dist/esm/utils/doubly-linked-list-node.js +1 -4
  81. package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
  82. package/dist/esm/utils/doubly-linked-list.js +2 -11
  83. package/dist/esm/utils/doubly-linked-list.js.map +1 -1
  84. package/dist/esm/utils/managed-array.js +4 -22
  85. package/dist/esm/utils/managed-array.js.map +1 -1
  86. package/dist/tileset/helpers/frame-state.d.ts +1 -1
  87. package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
  88. package/dist/tileset/helpers/frame-state.js +1 -1
  89. package/dist/tileset/tile-3d.d.ts +24 -5
  90. package/dist/tileset/tile-3d.d.ts.map +1 -1
  91. package/dist/tileset/tile-3d.js +27 -2
  92. package/dist/tileset/tileset-3d.d.ts +14 -2
  93. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  94. package/dist/tileset/tileset-3d.js +35 -0
  95. package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
  96. package/dist/tileset/traversers/i3s-tileset-traverser.js +5 -6
  97. package/dist/tileset/traversers/tileset-traverser.d.ts +2 -2
  98. package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
  99. package/dist/tileset/traversers/tileset-traverser.js +3 -3
  100. package/dist/types.d.ts +3 -3
  101. package/dist/types.d.ts.map +1 -1
  102. package/package.json +4 -4
  103. package/src/tileset/helpers/frame-state.ts +1 -1
  104. package/src/tileset/tile-3d.ts +31 -4
  105. package/src/tileset/tileset-3d.ts +36 -0
  106. package/src/tileset/traversers/i3s-tileset-traverser.ts +1 -2
@@ -8,127 +8,92 @@ import { getTiles3DScreenSpaceError } from './helpers/tiles-3d-lod';
8
8
  import { getProjectedRadius } from './helpers/i3s-lod';
9
9
  import { get3dTilesOptions } from './helpers/3d-tiles-options';
10
10
  import TilesetTraverser from './traversers/tileset-traverser';
11
- const scratchVector = new Vector3();
12
11
 
12
+ const scratchVector = new Vector3();
13
13
  function defined(x) {
14
14
  return x !== undefined && x !== null;
15
15
  }
16
16
 
17
17
  export default class TileHeader {
18
- constructor(tileset, header, parentHeader, extendedId = '') {
19
- _defineProperty(this, "tileset", void 0);
20
18
 
19
+ constructor(tileset, header, parentHeader) {
20
+ let extendedId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
21
+ _defineProperty(this, "tileset", void 0);
21
22
  _defineProperty(this, "header", void 0);
22
-
23
23
  _defineProperty(this, "id", void 0);
24
-
25
24
  _defineProperty(this, "url", void 0);
26
-
27
25
  _defineProperty(this, "parent", void 0);
28
-
29
26
  _defineProperty(this, "refine", void 0);
30
-
31
27
  _defineProperty(this, "type", void 0);
32
-
33
28
  _defineProperty(this, "contentUrl", void 0);
34
-
35
29
  _defineProperty(this, "lodMetricType", void 0);
36
-
37
30
  _defineProperty(this, "lodMetricValue", void 0);
38
-
39
31
  _defineProperty(this, "boundingVolume", void 0);
40
-
41
32
  _defineProperty(this, "content", void 0);
42
-
43
33
  _defineProperty(this, "contentState", void 0);
44
-
45
34
  _defineProperty(this, "gpuMemoryUsageInBytes", void 0);
46
-
47
35
  _defineProperty(this, "children", void 0);
48
-
49
36
  _defineProperty(this, "depth", void 0);
50
-
51
37
  _defineProperty(this, "viewportIds", void 0);
52
-
53
38
  _defineProperty(this, "transform", void 0);
54
-
55
39
  _defineProperty(this, "extensions", void 0);
56
-
40
+ _defineProperty(this, "implicitTiling", void 0);
57
41
  _defineProperty(this, "userData", void 0);
58
-
59
42
  _defineProperty(this, "computedTransform", void 0);
60
-
61
43
  _defineProperty(this, "hasEmptyContent", void 0);
62
-
63
44
  _defineProperty(this, "hasTilesetContent", void 0);
64
-
65
45
  _defineProperty(this, "traverser", void 0);
66
-
67
46
  _defineProperty(this, "_cacheNode", void 0);
68
-
69
47
  _defineProperty(this, "_frameNumber", void 0);
70
-
71
48
  _defineProperty(this, "_lodJudge", void 0);
72
-
73
49
  _defineProperty(this, "_expireDate", void 0);
74
-
75
50
  _defineProperty(this, "_expiredContent", void 0);
76
-
77
51
  _defineProperty(this, "_shouldRefine", void 0);
78
-
79
52
  _defineProperty(this, "_distanceToCamera", void 0);
80
-
81
53
  _defineProperty(this, "_centerZDepth", void 0);
82
-
83
54
  _defineProperty(this, "_screenSpaceError", void 0);
84
-
85
55
  _defineProperty(this, "_visibilityPlaneMask", void 0);
86
-
87
56
  _defineProperty(this, "_visible", void 0);
88
-
89
57
  _defineProperty(this, "_inRequestVolume", void 0);
90
-
91
58
  _defineProperty(this, "_stackLength", void 0);
92
-
93
59
  _defineProperty(this, "_selectionDepth", void 0);
94
-
95
60
  _defineProperty(this, "_touchedFrame", void 0);
96
-
97
61
  _defineProperty(this, "_visitedFrame", void 0);
98
-
99
62
  _defineProperty(this, "_selectedFrame", void 0);
100
-
101
63
  _defineProperty(this, "_requestedFrame", void 0);
102
-
103
64
  _defineProperty(this, "_priority", void 0);
104
-
105
65
  _defineProperty(this, "_contentBoundingVolume", void 0);
106
-
107
66
  _defineProperty(this, "_viewerRequestVolume", void 0);
108
-
109
67
  _defineProperty(this, "_initialTransform", void 0);
110
-
111
68
  this.header = header;
69
+
112
70
  this.tileset = tileset;
113
71
  this.id = extendedId || header.id;
114
72
  this.url = header.url;
73
+
115
74
  this.parent = parentHeader;
116
75
  this.refine = this._getRefine(header.refine);
117
76
  this.type = header.type;
118
77
  this.contentUrl = header.contentUrl;
78
+
119
79
  this.lodMetricType = 'geometricError';
120
80
  this.lodMetricValue = 0;
81
+
121
82
  this.boundingVolume = null;
83
+
122
84
  this.content = null;
123
85
  this.contentState = TILE_CONTENT_STATE.UNLOADED;
124
86
  this.gpuMemoryUsageInBytes = 0;
87
+
125
88
  this.children = [];
126
89
  this.hasEmptyContent = false;
127
90
  this.hasTilesetContent = false;
128
91
  this.depth = 0;
129
92
  this.viewportIds = [];
93
+
130
94
  this.userData = {};
131
95
  this.extensions = null;
96
+
132
97
  this._priority = 0;
133
98
  this._touchedFrame = 0;
134
99
  this._visitedFrame = 0;
@@ -148,39 +113,31 @@ export default class TileHeader {
148
113
  this._selectionDepth = 0;
149
114
  this._initialTransform = new Matrix4();
150
115
  this.transform = new Matrix4();
151
-
152
116
  this._initializeLodMetric(header);
153
-
154
117
  this._initializeTransforms(header);
155
-
156
118
  this._initializeBoundingVolumes(header);
157
-
158
119
  this._initializeContent(header);
159
-
160
120
  this._initializeRenderingState(header);
161
121
 
162
122
  this._lodJudge = null;
123
+
163
124
  this._expireDate = null;
164
125
  this._expiredContent = null;
126
+ this.implicitTiling = null;
165
127
  Object.seal(this);
166
128
  }
167
-
168
129
  destroy() {
169
130
  this.header = null;
170
131
  }
171
-
172
132
  isDestroyed() {
173
133
  return this.header === null;
174
134
  }
175
-
176
135
  get selected() {
177
136
  return this._selectedFrame === this.tileset._frameNumber;
178
137
  }
179
-
180
138
  get isVisible() {
181
139
  return this._visible;
182
140
  }
183
-
184
141
  get isVisibleAndInRequestVolume() {
185
142
  return this._visible && this._inRequestVolume;
186
143
  }
@@ -217,14 +174,20 @@ export default class TileHeader {
217
174
  return this.contentState === TILE_CONTENT_STATE.FAILED;
218
175
  }
219
176
 
177
+ get distanceToCamera() {
178
+ return this._distanceToCamera;
179
+ }
180
+
181
+ get screenSpaceError() {
182
+ return this._screenSpaceError;
183
+ }
184
+
220
185
  getScreenSpaceError(frameState, useParentLodMetric) {
221
186
  switch (this.tileset.type) {
222
187
  case TILESET_TYPE.I3S:
223
188
  return getProjectedRadius(this, frameState);
224
-
225
189
  case TILESET_TYPE.TILES3D:
226
190
  return getTiles3DScreenSpaceError(this, frameState, useParentLodMetric);
227
-
228
191
  default:
229
192
  throw new Error('Unsupported tileset type');
230
193
  }
@@ -239,16 +202,15 @@ export default class TileHeader {
239
202
  const {
240
203
  skipLevelOfDetail
241
204
  } = traverser.options;
205
+
242
206
  const maySkipTile = this.refine === TILE_REFINEMENT.ADD || skipLevelOfDetail;
243
207
 
244
208
  if (maySkipTile && !this.isVisible && this._visible !== undefined) {
245
209
  return -1;
246
210
  }
247
-
248
211
  if (this.tileset._frameNumber - this._touchedFrame >= 1) {
249
212
  return -1;
250
213
  }
251
-
252
214
  if (this.contentState === TILE_CONTENT_STATE.UNLOADED) {
253
215
  return -1;
254
216
  }
@@ -257,6 +219,7 @@ export default class TileHeader {
257
219
  const useParentScreenSpaceError = parent && (!maySkipTile || this._screenSpaceError === 0.0 || parent.hasTilesetContent);
258
220
  const screenSpaceError = useParentScreenSpaceError ? parent._screenSpaceError : this._screenSpaceError;
259
221
  const rootScreenSpaceError = traverser.root ? traverser.root._screenSpaceError : 0.0;
222
+
260
223
  return Math.max(rootScreenSpaceError - screenSpaceError, 0);
261
224
  }
262
225
 
@@ -264,48 +227,39 @@ export default class TileHeader {
264
227
  if (this.hasEmptyContent) {
265
228
  return false;
266
229
  }
267
-
268
230
  if (this.content) {
269
231
  return true;
270
232
  }
271
-
272
233
  const expired = this.contentExpired;
273
-
274
234
  if (expired) {
275
235
  this._expireDate = null;
276
236
  }
277
-
278
237
  this.contentState = TILE_CONTENT_STATE.LOADING;
279
238
  const requestToken = await this.tileset._requestScheduler.scheduleRequest(this.id, this._getPriority.bind(this));
280
-
281
239
  if (!requestToken) {
282
240
  this.contentState = TILE_CONTENT_STATE.UNLOADED;
283
241
  return false;
284
242
  }
285
-
286
243
  try {
287
244
  const contentUrl = this.tileset.getTileUrl(this.contentUrl);
288
245
  const loader = this.tileset.loader;
289
- const options = { ...this.tileset.loadOptions,
290
- [loader.id]: { ...this.tileset.loadOptions[loader.id],
246
+ const options = {
247
+ ...this.tileset.loadOptions,
248
+ [loader.id]: {
249
+ ...this.tileset.loadOptions[loader.id],
291
250
  isTileset: this.type === 'json',
292
251
  ...this._getLoaderSpecificOptions(loader.id)
293
252
  }
294
253
  };
295
254
  this.content = await load(contentUrl, loader, options);
296
-
297
255
  if (this.tileset.options.contentLoader) {
298
256
  await this.tileset.options.contentLoader(this);
299
257
  }
300
-
301
258
  if (this._isTileset()) {
302
259
  this.tileset._initializeTileHeaders(this.content, this);
303
260
  }
304
-
305
261
  this.contentState = TILE_CONTENT_STATE.READY;
306
-
307
262
  this._onContentLoaded();
308
-
309
263
  return true;
310
264
  } catch (error) {
311
265
  this.contentState = TILE_CONTENT_STATE.FAILED;
@@ -319,13 +273,10 @@ export default class TileHeader {
319
273
  if (this.content && this.content.destroy) {
320
274
  this.content.destroy();
321
275
  }
322
-
323
276
  this.content = null;
324
-
325
277
  if (this.header.content && this.header.content.destroy) {
326
278
  this.header.content.destroy();
327
279
  }
328
-
329
280
  this.header.content = null;
330
281
  this.contentState = TILE_CONTENT_STATE.UNLOADED;
331
282
  return true;
@@ -335,16 +286,12 @@ export default class TileHeader {
335
286
  if (this._frameNumber === frameState.frameNumber) {
336
287
  return;
337
288
  }
338
-
339
289
  const parent = this.parent;
340
290
  const parentVisibilityPlaneMask = parent ? parent._visibilityPlaneMask : CullingVolume.MASK_INDETERMINATE;
341
-
342
291
  if (this.tileset._traverser.options.updateTransforms) {
343
292
  const parentTransform = parent ? parent.computedTransform : this.tileset.modelMatrix;
344
-
345
293
  this._updateTransform(parentTransform);
346
294
  }
347
-
348
295
  this._distanceToCamera = this.distanceToTile(frameState);
349
296
  this._screenSpaceError = this.getScreenSpaceError(frameState, false);
350
297
  this._visibilityPlaneMask = this.visibility(frameState, parentVisibilityPlaneMask);
@@ -361,11 +308,13 @@ export default class TileHeader {
361
308
  const {
362
309
  boundingVolume
363
310
  } = this;
311
+
364
312
  return cullingVolume.computeVisibilityWithPlaneMask(boundingVolume, parentVisibilityPlaneMask);
365
313
  }
366
314
 
367
315
  contentVisibility() {
368
316
  return true;
317
+
369
318
  }
370
319
 
371
320
  distanceToTile(frameState) {
@@ -373,9 +322,10 @@ export default class TileHeader {
373
322
  return Math.sqrt(Math.max(boundingVolume.distanceSquaredTo(frameState.camera.position), 0));
374
323
  }
375
324
 
376
- cameraSpaceZDepth({
377
- camera
378
- }) {
325
+ cameraSpaceZDepth(_ref) {
326
+ let {
327
+ camera
328
+ } = _ref;
379
329
  const boundingVolume = this.boundingVolume;
380
330
  scratchVector.subVectors(boundingVolume.center, camera.position);
381
331
  return camera.direction.dot(scratchVector);
@@ -389,14 +339,12 @@ export default class TileHeader {
389
339
  updateExpiration() {
390
340
  if (defined(this._expireDate) && this.contentReady && !this.hasEmptyContent) {
391
341
  const now = Date.now();
392
-
393
342
  if (Date.lessThan(this._expireDate, now)) {
394
343
  this.contentState = TILE_CONTENT_STATE.EXPIRED;
395
344
  this._expiredContent = this.content;
396
345
  }
397
346
  }
398
347
  }
399
-
400
348
  get extras() {
401
349
  return this.header.extras;
402
350
  }
@@ -416,7 +364,6 @@ export default class TileHeader {
416
364
  console.warn('3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue');
417
365
  }
418
366
  }
419
-
420
367
  _initializeTransforms(tileHeader) {
421
368
  this.transform = tileHeader.transform ? new Matrix4(tileHeader.transform) : new Matrix4();
422
369
  const parent = this.parent;
@@ -426,14 +373,11 @@ export default class TileHeader {
426
373
  const parentInitialTransform = parent && parent._initialTransform ? parent._initialTransform.clone() : new Matrix4();
427
374
  this._initialTransform = new Matrix4(parentInitialTransform).multiplyRight(this.transform);
428
375
  }
429
-
430
376
  _initializeBoundingVolumes(tileHeader) {
431
377
  this._contentBoundingVolume = null;
432
378
  this._viewerRequestVolume = null;
433
-
434
379
  this._updateBoundingVolume(tileHeader);
435
380
  }
436
-
437
381
  _initializeContent(tileHeader) {
438
382
  this.content = {
439
383
  _tileset: this.tileset,
@@ -441,8 +385,8 @@ export default class TileHeader {
441
385
  };
442
386
  this.hasEmptyContent = true;
443
387
  this.contentState = TILE_CONTENT_STATE.UNLOADED;
444
- this.hasTilesetContent = false;
445
388
 
389
+ this.hasTilesetContent = false;
446
390
  if (tileHeader.contentUrl) {
447
391
  this.content = null;
448
392
  this.hasEmptyContent = false;
@@ -452,6 +396,7 @@ export default class TileHeader {
452
396
  _initializeRenderingState(header) {
453
397
  this.depth = header.level || (this.parent ? this.parent.depth + 1 : 0);
454
398
  this._shouldRefine = false;
399
+
455
400
  this._distanceToCamera = 0;
456
401
  this._centerZDepth = 0;
457
402
  this._screenSpaceError = 0;
@@ -467,22 +412,18 @@ export default class TileHeader {
467
412
  this._requestedFrame = 0;
468
413
  this._priority = 0.0;
469
414
  }
470
-
471
415
  _getRefine(refine) {
472
416
  return refine || this.parent && this.parent.refine || TILE_REFINEMENT.REPLACE;
473
417
  }
474
-
475
418
  _isTileset() {
476
419
  return this.contentUrl.indexOf('.json') !== -1;
477
420
  }
478
-
479
421
  _onContentLoaded() {
480
422
  switch (this.content && this.content.type) {
481
423
  case 'vctr':
482
424
  case 'geom':
483
425
  this.tileset._traverser.disableSkipLevelOfDetail = true;
484
426
  break;
485
-
486
427
  default:
487
428
  }
488
429
 
@@ -490,11 +431,9 @@ export default class TileHeader {
490
431
  this.hasTilesetContent = true;
491
432
  }
492
433
  }
493
-
494
434
  _updateBoundingVolume(header) {
495
435
  this.boundingVolume = createBoundingVolume(header.boundingVolume, this.computedTransform, this.boundingVolume);
496
436
  const content = header.content;
497
-
498
437
  if (!content) {
499
438
  return;
500
439
  }
@@ -502,40 +441,48 @@ export default class TileHeader {
502
441
  if (content.boundingVolume) {
503
442
  this._contentBoundingVolume = createBoundingVolume(content.boundingVolume, this.computedTransform, this._contentBoundingVolume);
504
443
  }
505
-
506
444
  if (header.viewerRequestVolume) {
507
445
  this._viewerRequestVolume = createBoundingVolume(header.viewerRequestVolume, this.computedTransform, this._viewerRequestVolume);
508
446
  }
509
447
  }
510
448
 
511
- _updateTransform(parentTransform = new Matrix4()) {
449
+ _updateTransform() {
450
+ let parentTransform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Matrix4();
512
451
  const computedTransform = parentTransform.clone().multiplyRight(this.transform);
513
452
  const didTransformChange = !computedTransform.equals(this.computedTransform);
514
-
515
453
  if (!didTransformChange) {
516
454
  return;
517
455
  }
518
-
519
456
  this.computedTransform = computedTransform;
520
-
521
457
  this._updateBoundingVolume(this.header);
522
458
  }
523
459
 
524
460
  _getLoaderSpecificOptions(loaderId) {
525
461
  switch (loaderId) {
526
462
  case 'i3s':
527
- return { ...this.tileset.options.i3s,
528
- tile: this.header,
529
- tileset: this.tileset.tileset,
463
+ return {
464
+ ...this.tileset.options.i3s,
465
+ _tileOptions: {
466
+ attributeUrls: this.header.attributeUrls,
467
+ textureUrl: this.header.textureUrl,
468
+ textureFormat: this.header.textureFormat,
469
+ textureLoaderOptions: this.header.textureLoaderOptions,
470
+ materialDefinition: this.header.materialDefinition,
471
+ isDracoGeometry: this.header.isDracoGeometry,
472
+ mbs: this.header.mbs
473
+ },
474
+ _tilesetOptions: {
475
+ store: this.tileset.tileset.store,
476
+ attributeStorageInfo: this.tileset.tileset.attributeStorageInfo,
477
+ fields: this.tileset.tileset.fields
478
+ },
530
479
  isTileHeader: false
531
480
  };
532
-
533
481
  case '3d-tiles':
534
482
  case 'cesium-ion':
535
483
  default:
536
484
  return get3dTilesOptions(this.tileset.tileset);
537
485
  }
538
486
  }
539
-
540
487
  }
541
488
  //# sourceMappingURL=tile-3d.js.map