@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.
- package/dist/dist.min.js +951 -1387
- 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 +119 -96
- package/dist/es5/tileset/tile-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-3d.js +119 -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 +8 -50
- 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 +55 -108
- package/dist/esm/tileset/tile-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-3d.js +58 -154
- 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 +5 -19
- 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 +1 -1
- package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset/helpers/frame-state.js +1 -1
- package/dist/tileset/tile-3d.d.ts +24 -5
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +27 -2
- package/dist/tileset/tileset-3d.d.ts +14 -2
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/tileset/tileset-3d.js +35 -0
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.js +5 -6
- package/dist/tileset/traversers/tileset-traverser.d.ts +2 -2
- package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/tileset-traverser.js +3 -3
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/tileset/helpers/frame-state.ts +1 -1
- package/src/tileset/tile-3d.ts +31 -4
- package/src/tileset/tileset-3d.ts +36 -0
- 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 = {
|
|
290
|
-
|
|
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
|
-
|
|
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(
|
|
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 {
|
|
528
|
-
|
|
529
|
-
|
|
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
|