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