@loaders.gl/tiles 3.3.0-alpha.1 → 3.3.0-alpha.11
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 +1031 -1433
- 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 +45 -50
- 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 +111 -98
- package/dist/es5/tileset/tile-3d.js.map +1 -1
- package/dist/es5/tileset/tileset-3d.js +130 -196
- 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-frame-counter.js → i3s-pending-tiles-register.js} +21 -16
- package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
- package/dist/es5/tileset/traversers/i3s-tile-manager.js +33 -27
- package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
- package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +10 -52
- 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 +55 -78
- 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 +36 -20
- 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 +47 -108
- package/dist/esm/tileset/tile-3d.js.map +1 -1
- package/dist/esm/tileset/tileset-3d.js +70 -163
- 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 +28 -0
- package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
- package/dist/esm/tileset/traversers/i3s-tile-manager.js +34 -15
- package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +1 -1
- package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +8 -22
- 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 +20 -59
- 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 +5 -8
- package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
- package/dist/tileset/helpers/frame-state.js +27 -12
- package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -1
- package/dist/tileset/tile-3d.d.ts +15 -4
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +15 -2
- package/dist/tileset/tileset-3d.d.ts +17 -4
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/tileset/tileset-3d.js +47 -10
- package/dist/tileset/traversers/{i3s-frame-counter.d.ts → i3s-pending-tiles-register.d.ts} +7 -4
- package/dist/tileset/traversers/i3s-pending-tiles-register.d.ts.map +1 -0
- package/dist/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +17 -8
- package/dist/tileset/traversers/i3s-tile-manager.d.ts +19 -1
- package/dist/tileset/traversers/i3s-tile-manager.d.ts.map +1 -1
- package/dist/tileset/traversers/i3s-tile-manager.js +32 -12
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts +1 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.js +9 -9
- package/dist/tileset/traversers/tileset-traverser.d.ts +3 -3
- package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
- package/dist/tileset/traversers/tileset-traverser.js +4 -4
- package/dist/types.d.ts +30 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/tileset/helpers/frame-state.ts +47 -19
- package/src/tileset/helpers/i3s-lod.ts +3 -1
- package/src/tileset/tile-3d.ts +16 -2
- package/src/tileset/tileset-3d.ts +55 -16
- package/src/tileset/traversers/i3s-pending-tiles-register.ts +44 -0
- package/src/tileset/traversers/i3s-tile-manager.ts +47 -11
- package/src/tileset/traversers/i3s-tileset-traverser.ts +5 -5
- package/src/tileset/traversers/tileset-traverser.ts +2 -2
- package/src/types.ts +32 -0
- package/dist/es5/tileset/traversers/i3s-frame-counter.js.map +0 -1
- package/dist/esm/tileset/traversers/i3s-frame-counter.js +0 -23
- package/dist/esm/tileset/traversers/i3s-frame-counter.js.map +0 -1
- package/dist/tileset/traversers/i3s-frame-counter.d.ts.map +0 -1
- package/src/tileset/traversers/i3s-frame-counter.ts +0 -35
|
@@ -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
|
}
|
|
@@ -229,10 +186,8 @@ export default class TileHeader {
|
|
|
229
186
|
switch (this.tileset.type) {
|
|
230
187
|
case TILESET_TYPE.I3S:
|
|
231
188
|
return getProjectedRadius(this, frameState);
|
|
232
|
-
|
|
233
189
|
case TILESET_TYPE.TILES3D:
|
|
234
190
|
return getTiles3DScreenSpaceError(this, frameState, useParentLodMetric);
|
|
235
|
-
|
|
236
191
|
default:
|
|
237
192
|
throw new Error('Unsupported tileset type');
|
|
238
193
|
}
|
|
@@ -247,16 +202,15 @@ export default class TileHeader {
|
|
|
247
202
|
const {
|
|
248
203
|
skipLevelOfDetail
|
|
249
204
|
} = traverser.options;
|
|
205
|
+
|
|
250
206
|
const maySkipTile = this.refine === TILE_REFINEMENT.ADD || skipLevelOfDetail;
|
|
251
207
|
|
|
252
208
|
if (maySkipTile && !this.isVisible && this._visible !== undefined) {
|
|
253
209
|
return -1;
|
|
254
210
|
}
|
|
255
|
-
|
|
256
211
|
if (this.tileset._frameNumber - this._touchedFrame >= 1) {
|
|
257
212
|
return -1;
|
|
258
213
|
}
|
|
259
|
-
|
|
260
214
|
if (this.contentState === TILE_CONTENT_STATE.UNLOADED) {
|
|
261
215
|
return -1;
|
|
262
216
|
}
|
|
@@ -265,6 +219,7 @@ export default class TileHeader {
|
|
|
265
219
|
const useParentScreenSpaceError = parent && (!maySkipTile || this._screenSpaceError === 0.0 || parent.hasTilesetContent);
|
|
266
220
|
const screenSpaceError = useParentScreenSpaceError ? parent._screenSpaceError : this._screenSpaceError;
|
|
267
221
|
const rootScreenSpaceError = traverser.root ? traverser.root._screenSpaceError : 0.0;
|
|
222
|
+
|
|
268
223
|
return Math.max(rootScreenSpaceError - screenSpaceError, 0);
|
|
269
224
|
}
|
|
270
225
|
|
|
@@ -272,48 +227,39 @@ export default class TileHeader {
|
|
|
272
227
|
if (this.hasEmptyContent) {
|
|
273
228
|
return false;
|
|
274
229
|
}
|
|
275
|
-
|
|
276
230
|
if (this.content) {
|
|
277
231
|
return true;
|
|
278
232
|
}
|
|
279
|
-
|
|
280
233
|
const expired = this.contentExpired;
|
|
281
|
-
|
|
282
234
|
if (expired) {
|
|
283
235
|
this._expireDate = null;
|
|
284
236
|
}
|
|
285
|
-
|
|
286
237
|
this.contentState = TILE_CONTENT_STATE.LOADING;
|
|
287
238
|
const requestToken = await this.tileset._requestScheduler.scheduleRequest(this.id, this._getPriority.bind(this));
|
|
288
|
-
|
|
289
239
|
if (!requestToken) {
|
|
290
240
|
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
291
241
|
return false;
|
|
292
242
|
}
|
|
293
|
-
|
|
294
243
|
try {
|
|
295
244
|
const contentUrl = this.tileset.getTileUrl(this.contentUrl);
|
|
296
245
|
const loader = this.tileset.loader;
|
|
297
|
-
const options = {
|
|
298
|
-
|
|
246
|
+
const options = {
|
|
247
|
+
...this.tileset.loadOptions,
|
|
248
|
+
[loader.id]: {
|
|
249
|
+
...this.tileset.loadOptions[loader.id],
|
|
299
250
|
isTileset: this.type === 'json',
|
|
300
251
|
...this._getLoaderSpecificOptions(loader.id)
|
|
301
252
|
}
|
|
302
253
|
};
|
|
303
254
|
this.content = await load(contentUrl, loader, options);
|
|
304
|
-
|
|
305
255
|
if (this.tileset.options.contentLoader) {
|
|
306
256
|
await this.tileset.options.contentLoader(this);
|
|
307
257
|
}
|
|
308
|
-
|
|
309
258
|
if (this._isTileset()) {
|
|
310
259
|
this.tileset._initializeTileHeaders(this.content, this);
|
|
311
260
|
}
|
|
312
|
-
|
|
313
261
|
this.contentState = TILE_CONTENT_STATE.READY;
|
|
314
|
-
|
|
315
262
|
this._onContentLoaded();
|
|
316
|
-
|
|
317
263
|
return true;
|
|
318
264
|
} catch (error) {
|
|
319
265
|
this.contentState = TILE_CONTENT_STATE.FAILED;
|
|
@@ -327,13 +273,10 @@ export default class TileHeader {
|
|
|
327
273
|
if (this.content && this.content.destroy) {
|
|
328
274
|
this.content.destroy();
|
|
329
275
|
}
|
|
330
|
-
|
|
331
276
|
this.content = null;
|
|
332
|
-
|
|
333
277
|
if (this.header.content && this.header.content.destroy) {
|
|
334
278
|
this.header.content.destroy();
|
|
335
279
|
}
|
|
336
|
-
|
|
337
280
|
this.header.content = null;
|
|
338
281
|
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
339
282
|
return true;
|
|
@@ -343,16 +286,12 @@ export default class TileHeader {
|
|
|
343
286
|
if (this._frameNumber === frameState.frameNumber) {
|
|
344
287
|
return;
|
|
345
288
|
}
|
|
346
|
-
|
|
347
289
|
const parent = this.parent;
|
|
348
290
|
const parentVisibilityPlaneMask = parent ? parent._visibilityPlaneMask : CullingVolume.MASK_INDETERMINATE;
|
|
349
|
-
|
|
350
291
|
if (this.tileset._traverser.options.updateTransforms) {
|
|
351
292
|
const parentTransform = parent ? parent.computedTransform : this.tileset.modelMatrix;
|
|
352
|
-
|
|
353
293
|
this._updateTransform(parentTransform);
|
|
354
294
|
}
|
|
355
|
-
|
|
356
295
|
this._distanceToCamera = this.distanceToTile(frameState);
|
|
357
296
|
this._screenSpaceError = this.getScreenSpaceError(frameState, false);
|
|
358
297
|
this._visibilityPlaneMask = this.visibility(frameState, parentVisibilityPlaneMask);
|
|
@@ -369,11 +308,13 @@ export default class TileHeader {
|
|
|
369
308
|
const {
|
|
370
309
|
boundingVolume
|
|
371
310
|
} = this;
|
|
311
|
+
|
|
372
312
|
return cullingVolume.computeVisibilityWithPlaneMask(boundingVolume, parentVisibilityPlaneMask);
|
|
373
313
|
}
|
|
374
314
|
|
|
375
315
|
contentVisibility() {
|
|
376
316
|
return true;
|
|
317
|
+
|
|
377
318
|
}
|
|
378
319
|
|
|
379
320
|
distanceToTile(frameState) {
|
|
@@ -381,9 +322,10 @@ export default class TileHeader {
|
|
|
381
322
|
return Math.sqrt(Math.max(boundingVolume.distanceSquaredTo(frameState.camera.position), 0));
|
|
382
323
|
}
|
|
383
324
|
|
|
384
|
-
cameraSpaceZDepth({
|
|
385
|
-
|
|
386
|
-
|
|
325
|
+
cameraSpaceZDepth(_ref) {
|
|
326
|
+
let {
|
|
327
|
+
camera
|
|
328
|
+
} = _ref;
|
|
387
329
|
const boundingVolume = this.boundingVolume;
|
|
388
330
|
scratchVector.subVectors(boundingVolume.center, camera.position);
|
|
389
331
|
return camera.direction.dot(scratchVector);
|
|
@@ -397,14 +339,12 @@ export default class TileHeader {
|
|
|
397
339
|
updateExpiration() {
|
|
398
340
|
if (defined(this._expireDate) && this.contentReady && !this.hasEmptyContent) {
|
|
399
341
|
const now = Date.now();
|
|
400
|
-
|
|
401
342
|
if (Date.lessThan(this._expireDate, now)) {
|
|
402
343
|
this.contentState = TILE_CONTENT_STATE.EXPIRED;
|
|
403
344
|
this._expiredContent = this.content;
|
|
404
345
|
}
|
|
405
346
|
}
|
|
406
347
|
}
|
|
407
|
-
|
|
408
348
|
get extras() {
|
|
409
349
|
return this.header.extras;
|
|
410
350
|
}
|
|
@@ -424,7 +364,6 @@ export default class TileHeader {
|
|
|
424
364
|
console.warn('3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue');
|
|
425
365
|
}
|
|
426
366
|
}
|
|
427
|
-
|
|
428
367
|
_initializeTransforms(tileHeader) {
|
|
429
368
|
this.transform = tileHeader.transform ? new Matrix4(tileHeader.transform) : new Matrix4();
|
|
430
369
|
const parent = this.parent;
|
|
@@ -434,14 +373,11 @@ export default class TileHeader {
|
|
|
434
373
|
const parentInitialTransform = parent && parent._initialTransform ? parent._initialTransform.clone() : new Matrix4();
|
|
435
374
|
this._initialTransform = new Matrix4(parentInitialTransform).multiplyRight(this.transform);
|
|
436
375
|
}
|
|
437
|
-
|
|
438
376
|
_initializeBoundingVolumes(tileHeader) {
|
|
439
377
|
this._contentBoundingVolume = null;
|
|
440
378
|
this._viewerRequestVolume = null;
|
|
441
|
-
|
|
442
379
|
this._updateBoundingVolume(tileHeader);
|
|
443
380
|
}
|
|
444
|
-
|
|
445
381
|
_initializeContent(tileHeader) {
|
|
446
382
|
this.content = {
|
|
447
383
|
_tileset: this.tileset,
|
|
@@ -449,8 +385,8 @@ export default class TileHeader {
|
|
|
449
385
|
};
|
|
450
386
|
this.hasEmptyContent = true;
|
|
451
387
|
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
452
|
-
this.hasTilesetContent = false;
|
|
453
388
|
|
|
389
|
+
this.hasTilesetContent = false;
|
|
454
390
|
if (tileHeader.contentUrl) {
|
|
455
391
|
this.content = null;
|
|
456
392
|
this.hasEmptyContent = false;
|
|
@@ -460,6 +396,7 @@ export default class TileHeader {
|
|
|
460
396
|
_initializeRenderingState(header) {
|
|
461
397
|
this.depth = header.level || (this.parent ? this.parent.depth + 1 : 0);
|
|
462
398
|
this._shouldRefine = false;
|
|
399
|
+
|
|
463
400
|
this._distanceToCamera = 0;
|
|
464
401
|
this._centerZDepth = 0;
|
|
465
402
|
this._screenSpaceError = 0;
|
|
@@ -475,22 +412,18 @@ export default class TileHeader {
|
|
|
475
412
|
this._requestedFrame = 0;
|
|
476
413
|
this._priority = 0.0;
|
|
477
414
|
}
|
|
478
|
-
|
|
479
415
|
_getRefine(refine) {
|
|
480
416
|
return refine || this.parent && this.parent.refine || TILE_REFINEMENT.REPLACE;
|
|
481
417
|
}
|
|
482
|
-
|
|
483
418
|
_isTileset() {
|
|
484
419
|
return this.contentUrl.indexOf('.json') !== -1;
|
|
485
420
|
}
|
|
486
|
-
|
|
487
421
|
_onContentLoaded() {
|
|
488
422
|
switch (this.content && this.content.type) {
|
|
489
423
|
case 'vctr':
|
|
490
424
|
case 'geom':
|
|
491
425
|
this.tileset._traverser.disableSkipLevelOfDetail = true;
|
|
492
426
|
break;
|
|
493
|
-
|
|
494
427
|
default:
|
|
495
428
|
}
|
|
496
429
|
|
|
@@ -498,11 +431,9 @@ export default class TileHeader {
|
|
|
498
431
|
this.hasTilesetContent = true;
|
|
499
432
|
}
|
|
500
433
|
}
|
|
501
|
-
|
|
502
434
|
_updateBoundingVolume(header) {
|
|
503
435
|
this.boundingVolume = createBoundingVolume(header.boundingVolume, this.computedTransform, this.boundingVolume);
|
|
504
436
|
const content = header.content;
|
|
505
|
-
|
|
506
437
|
if (!content) {
|
|
507
438
|
return;
|
|
508
439
|
}
|
|
@@ -510,40 +441,48 @@ export default class TileHeader {
|
|
|
510
441
|
if (content.boundingVolume) {
|
|
511
442
|
this._contentBoundingVolume = createBoundingVolume(content.boundingVolume, this.computedTransform, this._contentBoundingVolume);
|
|
512
443
|
}
|
|
513
|
-
|
|
514
444
|
if (header.viewerRequestVolume) {
|
|
515
445
|
this._viewerRequestVolume = createBoundingVolume(header.viewerRequestVolume, this.computedTransform, this._viewerRequestVolume);
|
|
516
446
|
}
|
|
517
447
|
}
|
|
518
448
|
|
|
519
|
-
_updateTransform(
|
|
449
|
+
_updateTransform() {
|
|
450
|
+
let parentTransform = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Matrix4();
|
|
520
451
|
const computedTransform = parentTransform.clone().multiplyRight(this.transform);
|
|
521
452
|
const didTransformChange = !computedTransform.equals(this.computedTransform);
|
|
522
|
-
|
|
523
453
|
if (!didTransformChange) {
|
|
524
454
|
return;
|
|
525
455
|
}
|
|
526
|
-
|
|
527
456
|
this.computedTransform = computedTransform;
|
|
528
|
-
|
|
529
457
|
this._updateBoundingVolume(this.header);
|
|
530
458
|
}
|
|
531
459
|
|
|
532
460
|
_getLoaderSpecificOptions(loaderId) {
|
|
533
461
|
switch (loaderId) {
|
|
534
462
|
case 'i3s':
|
|
535
|
-
return {
|
|
536
|
-
|
|
537
|
-
|
|
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
|
+
},
|
|
538
479
|
isTileHeader: false
|
|
539
480
|
};
|
|
540
|
-
|
|
541
481
|
case '3d-tiles':
|
|
542
482
|
case 'cesium-ion':
|
|
543
483
|
default:
|
|
544
484
|
return get3dTilesOptions(this.tileset.tileset);
|
|
545
485
|
}
|
|
546
486
|
}
|
|
547
|
-
|
|
548
487
|
}
|
|
549
488
|
//# sourceMappingURL=tile-3d.js.map
|