@loaders.gl/tiles 4.2.0-alpha.4 → 4.2.0-alpha.5

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.
Files changed (73) hide show
  1. package/dist/constants.js +34 -32
  2. package/dist/dist.dev.js +723 -342
  3. package/dist/dist.min.js +9 -0
  4. package/dist/index.cjs +98 -240
  5. package/dist/index.cjs.map +7 -0
  6. package/dist/index.d.ts +10 -10
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -1
  9. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +1 -1
  10. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -1
  11. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +45 -35
  12. package/dist/tileset/format-i3s/i3s-pending-tiles-register.js +40 -22
  13. package/dist/tileset/format-i3s/i3s-tile-manager.d.ts +1 -1
  14. package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +1 -1
  15. package/dist/tileset/format-i3s/i3s-tile-manager.js +67 -69
  16. package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts +2 -2
  17. package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +1 -1
  18. package/dist/tileset/format-i3s/i3s-tileset-traverser.js +78 -57
  19. package/dist/tileset/helpers/3d-tiles-options.d.ts +1 -1
  20. package/dist/tileset/helpers/3d-tiles-options.d.ts.map +1 -1
  21. package/dist/tileset/helpers/3d-tiles-options.js +3 -4
  22. package/dist/tileset/helpers/bounding-volume.js +269 -128
  23. package/dist/tileset/helpers/frame-state.d.ts +1 -1
  24. package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
  25. package/dist/tileset/helpers/frame-state.js +114 -95
  26. package/dist/tileset/helpers/i3s-lod.d.ts +2 -2
  27. package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -1
  28. package/dist/tileset/helpers/i3s-lod.js +68 -39
  29. package/dist/tileset/helpers/tiles-3d-lod.js +97 -85
  30. package/dist/tileset/helpers/transform-utils.js +45 -44
  31. package/dist/tileset/helpers/zoom.d.ts +1 -1
  32. package/dist/tileset/helpers/zoom.d.ts.map +1 -1
  33. package/dist/tileset/helpers/zoom.js +70 -40
  34. package/dist/tileset/tile-3d.d.ts +5 -5
  35. package/dist/tileset/tile-3d.d.ts.map +1 -1
  36. package/dist/tileset/tile-3d.js +595 -399
  37. package/dist/tileset/tileset-3d.d.ts +5 -5
  38. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  39. package/dist/tileset/tileset-3d.js +721 -597
  40. package/dist/tileset/tileset-cache.d.ts +2 -2
  41. package/dist/tileset/tileset-cache.d.ts.map +1 -1
  42. package/dist/tileset/tileset-cache.js +62 -48
  43. package/dist/tileset/tileset-traverser.d.ts +3 -3
  44. package/dist/tileset/tileset-traverser.d.ts.map +1 -1
  45. package/dist/tileset/tileset-traverser.js +281 -220
  46. package/dist/types.js +0 -1
  47. package/dist/utils/doubly-linked-list-node.js +14 -9
  48. package/dist/utils/doubly-linked-list.d.ts +1 -1
  49. package/dist/utils/doubly-linked-list.d.ts.map +1 -1
  50. package/dist/utils/doubly-linked-list.js +85 -56
  51. package/dist/utils/managed-array.js +138 -76
  52. package/package.json +10 -9
  53. package/dist/constants.js.map +0 -1
  54. package/dist/index.js.map +0 -1
  55. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  56. package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  57. package/dist/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
  58. package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
  59. package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
  60. package/dist/tileset/helpers/bounding-volume.js.map +0 -1
  61. package/dist/tileset/helpers/frame-state.js.map +0 -1
  62. package/dist/tileset/helpers/i3s-lod.js.map +0 -1
  63. package/dist/tileset/helpers/tiles-3d-lod.js.map +0 -1
  64. package/dist/tileset/helpers/transform-utils.js.map +0 -1
  65. package/dist/tileset/helpers/zoom.js.map +0 -1
  66. package/dist/tileset/tile-3d.js.map +0 -1
  67. package/dist/tileset/tileset-3d.js.map +0 -1
  68. package/dist/tileset/tileset-cache.js.map +0 -1
  69. package/dist/tileset/tileset-traverser.js.map +0 -1
  70. package/dist/types.js.map +0 -1
  71. package/dist/utils/doubly-linked-list-node.js.map +0 -1
  72. package/dist/utils/doubly-linked-list.js.map +0 -1
  73. package/dist/utils/managed-array.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import type { Tileset3D } from './tileset-3d';
2
- import type { Tile3D } from './tile-3d';
1
+ import type { Tileset3D } from "./tileset-3d.js";
2
+ import type { Tile3D } from "./tile-3d.js";
3
3
  /**
4
4
  * Stores tiles with content loaded.
5
5
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-cache.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-cache.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAGtC;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAU;;IAU5B,KAAK,IAAI,IAAI;IAOb,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB,GAAG,CACD,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACvD,IAAI;IAUP,UAAU,CACR,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1D,IAAI;IAaP,WAAW,CAAC,OAAO,KAAA,EAAE,cAAc,KAAA,GAAG,IAAI;IA0B1C,IAAI,IAAI,IAAI;CAGb"}
1
+ {"version":3,"file":"tileset-cache.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-cache.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,SAAS,EAAC,wBAAqB;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AAGtC;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAU;;IAU5B,KAAK,IAAI,IAAI;IAOb,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzB,GAAG,CACD,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACvD,IAAI;IAUP,UAAU,CACR,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1D,IAAI;IAaP,WAAW,CAAC,OAAO,KAAA,EAAE,cAAc,KAAA,GAAG,IAAI;IA0B1C,IAAI,IAAI,IAAI;CAGb"}
@@ -1,56 +1,70 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { DoublyLinkedList } from "../utils/doubly-linked-list.js";
5
+ /**
6
+ * Stores tiles with content loaded.
7
+ * @private
8
+ */
2
9
  export class TilesetCache {
3
- constructor() {
4
- this._list = void 0;
5
- this._sentinel = void 0;
6
- this._trimTiles = void 0;
7
- this._list = new DoublyLinkedList();
8
- this._sentinel = this._list.add('sentinel');
9
- this._trimTiles = false;
10
- }
11
- reset() {
12
- this._list.splice(this._list.tail, this._sentinel);
13
- }
14
- touch(tile) {
15
- const node = tile._cacheNode;
16
- if (node) {
17
- this._list.splice(this._sentinel, node);
10
+ constructor() {
11
+ // [head, sentinel) -> tiles that weren't selected this frame and may be removed from the cache
12
+ // (sentinel, tail] -> tiles that were selected this frame
13
+ this._list = new DoublyLinkedList();
14
+ this._sentinel = this._list.add('sentinel');
15
+ this._trimTiles = false;
18
16
  }
19
- }
20
- add(tileset, tile, addCallback) {
21
- if (!tile._cacheNode) {
22
- tile._cacheNode = this._list.add(tile);
23
- if (addCallback) {
24
- addCallback(tileset, tile);
25
- }
17
+ reset() {
18
+ // Move sentinel node to the tail so, at the start of the frame, all tiles
19
+ // may be potentially replaced. Tiles are moved to the right of the sentinel
20
+ // when they are selected so they will not be replaced.
21
+ this._list.splice(this._list.tail, this._sentinel);
26
22
  }
27
- }
28
- unloadTile(tileset, tile, unloadCallback) {
29
- const node = tile._cacheNode;
30
- if (!node) {
31
- return;
23
+ touch(tile) {
24
+ const node = tile._cacheNode;
25
+ if (node) {
26
+ this._list.splice(this._sentinel, node);
27
+ }
32
28
  }
33
- this._list.remove(node);
34
- tile._cacheNode = null;
35
- if (unloadCallback) {
36
- unloadCallback(tileset, tile);
29
+ add(tileset, tile, addCallback) {
30
+ if (!tile._cacheNode) {
31
+ tile._cacheNode = this._list.add(tile);
32
+ if (addCallback) {
33
+ addCallback(tileset, tile);
34
+ }
35
+ }
37
36
  }
38
- }
39
- unloadTiles(tileset, unloadCallback) {
40
- const trimTiles = this._trimTiles;
41
- this._trimTiles = false;
42
- const list = this._list;
43
- const maximumMemoryUsageInBytes = tileset.maximumMemoryUsage * 1024 * 1024;
44
- const sentinel = this._sentinel;
45
- let node = list.head;
46
- while (node !== sentinel && (tileset.gpuMemoryUsageInBytes > maximumMemoryUsageInBytes || trimTiles)) {
47
- const tile = node.item;
48
- node = node.next;
49
- this.unloadTile(tileset, tile, unloadCallback);
37
+ unloadTile(tileset, tile, unloadCallback) {
38
+ const node = tile._cacheNode;
39
+ if (!node) {
40
+ return;
41
+ }
42
+ this._list.remove(node);
43
+ tile._cacheNode = null;
44
+ if (unloadCallback) {
45
+ unloadCallback(tileset, tile);
46
+ }
47
+ }
48
+ unloadTiles(tileset, unloadCallback) {
49
+ const trimTiles = this._trimTiles;
50
+ this._trimTiles = false;
51
+ const list = this._list;
52
+ const maximumMemoryUsageInBytes = tileset.maximumMemoryUsage * 1024 * 1024;
53
+ // Traverse the list only to the sentinel since tiles/nodes to the
54
+ // right of the sentinel were used this frame.
55
+ // The sub-list to the left of the sentinel is ordered from LRU to MRU.
56
+ const sentinel = this._sentinel;
57
+ let node = list.head;
58
+ while (node !== sentinel &&
59
+ (tileset.gpuMemoryUsageInBytes > maximumMemoryUsageInBytes || trimTiles)) {
60
+ // @ts-expect-error
61
+ const tile = node.item;
62
+ // @ts-expect-error
63
+ node = node.next;
64
+ this.unloadTile(tileset, tile, unloadCallback);
65
+ }
66
+ }
67
+ trim() {
68
+ this._trimTiles = true;
50
69
  }
51
- }
52
- trim() {
53
- this._trimTiles = true;
54
- }
55
70
  }
56
- //# sourceMappingURL=tileset-cache.js.map
@@ -1,6 +1,6 @@
1
- import type { Tile3D } from './tile-3d';
2
- import { ManagedArray } from '../utils/managed-array';
3
- import { FrameState } from './helpers/frame-state';
1
+ import type { Tile3D } from "./tile-3d.js";
2
+ import { ManagedArray } from "../utils/managed-array.js";
3
+ import { FrameState } from "./helpers/frame-state.js";
4
4
  export type TilesetTraverserProps = {
5
5
  loadSiblings?: boolean;
6
6
  skipLevelOfDetail?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-traverser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tileset-traverser.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-traverser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,EAAC,YAAY,EAAC,kCAA+B;AAEpD,OAAO,EAAC,UAAU,EAAC,iCAA8B;AAEjD,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,UAAU,KAAA,KAAK,GAAG,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,qBAAqB,CAOzD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAGzC,IAAI,EAAE,GAAG,CAAQ;IAGjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAExC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAwB;IACpD,SAAS,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC7C,uEAAuE;IACvE,SAAS,CAAC,eAAe,eAAsB;IAC/C,SAAS,CAAC,oBAAoB,eAAsB;IACpD,kCAAkC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7C,SAAS,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;gBAKhD,OAAO,EAAE,qBAAqB;IAK1C,QAAQ,CAAC,IAAI,KAAA,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA;IAclC,KAAK;IAQL;;;;;;;;OAQG;IAEH,gBAAgB,CAAC,IAAI,KAAA,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAmEpD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQ5D,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,KAAA,EAAE,KAAK,KAAA,GAAG,OAAO;IAuDlF,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAKtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAStD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IASpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQrD,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,eAAe,GAAE,OAAe,EAChC,gBAAgB,GAAE,OAAe,GAChC,OAAO;IAmBV,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMrC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMvC,oFAAoF;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO;IAS7F,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAiBhE,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIrD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;IAajE,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO;CAkCrE"}