@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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
|
|
2
3
|
import { assert } from '@loaders.gl/loader-utils';
|
|
4
|
+
|
|
3
5
|
export default class ManagedArray {
|
|
4
|
-
constructor(
|
|
6
|
+
constructor() {
|
|
7
|
+
let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
5
8
|
_defineProperty(this, "_map", new Map());
|
|
6
|
-
|
|
7
9
|
_defineProperty(this, "_array", void 0);
|
|
8
|
-
|
|
9
10
|
_defineProperty(this, "_length", void 0);
|
|
10
|
-
|
|
11
11
|
this._array = new Array(length);
|
|
12
12
|
this._length = length;
|
|
13
13
|
}
|
|
@@ -15,10 +15,8 @@ export default class ManagedArray {
|
|
|
15
15
|
get length() {
|
|
16
16
|
return this._length;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
18
|
set length(length) {
|
|
20
19
|
this._length = length;
|
|
21
|
-
|
|
22
20
|
if (length > this._array.length) {
|
|
23
21
|
this._array.length = length;
|
|
24
22
|
}
|
|
@@ -35,28 +33,20 @@ export default class ManagedArray {
|
|
|
35
33
|
|
|
36
34
|
set(index, element) {
|
|
37
35
|
assert(index >= 0);
|
|
38
|
-
|
|
39
36
|
if (index >= this.length) {
|
|
40
37
|
this.length = index + 1;
|
|
41
38
|
}
|
|
42
|
-
|
|
43
39
|
if (this._map.has(this._array[index])) {
|
|
44
40
|
this._map.delete(this._array[index]);
|
|
45
41
|
}
|
|
46
|
-
|
|
47
42
|
this._array[index] = element;
|
|
48
|
-
|
|
49
43
|
this._map.set(element, index);
|
|
50
44
|
}
|
|
51
|
-
|
|
52
45
|
delete(element) {
|
|
53
46
|
const index = this._map.get(element);
|
|
54
|
-
|
|
55
47
|
if (index >= 0) {
|
|
56
48
|
this._array.splice(index, 1);
|
|
57
|
-
|
|
58
49
|
this._map.delete(element);
|
|
59
|
-
|
|
60
50
|
this.length--;
|
|
61
51
|
}
|
|
62
52
|
}
|
|
@@ -69,22 +59,18 @@ export default class ManagedArray {
|
|
|
69
59
|
if (!this._map.has(element)) {
|
|
70
60
|
const index = this.length++;
|
|
71
61
|
this._array[index] = element;
|
|
72
|
-
|
|
73
62
|
this._map.set(element, index);
|
|
74
63
|
}
|
|
75
64
|
}
|
|
76
65
|
|
|
77
66
|
pop() {
|
|
78
67
|
const element = this._array[--this.length];
|
|
79
|
-
|
|
80
68
|
this._map.delete(element);
|
|
81
|
-
|
|
82
69
|
return element;
|
|
83
70
|
}
|
|
84
71
|
|
|
85
72
|
reserve(length) {
|
|
86
73
|
assert(length >= 0);
|
|
87
|
-
|
|
88
74
|
if (length > this._array.length) {
|
|
89
75
|
this._array.length = length;
|
|
90
76
|
}
|
|
@@ -99,19 +85,15 @@ export default class ManagedArray {
|
|
|
99
85
|
if (length === null || length === undefined) {
|
|
100
86
|
length = this.length;
|
|
101
87
|
}
|
|
102
|
-
|
|
103
88
|
this._array.length = length;
|
|
104
89
|
}
|
|
105
|
-
|
|
106
90
|
reset() {
|
|
107
91
|
this._array = [];
|
|
108
92
|
this._map = new Map();
|
|
109
93
|
this._length = 0;
|
|
110
94
|
}
|
|
111
|
-
|
|
112
95
|
find(target) {
|
|
113
96
|
return this._map.has(target);
|
|
114
97
|
}
|
|
115
|
-
|
|
116
98
|
}
|
|
117
99
|
//# sourceMappingURL=managed-array.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"managed-array.js","names":["assert","ManagedArray","constructor","length","Map","_array","Array","_length","values","get","index","set","element","_map","has","delete","splice","peek","push","pop","reserve","resize","trim","undefined","reset","find","target"],"sources":["../../../src/utils/managed-array.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {assert} from '@loaders.gl/loader-utils';\n\n/**\n * A wrapper around arrays so that the internal length of the array can be manually managed.\n *\n * @alias ManagedArray\n * @constructor\n * @private\n *\n * @param {Number} [length=0] The initial length of the array.\n */\nexport default class ManagedArray {\n _map = new Map();\n _array: any[];\n _length: number;\n\n constructor(length = 0) {\n this._array = new Array(length);\n this._length = length;\n }\n\n /**\n * Gets or sets the length of the array.\n * If the set length is greater than the length of the internal array, the internal array is resized.\n *\n * @memberof ManagedArray.prototype\n * @type Number\n */\n get length() {\n return this._length;\n }\n\n set length(length) {\n this._length = length;\n if (length > this._array.length) {\n this._array.length = length;\n }\n }\n\n /**\n * Gets the internal array.\n *\n * @memberof ManagedArray.prototype\n * @type Array\n * @readonly\n */\n get values() {\n return this._array;\n }\n\n /**\n * Gets the element at an index.\n *\n * @param {Number} index The index to get.\n */\n get(index) {\n assert(index < this._array.length);\n return this._array[index];\n }\n\n /**\n * Sets the element at an index. Resizes the array if index is greater than the length of the array.\n *\n * @param {Number} index The index to set.\n * @param {*} element The element to set at index.\n */\n set(index, element) {\n assert(index >= 0);\n\n if (index >= this.length) {\n this.length = index + 1;\n }\n\n if (this._map.has(this._array[index])) {\n this._map.delete(this._array[index]);\n }\n\n this._array[index] = element;\n this._map.set(element, index);\n }\n\n delete(element) {\n const index = this._map.get(element);\n if (index >= 0) {\n this._array.splice(index, 1);\n this._map.delete(element);\n this.length--;\n }\n }\n\n /**\n * Returns the last element in the array without modifying the array.\n *\n * @returns {*} The last element in the array.\n */\n peek() {\n return this._array[this._length - 1];\n }\n\n /**\n * Push an element into the array.\n *\n * @param {*} element The element to push.\n */\n push(element) {\n if (!this._map.has(element)) {\n const index = this.length++;\n this._array[index] = element;\n this._map.set(element, index);\n }\n }\n\n /**\n * Pop an element from the array.\n *\n * @returns {*} The last element in the array.\n */\n pop() {\n const element = this._array[--this.length];\n this._map.delete(element);\n return element;\n }\n\n /**\n * Resize the internal array if length > _array.length.\n *\n * @param {Number} length The length.\n */\n reserve(length) {\n assert(length >= 0);\n\n if (length > this._array.length) {\n this._array.length = length;\n }\n }\n\n /**\n * Resize the array.\n *\n * @param {Number} length The length.\n */\n resize(length) {\n assert(length >= 0);\n\n this.length = length;\n }\n\n /**\n * Trim the internal array to the specified length. Defaults to the current length.\n *\n * @param {Number} [length] The length.\n */\n trim(length) {\n if (length === null || length === undefined) {\n length = this.length;\n }\n this._array.length = length;\n }\n\n reset() {\n this._array = [];\n this._map = new Map();\n this._length = 0;\n }\n\n find(target) {\n return this._map.has(target);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Tile3D } from '@loaders.gl/tiles';
|
|
2
2
|
import { CullingVolume } from '@math.gl/culling';
|
|
3
3
|
import { GeospatialViewport } from '../../types';
|
|
4
|
-
export
|
|
4
|
+
export type FrameState = {
|
|
5
5
|
camera: {
|
|
6
6
|
position: number[];
|
|
7
7
|
direction: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame-state.d.ts","sourceRoot":"","sources":["../../../src/tileset/helpers/frame-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAC,aAAa,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAC,kBAAkB,EAAW,MAAM,aAAa,CAAC;AAEzD,
|
|
1
|
+
{"version":3,"file":"frame-state.d.ts","sourceRoot":"","sources":["../../../src/tileset/helpers/frame-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAC,aAAa,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAC,kBAAkB,EAAW,MAAM,aAAa,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,EAAE,EAAE,MAAM,EAAE,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,eAAe,EAAE,kBAAkB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAeF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAwD3F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,MAAM,GAC3B,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAyBtB"}
|
|
@@ -109,7 +109,7 @@ function commonSpacePlanesToWGS84(viewport) {
|
|
|
109
109
|
cullingVolume.planes[i++].fromPointNormal(nearCenterCartesian, scratchVector.copy(nearCenterCartesian).subtract(cameraCartesian));
|
|
110
110
|
for (const dir in frustumPlanes) {
|
|
111
111
|
if (dir === 'near') {
|
|
112
|
-
continue;
|
|
112
|
+
continue; // eslint-disable-line no-continue
|
|
113
113
|
}
|
|
114
114
|
const plane = frustumPlanes[dir];
|
|
115
115
|
const posCommon = closestPointOnPlane(plane, nearCenterCommon, scratchPosition);
|
|
@@ -8,7 +8,7 @@ import type Tileset3D from './tileset-3d';
|
|
|
8
8
|
* @param extendedId - optional ID to separate copies of a tile for different viewports.
|
|
9
9
|
* const extendedId = `${tile.id}-${frameState.viewport.id}`;
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export type TileHeaderProps = {
|
|
12
12
|
tileset: Tileset3D;
|
|
13
13
|
header: Object;
|
|
14
14
|
parentHeader: TileHeader;
|
|
@@ -39,6 +39,7 @@ export default class TileHeader {
|
|
|
39
39
|
viewportIds: any[];
|
|
40
40
|
transform: Matrix4;
|
|
41
41
|
extensions: any;
|
|
42
|
+
implicitTiling?: any;
|
|
42
43
|
userData: {
|
|
43
44
|
[key: string]: any;
|
|
44
45
|
};
|
|
@@ -52,7 +53,7 @@ export default class TileHeader {
|
|
|
52
53
|
private _expireDate;
|
|
53
54
|
private _expiredContent;
|
|
54
55
|
private _shouldRefine;
|
|
55
|
-
|
|
56
|
+
_distanceToCamera: number;
|
|
56
57
|
private _centerZDepth;
|
|
57
58
|
private _screenSpaceError;
|
|
58
59
|
private _visibilityPlaneMask;
|
|
@@ -112,6 +113,14 @@ export default class TileHeader {
|
|
|
112
113
|
*/
|
|
113
114
|
get contentExpired(): boolean;
|
|
114
115
|
get contentFailed(): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Distance from the tile's bounding volume center to the camera
|
|
118
|
+
*/
|
|
119
|
+
get distanceToCamera(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Screen space error for LOD selection
|
|
122
|
+
*/
|
|
123
|
+
get screenSpaceError(): number;
|
|
115
124
|
/** Get the tile's screen space error. */
|
|
116
125
|
getScreenSpaceError(frameState: any, useParentLodMetric: any): number;
|
|
117
126
|
/**
|
|
@@ -170,9 +179,19 @@ export default class TileHeader {
|
|
|
170
179
|
_getLoaderSpecificOptions(loaderId: any): {
|
|
171
180
|
assetGltfUpAxis: any;
|
|
172
181
|
} | {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
182
|
+
_tileOptions: {
|
|
183
|
+
attributeUrls: any;
|
|
184
|
+
textureUrl: any;
|
|
185
|
+
textureFormat: any;
|
|
186
|
+
textureLoaderOptions: any;
|
|
187
|
+
materialDefinition: any;
|
|
188
|
+
isDracoGeometry: any;
|
|
189
|
+
mbs: any;
|
|
190
|
+
};
|
|
191
|
+
_tilesetOptions: {
|
|
192
|
+
store: any;
|
|
193
|
+
attributeStorageInfo: any;
|
|
194
|
+
fields: any;
|
|
176
195
|
};
|
|
177
196
|
isTileHeader: boolean;
|
|
178
197
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tile-3d.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,OAAO,EAAC,MAAM,eAAe,CAAC;AAM/C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAQjD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAQ1C;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tile-3d.ts"],"names":[],"mappings":"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"}
|
package/dist/tileset/tile-3d.js
CHANGED
|
@@ -97,6 +97,7 @@ class TileHeader {
|
|
|
97
97
|
// TODO Cesium 3d tiles specific
|
|
98
98
|
this._expireDate = null;
|
|
99
99
|
this._expiredContent = null;
|
|
100
|
+
this.implicitTiling = null;
|
|
100
101
|
Object.seal(this);
|
|
101
102
|
}
|
|
102
103
|
destroy() {
|
|
@@ -159,6 +160,18 @@ class TileHeader {
|
|
|
159
160
|
get contentFailed() {
|
|
160
161
|
return this.contentState === constants_1.TILE_CONTENT_STATE.FAILED;
|
|
161
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Distance from the tile's bounding volume center to the camera
|
|
165
|
+
*/
|
|
166
|
+
get distanceToCamera() {
|
|
167
|
+
return this._distanceToCamera;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Screen space error for LOD selection
|
|
171
|
+
*/
|
|
172
|
+
get screenSpaceError() {
|
|
173
|
+
return this._screenSpaceError;
|
|
174
|
+
}
|
|
162
175
|
/** Get the tile's screen space error. */
|
|
163
176
|
getScreenSpaceError(frameState, useParentLodMetric) {
|
|
164
177
|
switch (this.tileset.type) {
|
|
@@ -548,8 +561,20 @@ class TileHeader {
|
|
|
548
561
|
case 'i3s':
|
|
549
562
|
return {
|
|
550
563
|
...this.tileset.options.i3s,
|
|
551
|
-
|
|
552
|
-
|
|
564
|
+
_tileOptions: {
|
|
565
|
+
attributeUrls: this.header.attributeUrls,
|
|
566
|
+
textureUrl: this.header.textureUrl,
|
|
567
|
+
textureFormat: this.header.textureFormat,
|
|
568
|
+
textureLoaderOptions: this.header.textureLoaderOptions,
|
|
569
|
+
materialDefinition: this.header.materialDefinition,
|
|
570
|
+
isDracoGeometry: this.header.isDracoGeometry,
|
|
571
|
+
mbs: this.header.mbs
|
|
572
|
+
},
|
|
573
|
+
_tilesetOptions: {
|
|
574
|
+
store: this.tileset.tileset.store,
|
|
575
|
+
attributeStorageInfo: this.tileset.tileset.attributeStorageInfo,
|
|
576
|
+
fields: this.tileset.tileset.fields
|
|
577
|
+
},
|
|
553
578
|
isTileHeader: false
|
|
554
579
|
};
|
|
555
580
|
case '3d-tiles':
|
|
@@ -5,7 +5,7 @@ import { FrameState } from './helpers/frame-state';
|
|
|
5
5
|
import Tile3D from './tile-3d';
|
|
6
6
|
import TilesetTraverser from './traversers/tileset-traverser';
|
|
7
7
|
import { Viewport } from '../types';
|
|
8
|
-
export
|
|
8
|
+
export type Tileset3DProps = {
|
|
9
9
|
throttleRequests?: boolean;
|
|
10
10
|
maxRequests?: number;
|
|
11
11
|
loadOptions?: LoaderOptions;
|
|
@@ -28,7 +28,7 @@ export declare type Tileset3DProps = {
|
|
|
28
28
|
contentLoader?: (tile: Tile3D) => Promise<void>;
|
|
29
29
|
onTraversalComplete?: (selectedTiles: Tile3D[]) => Tile3D[];
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
type Props = {
|
|
32
32
|
description: string;
|
|
33
33
|
ellipsoid: object;
|
|
34
34
|
modelMatrix: Matrix4;
|
|
@@ -84,6 +84,13 @@ export default class Tileset3D {
|
|
|
84
84
|
attributions: any;
|
|
85
85
|
credits: any;
|
|
86
86
|
stats: Stats;
|
|
87
|
+
/** flags that contain information about data types in nested tiles */
|
|
88
|
+
contentFormats: {
|
|
89
|
+
draco: boolean;
|
|
90
|
+
meshopt: boolean;
|
|
91
|
+
dds: boolean;
|
|
92
|
+
ktx2: boolean;
|
|
93
|
+
};
|
|
87
94
|
traverseCounter: number;
|
|
88
95
|
geometricError: number;
|
|
89
96
|
selectedTiles: Tile3D[];
|
|
@@ -190,6 +197,11 @@ export default class Tileset3D {
|
|
|
190
197
|
_loadTile(tile: any): Promise<void>;
|
|
191
198
|
_onTileLoadError(tile: any, error: any): void;
|
|
192
199
|
_onTileLoad(tile: any, loaded: any): void;
|
|
200
|
+
/**
|
|
201
|
+
* Update information about data types in nested tiles
|
|
202
|
+
* @param tile instance of a nested Tile3D
|
|
203
|
+
*/
|
|
204
|
+
private updateContentTypes;
|
|
193
205
|
_onStartTileLoading(): void;
|
|
194
206
|
_onEndTileLoading(): void;
|
|
195
207
|
_addTileToCache(tile: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-3d.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAChB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,UAAU,EAAoC,MAAM,uBAAuB,CAAC;AAEpF,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAG9D,OAAO,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEtD,
|
|
1
|
+
{"version":3,"file":"tileset-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-3d.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAChB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAC,UAAU,EAAoC,MAAM,uBAAuB,CAAC;AAEpF,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAG9D,OAAO,EAAqB,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG;IAE3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IAClE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;CAC7D,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAClC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IACpC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;IACjE,mBAAmB,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3D,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,GAAG,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,aAAa,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,GAAG,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CAC3B,CAAC;AAwEF,MAAM,CAAC,OAAO,OAAO,SAAS;IAE5B,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAElC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAC/B,KAAK,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IAEb,KAAK,EAAE,KAAK,CAAC;IAEb,sEAAsE;IACtE,cAAc;;;;;MAA2D;IAEzE,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,aAAa,CAAgC;IACrD,4BAA4B,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,GAAG,CAAC;IAMpB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,sCAAsC,EAAE,GAAG,CAAC;IAG5C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,iBAAiB,EAAE,gBAAgB,CAAC;IAEpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,MAAM,CAAyB;IAGvC,OAAO,CAAC,aAAa,CAAM;IAG3B,OAAO,CAAC,mBAAmB,CAA+B;IAC1D,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,cAAc,CAAM;IAE5B,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;gBAES,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc;IA+E/C,wBAAwB;IACxB,OAAO,IAAI,IAAI;IAIf,6EAA6E;IAC7E,QAAQ,IAAI,OAAO;IAKnB,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAKxB;IAED,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAIrC,kBAAkB;IAClB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASpC,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;OAIG;IACH,MAAM,CAAC,SAAS,GAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,IAAW;IAcrD;;;;;OAKG;IACG,WAAW,CAAC,SAAS,GAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,IAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBlF;;;OAGG;IAEH,OAAO,CAAC,QAAQ;IAsChB;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAY1C;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IA4B7C;;OAEG;IACH,YAAY,IAAI,IAAI;IAuBpB,aAAa,CAAC,gBAAgB,KAAA,EAAE,aAAa,KAAA;IAW7C,UAAU;IAYV,YAAY;IAKZ,YAAY;IAoBN,kBAAkB,CAAC,WAAW,KAAA;IAiBpC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAuBjC,gBAAgB;IAehB,sBAAsB,CAAC,WAAW,KAAA,EAAE,gBAAgB,KAAA;IAiCpD,oBAAoB;IAoBpB,mBAAmB,CAAC,UAAU,KAAA;IAIxB,SAAS,CAAC,IAAI,KAAA;IAapB,gBAAgB,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAU5B,WAAW,CAAC,IAAI,KAAA,EAAE,MAAM,KAAA;IAsBxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B,mBAAmB;IAKnB,iBAAiB;IAKjB,eAAe,CAAC,IAAI,KAAA;IAIpB,iBAAiB,CAAC,IAAI,KAAA;IAStB,WAAW,CAAC,IAAI,KAAA;IAYhB,QAAQ;IAoBR,eAAe,CAAC,IAAI,KAAA;IAgBpB,YAAY,CAAC,IAAI,KAAA;IAMjB,yBAAyB,CAAC,WAAW,KAAA;IA6BrC,qBAAqB;CAKtB"}
|
|
@@ -116,6 +116,8 @@ class Tileset3D {
|
|
|
116
116
|
*/
|
|
117
117
|
// eslint-disable-next-line max-statements
|
|
118
118
|
constructor(json, options) {
|
|
119
|
+
/** flags that contain information about data types in nested tiles */
|
|
120
|
+
this.contentFormats = { draco: false, meshopt: false, dds: false, ktx2: false };
|
|
119
121
|
this.updatePromise = null;
|
|
120
122
|
(0, loader_utils_1.assert)(json);
|
|
121
123
|
// PUBLIC MEMBERS
|
|
@@ -585,9 +587,42 @@ class Tileset3D {
|
|
|
585
587
|
if (tile && tile.content) {
|
|
586
588
|
(0, transform_utils_1.calculateTransformProps)(tile, tile.content);
|
|
587
589
|
}
|
|
590
|
+
this.updateContentTypes(tile);
|
|
588
591
|
this._addTileToCache(tile);
|
|
589
592
|
this.options.onTileLoad(tile);
|
|
590
593
|
}
|
|
594
|
+
/**
|
|
595
|
+
* Update information about data types in nested tiles
|
|
596
|
+
* @param tile instance of a nested Tile3D
|
|
597
|
+
*/
|
|
598
|
+
updateContentTypes(tile) {
|
|
599
|
+
if (this.type === constants_1.TILESET_TYPE.I3S) {
|
|
600
|
+
if (tile.header.isDracoGeometry) {
|
|
601
|
+
this.contentFormats.draco = true;
|
|
602
|
+
}
|
|
603
|
+
switch (tile.header.textureFormat) {
|
|
604
|
+
case 'dds':
|
|
605
|
+
this.contentFormats.dds = true;
|
|
606
|
+
break;
|
|
607
|
+
case 'ktx2':
|
|
608
|
+
this.contentFormats.ktx2 = true;
|
|
609
|
+
break;
|
|
610
|
+
default:
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
else if (this.type === constants_1.TILESET_TYPE.TILES3D) {
|
|
614
|
+
const { extensionsRemoved = [] } = tile.content?.gltf || {};
|
|
615
|
+
if (extensionsRemoved.includes('KHR_draco_mesh_compression')) {
|
|
616
|
+
this.contentFormats.draco = true;
|
|
617
|
+
}
|
|
618
|
+
if (extensionsRemoved.includes('EXT_meshopt_compression')) {
|
|
619
|
+
this.contentFormats.meshopt = true;
|
|
620
|
+
}
|
|
621
|
+
if (extensionsRemoved.includes('KHR_texture_basisu')) {
|
|
622
|
+
this.contentFormats.ktx2 = true;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
591
626
|
_onStartTileLoading() {
|
|
592
627
|
this._pendingCount++;
|
|
593
628
|
this.stats.get(TILES_LOADING).incrementCount();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i3s-tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,YAAY,CAAiB;IAErC;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAIhD,OAAO,KAAA;IAKnB,YAAY,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU;IAKzC,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAoCjD,SAAS,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA;
|
|
1
|
+
{"version":3,"file":"i3s-tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset/traversers/i3s-tileset-traverser.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,YAAY,CAAiB;IAErC;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAIhD,OAAO,KAAA;IAKnB,YAAY,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU;IAKzC,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAoCjD,SAAS,CAAC,MAAM,KAAA,EAAE,OAAO,KAAA;IAe/B;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,KAAA,EAAE,IAAI,KAAA,EAAE,UAAU,KAAA;CAgBrC"}
|
|
@@ -9,10 +9,6 @@ const i3s_lod_1 = require("../helpers/i3s-lod");
|
|
|
9
9
|
const tile_3d_1 = __importDefault(require("../tile-3d"));
|
|
10
10
|
const i3s_tile_manager_1 = __importDefault(require("./i3s-tile-manager"));
|
|
11
11
|
class I3STilesetTraverser extends tileset_traverser_1.default {
|
|
12
|
-
constructor(options) {
|
|
13
|
-
super(options);
|
|
14
|
-
this._tileManager = new i3s_tile_manager_1.default();
|
|
15
|
-
}
|
|
16
12
|
/**
|
|
17
13
|
* Check if there are no penging tile header requests,
|
|
18
14
|
* that means the traversal is finished and we can call
|
|
@@ -21,6 +17,10 @@ class I3STilesetTraverser extends tileset_traverser_1.default {
|
|
|
21
17
|
traversalFinished(frameState) {
|
|
22
18
|
return !this._tileManager.hasPendingTiles(frameState.viewport.id, this._frameNumber || 0);
|
|
23
19
|
}
|
|
20
|
+
constructor(options) {
|
|
21
|
+
super(options);
|
|
22
|
+
this._tileManager = new i3s_tile_manager_1.default();
|
|
23
|
+
}
|
|
24
24
|
shouldRefine(tile, frameState) {
|
|
25
25
|
tile._lodJudge = (0, i3s_lod_1.getLodStatus)(tile, frameState);
|
|
26
26
|
return tile._lodJudge === 'DIG';
|
|
@@ -64,8 +64,7 @@ class I3STilesetTraverser extends tileset_traverser_1.default {
|
|
|
64
64
|
...tileset.loadOptions,
|
|
65
65
|
i3s: {
|
|
66
66
|
...tileset.loadOptions.i3s,
|
|
67
|
-
isTileHeader: true
|
|
68
|
-
loadContent: false
|
|
67
|
+
isTileHeader: true
|
|
69
68
|
}
|
|
70
69
|
};
|
|
71
70
|
return await (0, core_1.load)(nodeUrl, loader, options);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ManagedArray from '../../utils/managed-array';
|
|
2
2
|
import { FrameState } from '../helpers/frame-state';
|
|
3
|
-
export
|
|
3
|
+
export type TilesetTraverserProps = {
|
|
4
4
|
loadSiblings?: boolean;
|
|
5
5
|
skipLevelOfDetail?: boolean;
|
|
6
6
|
maximumScreenSpaceError?: number;
|
|
@@ -10,7 +10,7 @@ export declare type TilesetTraverserProps = {
|
|
|
10
10
|
};
|
|
11
11
|
basePath?: string;
|
|
12
12
|
};
|
|
13
|
-
export
|
|
13
|
+
export type Props = {
|
|
14
14
|
loadSiblings: boolean;
|
|
15
15
|
skipLevelOfDetail: boolean;
|
|
16
16
|
updateTransforms: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset/traversers/tileset-traverser.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../../src/tileset/traversers/tileset-traverser.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,CAAC,UAAU,KAAA,KAAK,GAAG,CAAC;IACrC,qBAAqB,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,CAAC,UAAU,KAAA,KAAK,GAAG,CAAC;IACpC,qBAAqB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,EAAE,KAAK,CAAC;IAEf,IAAI,EAAE,GAAG,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAwB;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC7C,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC;IACxC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAC7C,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAKhD,OAAO,EAAE,qBAAqB;IAuB1C,QAAQ,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA;IAclC,KAAK;IAgBL,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU;IAmE7C,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IASjC,qBAAqB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA;IAuDpD,UAAU,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAK3B,UAAU,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAS3B,QAAQ,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IASzB,SAAS,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAQ1B,WAAW,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,eAAe,UAAQ,EAAE,gBAAgB,UAAQ;IAmB/E,cAAc,CAAC,IAAI,KAAA;IAMnB,gBAAgB,CAAC,IAAI,KAAA;IAOrB,YAAY,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,eAAe,KAAA;IAS9C,oBAAoB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAiBrC,uBAAuB,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA;IAI5B,kBAAkB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;IAWnC,qBAAqB,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA;CAqCvC"}
|
|
@@ -16,6 +16,9 @@ exports.DEFAULT_PROPS = {
|
|
|
16
16
|
basePath: ''
|
|
17
17
|
};
|
|
18
18
|
class TilesetTraverser {
|
|
19
|
+
traversalFinished(frameState) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
19
22
|
// TODO nested props
|
|
20
23
|
constructor(options) {
|
|
21
24
|
this.lastUpdate = new Date().getTime();
|
|
@@ -37,9 +40,6 @@ class TilesetTraverser {
|
|
|
37
40
|
// tiles does not have render content
|
|
38
41
|
this.emptyTiles = {};
|
|
39
42
|
}
|
|
40
|
-
traversalFinished(frameState) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
43
|
// tiles should be visible
|
|
44
44
|
traverse(root, frameState, options) {
|
|
45
45
|
this.root = root; // for root screen space error
|
package/dist/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Vector3 } from '@math.gl/core';
|
|
2
|
-
export
|
|
2
|
+
export type BoundingRectangle = {
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
5
5
|
};
|
|
6
6
|
/** Deck.gl Viewport instance type.
|
|
7
7
|
* We can't import it from Deck.gl to avoid circular reference */
|
|
8
|
-
export
|
|
8
|
+
export type Viewport = {
|
|
9
9
|
id: string;
|
|
10
10
|
cameraPosition: number[] | Vector3;
|
|
11
11
|
height: number;
|
|
@@ -22,7 +22,7 @@ export declare type Viewport = {
|
|
|
22
22
|
/**
|
|
23
23
|
* Contain extra fields from WebMercatorViewport and FirstPersonViewport
|
|
24
24
|
*/
|
|
25
|
-
export
|
|
25
|
+
export type GeospatialViewport = Viewport & {
|
|
26
26
|
/** @todo This field is not represented in Deck.gl viewports. Can be removed in the next version */
|
|
27
27
|
cameraDirection: [number, number, number];
|
|
28
28
|
/** @todo This field is not represented in Deck.gl viewports. Can be removed in the next version */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;iEACiE;AACjE,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE;QACd,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG;IAC1C,mGAAmG;IACnG,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,mGAAmG;IACnG,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tiles",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0-alpha.10",
|
|
4
4
|
"description": "Common components for different tiles loaders.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@loaders.gl/loader-utils": "3.
|
|
37
|
-
"@loaders.gl/math": "3.
|
|
36
|
+
"@loaders.gl/loader-utils": "3.3.0-alpha.10",
|
|
37
|
+
"@loaders.gl/math": "3.3.0-alpha.10",
|
|
38
38
|
"@math.gl/core": "^3.5.1",
|
|
39
39
|
"@math.gl/culling": "^3.5.1",
|
|
40
40
|
"@math.gl/geospatial": "^3.5.1",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@loaders.gl/core": "^3.2.0"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "53bc8d3f18fbc3445a00f8509038479119895c78"
|
|
48
48
|
}
|
|
@@ -146,7 +146,7 @@ function commonSpacePlanesToWGS84(viewport) {
|
|
|
146
146
|
|
|
147
147
|
for (const dir in frustumPlanes) {
|
|
148
148
|
if (dir === 'near') {
|
|
149
|
-
continue;
|
|
149
|
+
continue; // eslint-disable-line no-continue
|
|
150
150
|
}
|
|
151
151
|
const plane = frustumPlanes[dir];
|
|
152
152
|
const posCommon = closestPointOnPlane(plane, nearCenterCommon, scratchPosition);
|
package/src/tileset/tile-3d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export default class TileHeader {
|
|
|
61
61
|
viewportIds: any[];
|
|
62
62
|
transform: Matrix4;
|
|
63
63
|
extensions: any;
|
|
64
|
+
implicitTiling?: any;
|
|
64
65
|
|
|
65
66
|
// Container to store application specific data
|
|
66
67
|
userData: {[key: string]: any};
|
|
@@ -83,8 +84,7 @@ export default class TileHeader {
|
|
|
83
84
|
private _shouldRefine: boolean;
|
|
84
85
|
|
|
85
86
|
// Members this are updated every frame for tree traversal and rendering optimizations:
|
|
86
|
-
|
|
87
|
-
private _distanceToCamera: number;
|
|
87
|
+
public _distanceToCamera: number;
|
|
88
88
|
// @ts-ignore
|
|
89
89
|
private _centerZDepth: number;
|
|
90
90
|
private _screenSpaceError: number;
|
|
@@ -206,6 +206,7 @@ export default class TileHeader {
|
|
|
206
206
|
// TODO Cesium 3d tiles specific
|
|
207
207
|
this._expireDate = null;
|
|
208
208
|
this._expiredContent = null;
|
|
209
|
+
this.implicitTiling = null;
|
|
209
210
|
|
|
210
211
|
Object.seal(this);
|
|
211
212
|
}
|
|
@@ -285,6 +286,20 @@ export default class TileHeader {
|
|
|
285
286
|
return this.contentState === TILE_CONTENT_STATE.FAILED;
|
|
286
287
|
}
|
|
287
288
|
|
|
289
|
+
/**
|
|
290
|
+
* Distance from the tile's bounding volume center to the camera
|
|
291
|
+
*/
|
|
292
|
+
get distanceToCamera(): number {
|
|
293
|
+
return this._distanceToCamera;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Screen space error for LOD selection
|
|
298
|
+
*/
|
|
299
|
+
get screenSpaceError(): number {
|
|
300
|
+
return this._screenSpaceError;
|
|
301
|
+
}
|
|
302
|
+
|
|
288
303
|
/** Get the tile's screen space error. */
|
|
289
304
|
getScreenSpaceError(frameState, useParentLodMetric) {
|
|
290
305
|
switch (this.tileset.type) {
|
|
@@ -757,8 +772,20 @@ export default class TileHeader {
|
|
|
757
772
|
case 'i3s':
|
|
758
773
|
return {
|
|
759
774
|
...this.tileset.options.i3s,
|
|
760
|
-
|
|
761
|
-
|
|
775
|
+
_tileOptions: {
|
|
776
|
+
attributeUrls: this.header.attributeUrls,
|
|
777
|
+
textureUrl: this.header.textureUrl,
|
|
778
|
+
textureFormat: this.header.textureFormat,
|
|
779
|
+
textureLoaderOptions: this.header.textureLoaderOptions,
|
|
780
|
+
materialDefinition: this.header.materialDefinition,
|
|
781
|
+
isDracoGeometry: this.header.isDracoGeometry,
|
|
782
|
+
mbs: this.header.mbs
|
|
783
|
+
},
|
|
784
|
+
_tilesetOptions: {
|
|
785
|
+
store: this.tileset.tileset.store,
|
|
786
|
+
attributeStorageInfo: this.tileset.tileset.attributeStorageInfo,
|
|
787
|
+
fields: this.tileset.tileset.fields
|
|
788
|
+
},
|
|
762
789
|
isTileHeader: false
|
|
763
790
|
};
|
|
764
791
|
case '3d-tiles':
|