@loaders.gl/tiles 4.0.0-alpha.4 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/constants.d.ts +32 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +30 -26
- package/dist/dist.min.js +8921 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/constants.js +44 -0
- package/dist/es5/constants.js.map +1 -0
- package/dist/es5/index.js +93 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js +70 -0
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js +45 -0
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js +84 -0
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js +143 -0
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/es5/tileset/helpers/3d-tiles-options.js +12 -0
- package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -0
- package/dist/es5/tileset/helpers/bounding-volume.js +176 -0
- package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -0
- package/dist/es5/tileset/helpers/frame-state.js +129 -0
- package/dist/es5/tileset/helpers/frame-state.js.map +1 -0
- package/dist/es5/tileset/helpers/i3s-lod.js +60 -0
- package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -0
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +103 -0
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/es5/tileset/helpers/transform-utils.js +50 -0
- package/dist/es5/tileset/helpers/transform-utils.js.map +1 -0
- package/dist/es5/tileset/helpers/zoom.js +63 -0
- package/dist/es5/tileset/helpers/zoom.js.map +1 -0
- package/dist/es5/tileset/tile-3d.js +565 -0
- package/dist/es5/tileset/tile-3d.js.map +1 -0
- package/dist/es5/tileset/tileset-3d.js +890 -0
- package/dist/es5/tileset/tileset-3d.js.map +1 -0
- package/dist/es5/tileset/tileset-cache.js +85 -0
- package/dist/es5/tileset/tileset-cache.js.map +1 -0
- package/dist/es5/tileset/tileset-traverser.js +328 -0
- package/dist/es5/tileset/tileset-traverser.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/utils/doubly-linked-list-node.js +21 -0
- package/dist/es5/utils/doubly-linked-list-node.js.map +1 -0
- package/dist/es5/utils/doubly-linked-list.js +88 -0
- package/dist/es5/utils/doubly-linked-list.js.map +1 -0
- package/dist/es5/utils/managed-array.js +126 -0
- package/dist/es5/utils/managed-array.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/constants.js +32 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/{tileset/traversers → esm/tileset/format-3d-tiles}/tileset-3d-traverser.js +2 -13
- package/dist/esm/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js +26 -0
- package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/esm/tileset/format-i3s/i3s-tile-manager.js +79 -0
- package/dist/esm/tileset/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/{tileset/traversers → esm/tileset/format-i3s}/i3s-tileset-traverser.js +16 -28
- package/dist/esm/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/esm/tileset/helpers/3d-tiles-options.js +6 -0
- package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -0
- package/dist/esm/tileset/helpers/bounding-volume.js +155 -0
- package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -0
- package/dist/esm/tileset/helpers/frame-state.js +109 -0
- package/dist/esm/tileset/helpers/frame-state.js.map +1 -0
- package/dist/esm/tileset/helpers/i3s-lod.js +53 -0
- package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -0
- package/dist/esm/tileset/helpers/tiles-3d-lod.js +100 -0
- package/dist/{tileset → esm/tileset}/helpers/tiles-3d-lod.js.map +1 -1
- package/dist/esm/tileset/helpers/transform-utils.js +50 -0
- package/dist/esm/tileset/helpers/transform-utils.js.map +1 -0
- package/dist/esm/tileset/helpers/zoom.js +55 -0
- package/dist/esm/tileset/helpers/zoom.js.map +1 -0
- package/dist/esm/tileset/tile-3d.js +445 -0
- package/dist/esm/tileset/tile-3d.js.map +1 -0
- package/dist/esm/tileset/tileset-3d.js +637 -0
- package/dist/esm/tileset/tileset-3d.js.map +1 -0
- package/dist/esm/tileset/tileset-cache.js +60 -0
- package/dist/esm/tileset/tileset-cache.js.map +1 -0
- package/dist/{tileset/traversers → esm/tileset}/tileset-traverser.js +20 -72
- package/dist/esm/tileset/tileset-traverser.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/doubly-linked-list-node.js +12 -0
- package/dist/esm/utils/doubly-linked-list-node.js.map +1 -0
- package/dist/esm/utils/doubly-linked-list.js +65 -0
- package/dist/esm/utils/doubly-linked-list.js.map +1 -0
- package/dist/esm/utils/managed-array.js +87 -0
- package/dist/esm/utils/managed-array.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -9
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +7 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +54 -0
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts +27 -0
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -0
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js +47 -0
- package/dist/tileset/format-i3s/i3s-tile-manager.d.ts +34 -0
- package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +1 -0
- package/dist/tileset/format-i3s/i3s-tile-manager.js +80 -0
- package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts +25 -0
- package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +1 -0
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js +92 -0
- package/dist/tileset/helpers/3d-tiles-options.d.ts +4 -0
- package/dist/tileset/helpers/3d-tiles-options.d.ts.map +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js +8 -5
- package/dist/tileset/helpers/bounding-volume.d.ts +19 -0
- package/dist/tileset/helpers/bounding-volume.d.ts.map +1 -0
- package/dist/tileset/helpers/bounding-volume.js +274 -69
- package/dist/tileset/helpers/frame-state.d.ts +28 -0
- package/dist/tileset/helpers/frame-state.d.ts.map +1 -0
- package/dist/tileset/helpers/frame-state.js +131 -49
- package/dist/tileset/helpers/i3s-lod.d.ts +20 -0
- package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -0
- package/dist/tileset/helpers/i3s-lod.js +82 -105
- package/dist/tileset/helpers/tiles-3d-lod.d.ts +8 -0
- package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js +112 -100
- package/dist/tileset/helpers/transform-utils.d.ts +2 -0
- package/dist/tileset/helpers/transform-utils.d.ts.map +1 -0
- package/dist/tileset/helpers/transform-utils.js +51 -56
- package/dist/tileset/helpers/zoom.d.ts +46 -0
- package/dist/tileset/helpers/zoom.d.ts.map +1 -0
- package/dist/tileset/helpers/zoom.js +83 -30
- package/dist/tileset/tile-3d.d.ts +206 -0
- package/dist/tileset/tile-3d.d.ts.map +1 -0
- package/dist/tileset/tile-3d.js +593 -531
- package/dist/tileset/tileset-3d.d.ts +217 -0
- package/dist/tileset/tileset-3d.d.ts.map +1 -0
- package/dist/tileset/tileset-3d.js +707 -648
- package/dist/tileset/tileset-cache.d.ts +18 -0
- package/dist/tileset/tileset-cache.d.ts.map +1 -0
- package/dist/tileset/tileset-cache.js +70 -71
- package/dist/tileset/tileset-traverser.d.ts +46 -0
- package/dist/tileset/tileset-traverser.d.ts.map +1 -0
- package/dist/tileset/tileset-traverser.js +309 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils/doubly-linked-list-node.d.ts +11 -0
- package/dist/utils/doubly-linked-list-node.d.ts.map +1 -0
- package/dist/utils/doubly-linked-list-node.js +17 -8
- package/dist/utils/doubly-linked-list.d.ts +30 -0
- package/dist/utils/doubly-linked-list.d.ts.map +1 -0
- package/dist/utils/doubly-linked-list.js +91 -72
- package/dist/utils/managed-array.d.ts +85 -0
- package/dist/utils/managed-array.d.ts.map +1 -0
- package/dist/utils/managed-array.js +144 -103
- package/package.json +10 -10
- package/src/constants.ts +2 -0
- package/src/index.ts +7 -4
- package/src/tileset/{traversers → format-3d-tiles}/tileset-3d-traverser.ts +4 -2
- package/src/tileset/format-i3s/i3s-pending-tiles-register.ts +44 -0
- package/src/tileset/format-i3s/i3s-tile-manager.ts +101 -0
- package/src/tileset/{traversers → format-i3s}/i3s-tileset-traverser.ts +27 -15
- package/src/tileset/helpers/bounding-volume.ts +136 -0
- package/src/tileset/helpers/frame-state.ts +102 -18
- package/src/tileset/helpers/i3s-lod.ts +75 -96
- package/src/tileset/helpers/tiles-3d-lod.ts +2 -0
- package/src/tileset/helpers/transform-utils.ts +2 -0
- package/src/tileset/helpers/zoom.ts +84 -9
- package/src/tileset/tile-3d.ts +77 -20
- package/src/tileset/tileset-3d.ts +205 -43
- package/src/tileset/tileset-cache.ts +6 -2
- package/src/tileset/{traversers/tileset-traverser.ts → tileset-traverser.ts} +29 -17
- package/src/types.ts +36 -0
- package/src/utils/{doubly-linked-list-node.js → doubly-linked-list-node.ts} +7 -2
- package/src/utils/{doubly-linked-list.js → doubly-linked-list.ts} +5 -8
- package/src/utils/{managed-array.js → managed-array.ts} +5 -2
- package/dist/bundle.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/tileset/helpers/frame-state.js.map +0 -1
- package/dist/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/tileset/helpers/zoom.js.map +0 -1
- package/dist/tileset/tile-3d.js.map +0 -1
- package/dist/tileset/tileset-3d.js.map +0 -1
- package/dist/tileset/tileset-cache.js.map +0 -1
- package/dist/tileset/traversers/i3s-tile-manager.js +0 -45
- package/dist/tileset/traversers/i3s-tile-manager.js.map +0 -1
- package/dist/tileset/traversers/i3s-tileset-traverser.js.map +0 -1
- package/dist/tileset/traversers/tileset-3d-traverser.js.map +0 -1
- package/dist/tileset/traversers/tileset-traverser.js.map +0 -1
- package/dist/utils/doubly-linked-list-node.js.map +0 -1
- package/dist/utils/doubly-linked-list.js.map +0 -1
- package/dist/utils/managed-array.js.map +0 -1
- package/src/tileset/traversers/i3s-tile-manager.ts +0 -39
|
@@ -1,78 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (this.tail) {
|
|
17
|
-
this.tail.next = node;
|
|
18
|
-
this.tail = node;
|
|
19
|
-
} else {
|
|
20
|
-
this.head = node;
|
|
21
|
-
this.tail = node;
|
|
1
|
+
"use strict";
|
|
2
|
+
// This file is derived from the Cesium code base under Apache 2 license
|
|
3
|
+
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.DoublyLinkedList = void 0;
|
|
6
|
+
const doubly_linked_list_node_1 = require("./doubly-linked-list-node");
|
|
7
|
+
/**
|
|
8
|
+
* Doubly linked list
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
class DoublyLinkedList {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.head = null;
|
|
14
|
+
this.tail = null;
|
|
15
|
+
this._length = 0;
|
|
22
16
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return node;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
remove(node) {
|
|
29
|
-
if (!node) {
|
|
30
|
-
return;
|
|
17
|
+
get length() {
|
|
18
|
+
return this._length;
|
|
31
19
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Adds the item to the end of the list
|
|
22
|
+
* @param {*} [item]
|
|
23
|
+
* @return {DoublyLinkedListNode}
|
|
24
|
+
*/
|
|
25
|
+
add(item) {
|
|
26
|
+
const node = new doubly_linked_list_node_1.DoublyLinkedListNode(item, this.tail, null);
|
|
27
|
+
if (this.tail) {
|
|
28
|
+
this.tail.next = node;
|
|
29
|
+
this.tail = node;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.head = node;
|
|
33
|
+
this.tail = node;
|
|
34
|
+
}
|
|
35
|
+
++this._length;
|
|
36
|
+
return node;
|
|
45
37
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Removes the given node from the list
|
|
40
|
+
* @param {DoublyLinkedListNode} node
|
|
41
|
+
*/
|
|
42
|
+
remove(node) {
|
|
43
|
+
if (!node) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (node.previous && node.next) {
|
|
47
|
+
node.previous.next = node.next;
|
|
48
|
+
node.next.previous = node.previous;
|
|
49
|
+
}
|
|
50
|
+
else if (node.previous) {
|
|
51
|
+
// Remove last node
|
|
52
|
+
node.previous.next = null;
|
|
53
|
+
this.tail = node.previous;
|
|
54
|
+
}
|
|
55
|
+
else if (node.next) {
|
|
56
|
+
// Remove first node
|
|
57
|
+
node.next.previous = null;
|
|
58
|
+
this.head = node.next;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Remove last node in the linked list
|
|
62
|
+
this.head = null;
|
|
63
|
+
this.tail = null;
|
|
64
|
+
}
|
|
65
|
+
node.next = null;
|
|
66
|
+
node.previous = null;
|
|
67
|
+
--this._length;
|
|
55
68
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Moves nextNode after node
|
|
71
|
+
* @param {DoublyLinkedListNode} node
|
|
72
|
+
* @param {DoublyLinkedListNode} nextNode
|
|
73
|
+
*/
|
|
74
|
+
splice(node, nextNode) {
|
|
75
|
+
if (node === nextNode) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Remove nextNode, then insert after node
|
|
79
|
+
this.remove(nextNode);
|
|
80
|
+
this._insert(node, nextNode);
|
|
81
|
+
}
|
|
82
|
+
_insert(node, nextNode) {
|
|
83
|
+
const oldNodeNext = node.next;
|
|
84
|
+
node.next = nextNode;
|
|
85
|
+
// nextNode is the new tail
|
|
86
|
+
if (this.tail === node) {
|
|
87
|
+
this.tail = nextNode;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
oldNodeNext.previous = nextNode;
|
|
91
|
+
}
|
|
92
|
+
nextNode.next = oldNodeNext;
|
|
93
|
+
nextNode.previous = node;
|
|
94
|
+
++this._length;
|
|
70
95
|
}
|
|
71
|
-
|
|
72
|
-
nextNode.next = oldNodeNext;
|
|
73
|
-
nextNode.previous = node;
|
|
74
|
-
++this._length;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
96
|
}
|
|
78
|
-
|
|
97
|
+
exports.DoublyLinkedList = DoublyLinkedList;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wrapper around arrays so that the internal length of the array can be manually managed.
|
|
3
|
+
*
|
|
4
|
+
* @alias ManagedArray
|
|
5
|
+
* @constructor
|
|
6
|
+
* @private
|
|
7
|
+
*
|
|
8
|
+
* @param {Number} [length=0] The initial length of the array.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ManagedArray {
|
|
11
|
+
_map: Map<any, any>;
|
|
12
|
+
_array: any[];
|
|
13
|
+
_length: number;
|
|
14
|
+
constructor(length?: number);
|
|
15
|
+
/**
|
|
16
|
+
* Gets or sets the length of the array.
|
|
17
|
+
* If the set length is greater than the length of the internal array, the internal array is resized.
|
|
18
|
+
*
|
|
19
|
+
* @memberof ManagedArray.prototype
|
|
20
|
+
* @type Number
|
|
21
|
+
*/
|
|
22
|
+
get length(): number;
|
|
23
|
+
set length(length: number);
|
|
24
|
+
/**
|
|
25
|
+
* Gets the internal array.
|
|
26
|
+
*
|
|
27
|
+
* @memberof ManagedArray.prototype
|
|
28
|
+
* @type Array
|
|
29
|
+
* @readonly
|
|
30
|
+
*/
|
|
31
|
+
get values(): any[];
|
|
32
|
+
/**
|
|
33
|
+
* Gets the element at an index.
|
|
34
|
+
*
|
|
35
|
+
* @param {Number} index The index to get.
|
|
36
|
+
*/
|
|
37
|
+
get(index: any): any;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the element at an index. Resizes the array if index is greater than the length of the array.
|
|
40
|
+
*
|
|
41
|
+
* @param {Number} index The index to set.
|
|
42
|
+
* @param {*} element The element to set at index.
|
|
43
|
+
*/
|
|
44
|
+
set(index: any, element: any): void;
|
|
45
|
+
delete(element: any): void;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the last element in the array without modifying the array.
|
|
48
|
+
*
|
|
49
|
+
* @returns {*} The last element in the array.
|
|
50
|
+
*/
|
|
51
|
+
peek(): any;
|
|
52
|
+
/**
|
|
53
|
+
* Push an element into the array.
|
|
54
|
+
*
|
|
55
|
+
* @param {*} element The element to push.
|
|
56
|
+
*/
|
|
57
|
+
push(element: any): void;
|
|
58
|
+
/**
|
|
59
|
+
* Pop an element from the array.
|
|
60
|
+
*
|
|
61
|
+
* @returns {*} The last element in the array.
|
|
62
|
+
*/
|
|
63
|
+
pop(): any;
|
|
64
|
+
/**
|
|
65
|
+
* Resize the internal array if length > _array.length.
|
|
66
|
+
*
|
|
67
|
+
* @param {Number} length The length.
|
|
68
|
+
*/
|
|
69
|
+
reserve(length: any): void;
|
|
70
|
+
/**
|
|
71
|
+
* Resize the array.
|
|
72
|
+
*
|
|
73
|
+
* @param {Number} length The length.
|
|
74
|
+
*/
|
|
75
|
+
resize(length: any): void;
|
|
76
|
+
/**
|
|
77
|
+
* Trim the internal array to the specified length. Defaults to the current length.
|
|
78
|
+
*
|
|
79
|
+
* @param {Number} [length] The length.
|
|
80
|
+
*/
|
|
81
|
+
trim(length: any): void;
|
|
82
|
+
reset(): void;
|
|
83
|
+
find(target: any): boolean;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=managed-array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-array.d.ts","sourceRoot":"","sources":["../../src/utils/managed-array.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,IAAI,gBAAa;IACjB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;gBAEJ,MAAM,SAAI;IAKtB;;;;;;OAMG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,QAAA,EAKhB;IAED;;;;;;OAMG;IACH,IAAI,MAAM,UAET;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,KAAA;IAKT;;;;;OAKG;IACH,GAAG,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA;IAelB,MAAM,CAAC,OAAO,KAAA;IASd;;;;OAIG;IACH,IAAI;IAIJ;;;;OAIG;IACH,IAAI,CAAC,OAAO,KAAA;IAQZ;;;;OAIG;IACH,GAAG;IAMH;;;;OAIG;IACH,OAAO,CAAC,MAAM,KAAA;IAQd;;;;OAIG;IACH,MAAM,CAAC,MAAM,KAAA;IAMb;;;;OAIG;IACH,IAAI,CAAC,MAAM,KAAA;IAOX,KAAK;IAML,IAAI,CAAC,MAAM,KAAA;CAGZ"}
|
|
@@ -1,111 +1,152 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
// This file is derived from the Cesium code base under Apache 2 license
|
|
3
|
+
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.ManagedArray = void 0;
|
|
6
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
7
|
+
/**
|
|
8
|
+
* A wrapper around arrays so that the internal length of the array can be manually managed.
|
|
9
|
+
*
|
|
10
|
+
* @alias ManagedArray
|
|
11
|
+
* @constructor
|
|
12
|
+
* @private
|
|
13
|
+
*
|
|
14
|
+
* @param {Number} [length=0] The initial length of the array.
|
|
15
|
+
*/
|
|
16
|
+
class ManagedArray {
|
|
17
|
+
constructor(length = 0) {
|
|
18
|
+
this._map = new Map();
|
|
19
|
+
this._array = new Array(length);
|
|
20
|
+
this._length = length;
|
|
18
21
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
set(index, element) {
|
|
31
|
-
assert(index >= 0);
|
|
32
|
-
|
|
33
|
-
if (index >= this.length) {
|
|
34
|
-
this.length = index + 1;
|
|
22
|
+
/**
|
|
23
|
+
* Gets or sets the length of the array.
|
|
24
|
+
* If the set length is greater than the length of the internal array, the internal array is resized.
|
|
25
|
+
*
|
|
26
|
+
* @memberof ManagedArray.prototype
|
|
27
|
+
* @type Number
|
|
28
|
+
*/
|
|
29
|
+
get length() {
|
|
30
|
+
return this._length;
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
set length(length) {
|
|
33
|
+
this._length = length;
|
|
34
|
+
if (length > this._array.length) {
|
|
35
|
+
this._array.length = length;
|
|
36
|
+
}
|
|
39
37
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (index >= 0) {
|
|
50
|
-
this._array.splice(index, 1);
|
|
51
|
-
|
|
52
|
-
this._map.delete(element);
|
|
53
|
-
|
|
54
|
-
this.length--;
|
|
38
|
+
/**
|
|
39
|
+
* Gets the internal array.
|
|
40
|
+
*
|
|
41
|
+
* @memberof ManagedArray.prototype
|
|
42
|
+
* @type Array
|
|
43
|
+
* @readonly
|
|
44
|
+
*/
|
|
45
|
+
get values() {
|
|
46
|
+
return this._array;
|
|
55
47
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const index = this.length++;
|
|
65
|
-
this._array[index] = element;
|
|
66
|
-
|
|
67
|
-
this._map.set(element, index);
|
|
48
|
+
/**
|
|
49
|
+
* Gets the element at an index.
|
|
50
|
+
*
|
|
51
|
+
* @param {Number} index The index to get.
|
|
52
|
+
*/
|
|
53
|
+
get(index) {
|
|
54
|
+
(0, loader_utils_1.assert)(index < this._array.length);
|
|
55
|
+
return this._array[index];
|
|
68
56
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Sets the element at an index. Resizes the array if index is greater than the length of the array.
|
|
59
|
+
*
|
|
60
|
+
* @param {Number} index The index to set.
|
|
61
|
+
* @param {*} element The element to set at index.
|
|
62
|
+
*/
|
|
63
|
+
set(index, element) {
|
|
64
|
+
(0, loader_utils_1.assert)(index >= 0);
|
|
65
|
+
if (index >= this.length) {
|
|
66
|
+
this.length = index + 1;
|
|
67
|
+
}
|
|
68
|
+
if (this._map.has(this._array[index])) {
|
|
69
|
+
this._map.delete(this._array[index]);
|
|
70
|
+
}
|
|
71
|
+
this._array[index] = element;
|
|
72
|
+
this._map.set(element, index);
|
|
84
73
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
74
|
+
delete(element) {
|
|
75
|
+
const index = this._map.get(element);
|
|
76
|
+
if (index >= 0) {
|
|
77
|
+
this._array.splice(index, 1);
|
|
78
|
+
this._map.delete(element);
|
|
79
|
+
this.length--;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Returns the last element in the array without modifying the array.
|
|
84
|
+
*
|
|
85
|
+
* @returns {*} The last element in the array.
|
|
86
|
+
*/
|
|
87
|
+
peek() {
|
|
88
|
+
return this._array[this._length - 1];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Push an element into the array.
|
|
92
|
+
*
|
|
93
|
+
* @param {*} element The element to push.
|
|
94
|
+
*/
|
|
95
|
+
push(element) {
|
|
96
|
+
if (!this._map.has(element)) {
|
|
97
|
+
const index = this.length++;
|
|
98
|
+
this._array[index] = element;
|
|
99
|
+
this._map.set(element, index);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Pop an element from the array.
|
|
104
|
+
*
|
|
105
|
+
* @returns {*} The last element in the array.
|
|
106
|
+
*/
|
|
107
|
+
pop() {
|
|
108
|
+
const element = this._array[--this.length];
|
|
109
|
+
this._map.delete(element);
|
|
110
|
+
return element;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Resize the internal array if length > _array.length.
|
|
114
|
+
*
|
|
115
|
+
* @param {Number} length The length.
|
|
116
|
+
*/
|
|
117
|
+
reserve(length) {
|
|
118
|
+
(0, loader_utils_1.assert)(length >= 0);
|
|
119
|
+
if (length > this._array.length) {
|
|
120
|
+
this._array.length = length;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Resize the array.
|
|
125
|
+
*
|
|
126
|
+
* @param {Number} length The length.
|
|
127
|
+
*/
|
|
128
|
+
resize(length) {
|
|
129
|
+
(0, loader_utils_1.assert)(length >= 0);
|
|
130
|
+
this.length = length;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Trim the internal array to the specified length. Defaults to the current length.
|
|
134
|
+
*
|
|
135
|
+
* @param {Number} [length] The length.
|
|
136
|
+
*/
|
|
137
|
+
trim(length) {
|
|
138
|
+
if (length === null || length === undefined) {
|
|
139
|
+
length = this.length;
|
|
140
|
+
}
|
|
141
|
+
this._array.length = length;
|
|
142
|
+
}
|
|
143
|
+
reset() {
|
|
144
|
+
this._array = [];
|
|
145
|
+
this._map = new Map();
|
|
146
|
+
this._length = 0;
|
|
147
|
+
}
|
|
148
|
+
find(target) {
|
|
149
|
+
return this._map.has(target);
|
|
95
150
|
}
|
|
96
|
-
|
|
97
|
-
this._array.length = length;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
reset() {
|
|
101
|
-
this._array = [];
|
|
102
|
-
this._map = new Map();
|
|
103
|
-
this._length = 0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
find(target) {
|
|
107
|
-
return this._map.has(target);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
151
|
}
|
|
111
|
-
|
|
152
|
+
exports.ManagedArray = ManagedArray;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tiles",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.6",
|
|
4
4
|
"description": "Common components for different tiles loaders.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"point cloud",
|
|
20
20
|
"pointcloud"
|
|
21
21
|
],
|
|
22
|
-
"types": "
|
|
23
|
-
"main": "dist/index.js",
|
|
24
|
-
"module": "dist/index.js",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"main": "dist/es5/index.js",
|
|
24
|
+
"module": "dist/esm/index.js",
|
|
25
25
|
"sideEffects": false,
|
|
26
26
|
"files": [
|
|
27
27
|
"src",
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
],
|
|
31
31
|
"scripts": {
|
|
32
32
|
"pre-build": "npm run build-bundle",
|
|
33
|
-
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/
|
|
33
|
+
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
37
|
-
"@loaders.gl/math": "4.0.0-alpha.
|
|
36
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.6",
|
|
37
|
+
"@loaders.gl/math": "4.0.0-alpha.6",
|
|
38
38
|
"@math.gl/core": "^3.5.1",
|
|
39
39
|
"@math.gl/culling": "^3.5.1",
|
|
40
40
|
"@math.gl/geospatial": "^3.5.1",
|
|
41
41
|
"@math.gl/web-mercator": "^3.5.1",
|
|
42
|
-
"@probe.gl/stats": "^
|
|
42
|
+
"@probe.gl/stats": "^4.0.2"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@loaders.gl/core": "
|
|
45
|
+
"@loaders.gl/core": "4.0.0-alpha.5"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
|
|
48
48
|
}
|
package/src/constants.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
1
3
|
export type {Tileset3DProps} from './tileset/tileset-3d';
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
+
export {Tileset3D} from './tileset/tileset-3d';
|
|
5
|
+
export {Tile3D} from './tileset/tile-3d';
|
|
4
6
|
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
+
export {TilesetTraverser} from './tileset/tileset-traverser';
|
|
8
|
+
export {TilesetCache} from './tileset/tileset-cache';
|
|
7
9
|
|
|
8
10
|
export {createBoundingVolume} from './tileset/helpers/bounding-volume';
|
|
9
11
|
export {calculateTransformProps} from './tileset/helpers/transform-utils';
|
|
10
12
|
|
|
11
13
|
export {getFrameState} from './tileset/helpers/frame-state';
|
|
14
|
+
export {getLodStatus} from './tileset/helpers/i3s-lod';
|
|
12
15
|
|
|
13
16
|
export {
|
|
14
17
|
TILE_CONTENT_STATE,
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
1
3
|
// This file is derived from the Cesium code base under Apache 2 license
|
|
2
4
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
3
5
|
|
|
4
6
|
import {TILE3D_OPTIMIZATION_HINT, TILE_REFINEMENT} from '../../constants';
|
|
5
|
-
import TilesetTraverser from '
|
|
7
|
+
import {TilesetTraverser} from '../tileset-traverser';
|
|
6
8
|
|
|
7
|
-
export
|
|
9
|
+
export class Tileset3DTraverser extends TilesetTraverser {
|
|
8
10
|
compareDistanceToCamera(a, b) {
|
|
9
11
|
// Sort by farthest child first since this is going on a stack
|
|
10
12
|
return b._distanceToCamera === 0 && a._distanceToCamera === 0
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Counter to register pending tile headers for the particular frameNumber
|
|
3
|
+
* Until all tiles are loaded we won't call `onTraversalEnd` callback
|
|
4
|
+
*/
|
|
5
|
+
export class I3SPendingTilesRegister {
|
|
6
|
+
private frameNumberMap: Map<string, Map<number, number>> = new Map();
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Register a new pending tile header for the particular frameNumber
|
|
10
|
+
* @param viewportId
|
|
11
|
+
* @param frameNumber
|
|
12
|
+
*/
|
|
13
|
+
register(viewportId: string, frameNumber: number) {
|
|
14
|
+
const viewportMap = this.frameNumberMap.get(viewportId) || new Map();
|
|
15
|
+
const oldCount = viewportMap.get(frameNumber) || 0;
|
|
16
|
+
viewportMap.set(frameNumber, oldCount + 1);
|
|
17
|
+
this.frameNumberMap.set(viewportId, viewportMap);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Deregister a pending tile header for the particular frameNumber
|
|
22
|
+
* @param viewportId
|
|
23
|
+
* @param frameNumber
|
|
24
|
+
*/
|
|
25
|
+
deregister(viewportId: string, frameNumber: number) {
|
|
26
|
+
const viewportMap = this.frameNumberMap.get(viewportId);
|
|
27
|
+
if (!viewportMap) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const oldCount = viewportMap.get(frameNumber) || 1;
|
|
31
|
+
viewportMap.set(frameNumber, oldCount - 1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Check is there are no pending tile headers registered for the particular frameNumber
|
|
36
|
+
* @param viewportId
|
|
37
|
+
* @param frameNumber
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
isZero(viewportId: string, frameNumber: number) {
|
|
41
|
+
const count = this.frameNumberMap.get(viewportId)?.get(frameNumber) || 0;
|
|
42
|
+
return count === 0;
|
|
43
|
+
}
|
|
44
|
+
}
|