@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.
Files changed (124) hide show
  1. package/dist/dist.min.js +1031 -1433
  2. package/dist/es5/bundle.js +0 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/constants.js +2 -1
  5. package/dist/es5/constants.js.map +1 -1
  6. package/dist/es5/index.js +26 -36
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -1
  9. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +1 -1
  10. package/dist/es5/tileset/helpers/bounding-volume.js +7 -26
  11. package/dist/es5/tileset/helpers/bounding-volume.js.map +1 -1
  12. package/dist/es5/tileset/helpers/frame-state.js +45 -50
  13. package/dist/es5/tileset/helpers/frame-state.js.map +1 -1
  14. package/dist/es5/tileset/helpers/i3s-lod.js +0 -13
  15. package/dist/es5/tileset/helpers/i3s-lod.js.map +1 -1
  16. package/dist/es5/tileset/helpers/tiles-3d-lod.js +7 -16
  17. package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +1 -1
  18. package/dist/es5/tileset/helpers/transform-utils.js +2 -11
  19. package/dist/es5/tileset/helpers/transform-utils.js.map +1 -1
  20. package/dist/es5/tileset/helpers/zoom.js +6 -16
  21. package/dist/es5/tileset/helpers/zoom.js.map +1 -1
  22. package/dist/es5/tileset/tile-3d.js +111 -98
  23. package/dist/es5/tileset/tile-3d.js.map +1 -1
  24. package/dist/es5/tileset/tileset-3d.js +130 -196
  25. package/dist/es5/tileset/tileset-3d.js.map +1 -1
  26. package/dist/es5/tileset/tileset-cache.js +1 -14
  27. package/dist/es5/tileset/tileset-cache.js.map +1 -1
  28. package/dist/es5/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +21 -16
  29. package/dist/es5/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
  30. package/dist/es5/tileset/traversers/i3s-tile-manager.js +33 -27
  31. package/dist/es5/tileset/traversers/i3s-tile-manager.js.map +1 -1
  32. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js +10 -52
  33. package/dist/es5/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  34. package/dist/es5/tileset/traversers/tileset-3d-traverser.js +0 -22
  35. package/dist/es5/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  36. package/dist/es5/tileset/traversers/tileset-traverser.js +55 -78
  37. package/dist/es5/tileset/traversers/tileset-traverser.js.map +1 -1
  38. package/dist/es5/types.js.map +1 -1
  39. package/dist/es5/utils/doubly-linked-list-node.js +3 -7
  40. package/dist/es5/utils/doubly-linked-list-node.js.map +1 -1
  41. package/dist/es5/utils/doubly-linked-list.js +9 -17
  42. package/dist/es5/utils/doubly-linked-list.js.map +1 -1
  43. package/dist/es5/utils/managed-array.js +29 -30
  44. package/dist/es5/utils/managed-array.js.map +1 -1
  45. package/dist/esm/bundle.js +1 -1
  46. package/dist/esm/bundle.js.map +1 -1
  47. package/dist/esm/constants.js +3 -0
  48. package/dist/esm/constants.js.map +1 -1
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +1 -1
  51. package/dist/esm/tileset/helpers/bounding-volume.js +4 -10
  52. package/dist/esm/tileset/helpers/bounding-volume.js.map +1 -1
  53. package/dist/esm/tileset/helpers/frame-state.js +36 -20
  54. package/dist/esm/tileset/helpers/frame-state.js.map +1 -1
  55. package/dist/esm/tileset/helpers/i3s-lod.js +4 -4
  56. package/dist/esm/tileset/helpers/i3s-lod.js.map +1 -1
  57. package/dist/esm/tileset/helpers/tiles-3d-lod.js +11 -8
  58. package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +1 -1
  59. package/dist/esm/tileset/helpers/transform-utils.js +1 -3
  60. package/dist/esm/tileset/helpers/transform-utils.js.map +1 -1
  61. package/dist/esm/tileset/helpers/zoom.js +3 -2
  62. package/dist/esm/tileset/helpers/zoom.js.map +1 -1
  63. package/dist/esm/tileset/tile-3d.js +47 -108
  64. package/dist/esm/tileset/tile-3d.js.map +1 -1
  65. package/dist/esm/tileset/tileset-3d.js +70 -163
  66. package/dist/esm/tileset/tileset-3d.js.map +1 -1
  67. package/dist/esm/tileset/tileset-cache.js +2 -18
  68. package/dist/esm/tileset/tileset-cache.js.map +1 -1
  69. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js +28 -0
  70. package/dist/esm/tileset/traversers/i3s-pending-tiles-register.js.map +1 -0
  71. package/dist/esm/tileset/traversers/i3s-tile-manager.js +34 -15
  72. package/dist/esm/tileset/traversers/i3s-tile-manager.js.map +1 -1
  73. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js +8 -22
  74. package/dist/esm/tileset/traversers/i3s-tileset-traverser.js.map +1 -1
  75. package/dist/esm/tileset/traversers/tileset-3d-traverser.js +2 -9
  76. package/dist/esm/tileset/traversers/tileset-3d-traverser.js.map +1 -1
  77. package/dist/esm/tileset/traversers/tileset-traverser.js +20 -59
  78. package/dist/esm/tileset/traversers/tileset-traverser.js.map +1 -1
  79. package/dist/esm/types.js.map +1 -1
  80. package/dist/esm/utils/doubly-linked-list-node.js +1 -4
  81. package/dist/esm/utils/doubly-linked-list-node.js.map +1 -1
  82. package/dist/esm/utils/doubly-linked-list.js +2 -11
  83. package/dist/esm/utils/doubly-linked-list.js.map +1 -1
  84. package/dist/esm/utils/managed-array.js +4 -22
  85. package/dist/esm/utils/managed-array.js.map +1 -1
  86. package/dist/tileset/helpers/frame-state.d.ts +5 -8
  87. package/dist/tileset/helpers/frame-state.d.ts.map +1 -1
  88. package/dist/tileset/helpers/frame-state.js +27 -12
  89. package/dist/tileset/helpers/i3s-lod.d.ts.map +1 -1
  90. package/dist/tileset/tile-3d.d.ts +15 -4
  91. package/dist/tileset/tile-3d.d.ts.map +1 -1
  92. package/dist/tileset/tile-3d.js +15 -2
  93. package/dist/tileset/tileset-3d.d.ts +17 -4
  94. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  95. package/dist/tileset/tileset-3d.js +47 -10
  96. package/dist/tileset/traversers/{i3s-frame-counter.d.ts → i3s-pending-tiles-register.d.ts} +7 -4
  97. package/dist/tileset/traversers/i3s-pending-tiles-register.d.ts.map +1 -0
  98. package/dist/tileset/traversers/{i3s-frame-counter.js → i3s-pending-tiles-register.js} +17 -8
  99. package/dist/tileset/traversers/i3s-tile-manager.d.ts +19 -1
  100. package/dist/tileset/traversers/i3s-tile-manager.d.ts.map +1 -1
  101. package/dist/tileset/traversers/i3s-tile-manager.js +32 -12
  102. package/dist/tileset/traversers/i3s-tileset-traverser.d.ts +1 -1
  103. package/dist/tileset/traversers/i3s-tileset-traverser.d.ts.map +1 -1
  104. package/dist/tileset/traversers/i3s-tileset-traverser.js +9 -9
  105. package/dist/tileset/traversers/tileset-traverser.d.ts +3 -3
  106. package/dist/tileset/traversers/tileset-traverser.d.ts.map +1 -1
  107. package/dist/tileset/traversers/tileset-traverser.js +4 -4
  108. package/dist/types.d.ts +30 -1
  109. package/dist/types.d.ts.map +1 -1
  110. package/package.json +4 -4
  111. package/src/tileset/helpers/frame-state.ts +47 -19
  112. package/src/tileset/helpers/i3s-lod.ts +3 -1
  113. package/src/tileset/tile-3d.ts +16 -2
  114. package/src/tileset/tileset-3d.ts +55 -16
  115. package/src/tileset/traversers/i3s-pending-tiles-register.ts +44 -0
  116. package/src/tileset/traversers/i3s-tile-manager.ts +47 -11
  117. package/src/tileset/traversers/i3s-tileset-traverser.ts +5 -5
  118. package/src/tileset/traversers/tileset-traverser.ts +2 -2
  119. package/src/types.ts +32 -0
  120. package/dist/es5/tileset/traversers/i3s-frame-counter.js.map +0 -1
  121. package/dist/esm/tileset/traversers/i3s-frame-counter.js +0 -23
  122. package/dist/esm/tileset/traversers/i3s-frame-counter.js.map +0 -1
  123. package/dist/tileset/traversers/i3s-frame-counter.d.ts.map +0 -1
  124. package/src/tileset/traversers/i3s-frame-counter.ts +0 -35
@@ -1,21 +1,19 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
2
3
  import DoublyLinkedListNode from '../utils/doubly-linked-list-node';
4
+
3
5
  export default class DoublyLinkedList {
4
6
  constructor() {
5
7
  _defineProperty(this, "head", null);
6
-
7
8
  _defineProperty(this, "tail", null);
8
-
9
9
  _defineProperty(this, "_length", 0);
10
10
  }
11
-
12
11
  get length() {
13
12
  return this._length;
14
13
  }
15
14
 
16
15
  add(item) {
17
16
  const node = new DoublyLinkedListNode(item, this.tail, null);
18
-
19
17
  if (this.tail) {
20
18
  this.tail.next = node;
21
19
  this.tail = node;
@@ -23,7 +21,6 @@ export default class DoublyLinkedList {
23
21
  this.head = node;
24
22
  this.tail = node;
25
23
  }
26
-
27
24
  ++this._length;
28
25
  return node;
29
26
  }
@@ -32,7 +29,6 @@ export default class DoublyLinkedList {
32
29
  if (!node) {
33
30
  return;
34
31
  }
35
-
36
32
  if (node.previous && node.next) {
37
33
  node.previous.next = node.next;
38
34
  node.next.previous = node.previous;
@@ -46,7 +42,6 @@ export default class DoublyLinkedList {
46
42
  this.head = null;
47
43
  this.tail = null;
48
44
  }
49
-
50
45
  node.next = null;
51
46
  node.previous = null;
52
47
  --this._length;
@@ -58,10 +53,8 @@ export default class DoublyLinkedList {
58
53
  }
59
54
 
60
55
  this.remove(nextNode);
61
-
62
56
  this._insert(node, nextNode);
63
57
  }
64
-
65
58
  _insert(node, nextNode) {
66
59
  const oldNodeNext = node.next;
67
60
  node.next = nextNode;
@@ -71,11 +64,9 @@ export default class DoublyLinkedList {
71
64
  } else {
72
65
  oldNodeNext.previous = nextNode;
73
66
  }
74
-
75
67
  nextNode.next = oldNodeNext;
76
68
  nextNode.previous = node;
77
69
  ++this._length;
78
70
  }
79
-
80
71
  }
81
72
  //# sourceMappingURL=doubly-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/doubly-linked-list.ts"],"names":["DoublyLinkedListNode","DoublyLinkedList","length","_length","add","item","node","tail","next","head","remove","previous","splice","nextNode","_insert","oldNodeNext"],"mappings":";AAGA,OAAOA,oBAAP,MAAiC,kCAAjC;AAOA,eAAe,MAAMC,gBAAN,CAAuB;AAAA;AAAA,kCACA,IADA;;AAAA,kCAEA,IAFA;;AAAA,qCAG1B,CAH0B;AAAA;;AAK1B,MAANC,MAAM,GAAG;AACX,WAAO,KAAKC,OAAZ;AACD;;AAODC,EAAAA,GAAG,CAACC,IAAD,EAAO;AACR,UAAMC,IAAI,GAAG,IAAIN,oBAAJ,CAAyBK,IAAzB,EAA+B,KAAKE,IAApC,EAA0C,IAA1C,CAAb;;AAEA,QAAI,KAAKA,IAAT,EAAe;AACb,WAAKA,IAAL,CAAUC,IAAV,GAAiBF,IAAjB;AACA,WAAKC,IAAL,GAAYD,IAAZ;AACD,KAHD,MAGO;AACL,WAAKG,IAAL,GAAYH,IAAZ;AACA,WAAKC,IAAL,GAAYD,IAAZ;AACD;;AAED,MAAE,KAAKH,OAAP;AAEA,WAAOG,IAAP;AACD;;AAMDI,EAAAA,MAAM,CAACJ,IAAD,EAAO;AACX,QAAI,CAACA,IAAL,EAAW;AACT;AACD;;AAED,QAAIA,IAAI,CAACK,QAAL,IAAiBL,IAAI,CAACE,IAA1B,EAAgC;AAC9BF,MAAAA,IAAI,CAACK,QAAL,CAAcH,IAAd,GAAqBF,IAAI,CAACE,IAA1B;AACAF,MAAAA,IAAI,CAACE,IAAL,CAAUG,QAAV,GAAqBL,IAAI,CAACK,QAA1B;AACD,KAHD,MAGO,IAAIL,IAAI,CAACK,QAAT,EAAmB;AAExBL,MAAAA,IAAI,CAACK,QAAL,CAAcH,IAAd,GAAqB,IAArB;AACA,WAAKD,IAAL,GAAYD,IAAI,CAACK,QAAjB;AACD,KAJM,MAIA,IAAIL,IAAI,CAACE,IAAT,EAAe;AAEpBF,MAAAA,IAAI,CAACE,IAAL,CAAUG,QAAV,GAAqB,IAArB;AACA,WAAKF,IAAL,GAAYH,IAAI,CAACE,IAAjB;AACD,KAJM,MAIA;AAEL,WAAKC,IAAL,GAAY,IAAZ;AACA,WAAKF,IAAL,GAAY,IAAZ;AACD;;AAEDD,IAAAA,IAAI,CAACE,IAAL,GAAY,IAAZ;AACAF,IAAAA,IAAI,CAACK,QAAL,GAAgB,IAAhB;AAEA,MAAE,KAAKR,OAAP;AACD;;AAODS,EAAAA,MAAM,CAACN,IAAD,EAAOO,QAAP,EAAiB;AACrB,QAAIP,IAAI,KAAKO,QAAb,EAAuB;AACrB;AACD;;AAGD,SAAKH,MAAL,CAAYG,QAAZ;;AACA,SAAKC,OAAL,CAAaR,IAAb,EAAmBO,QAAnB;AACD;;AAEDC,EAAAA,OAAO,CAACR,IAAD,EAAOO,QAAP,EAAiB;AACtB,UAAME,WAAW,GAAGT,IAAI,CAACE,IAAzB;AACAF,IAAAA,IAAI,CAACE,IAAL,GAAYK,QAAZ;;AAGA,QAAI,KAAKN,IAAL,KAAcD,IAAlB,EAAwB;AACtB,WAAKC,IAAL,GAAYM,QAAZ;AACD,KAFD,MAEO;AACLE,MAAAA,WAAW,CAACJ,QAAZ,GAAuBE,QAAvB;AACD;;AAEDA,IAAAA,QAAQ,CAACL,IAAT,GAAgBO,WAAhB;AACAF,IAAAA,QAAQ,CAACF,QAAT,GAAoBL,IAApB;AAEA,MAAE,KAAKH,OAAP;AACD;;AA5FmC","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 DoublyLinkedListNode from '../utils/doubly-linked-list-node';\n\n/**\n * Doubly linked list\n *\n * @private\n */\nexport default class DoublyLinkedList {\n head: DoublyLinkedListNode | null = null;\n tail: DoublyLinkedListNode | null = null;\n _length = 0;\n\n get length() {\n return this._length;\n }\n\n /**\n * Adds the item to the end of the list\n * @param {*} [item]\n * @return {DoublyLinkedListNode}\n */\n add(item) {\n const node = new DoublyLinkedListNode(item, this.tail, null);\n\n if (this.tail) {\n this.tail.next = node;\n this.tail = node;\n } else {\n this.head = node;\n this.tail = node;\n }\n\n ++this._length;\n\n return node;\n }\n\n /**\n * Removes the given node from the list\n * @param {DoublyLinkedListNode} node\n */\n remove(node) {\n if (!node) {\n return;\n }\n\n if (node.previous && node.next) {\n node.previous.next = node.next;\n node.next.previous = node.previous;\n } else if (node.previous) {\n // Remove last node\n node.previous.next = null;\n this.tail = node.previous;\n } else if (node.next) {\n // Remove first node\n node.next.previous = null;\n this.head = node.next;\n } else {\n // Remove last node in the linked list\n this.head = null;\n this.tail = null;\n }\n\n node.next = null;\n node.previous = null;\n\n --this._length;\n }\n\n /**\n * Moves nextNode after node\n * @param {DoublyLinkedListNode} node\n * @param {DoublyLinkedListNode} nextNode\n */\n splice(node, nextNode) {\n if (node === nextNode) {\n return;\n }\n\n // Remove nextNode, then insert after node\n this.remove(nextNode);\n this._insert(node, nextNode);\n }\n\n _insert(node, nextNode) {\n const oldNodeNext = node.next;\n node.next = nextNode;\n\n // nextNode is the new tail\n if (this.tail === node) {\n this.tail = nextNode;\n } else {\n oldNodeNext.previous = nextNode;\n }\n\n nextNode.next = oldNodeNext;\n nextNode.previous = node;\n\n ++this._length;\n }\n}\n"],"file":"doubly-linked-list.js"}
1
+ {"version":3,"file":"doubly-linked-list.js","names":["DoublyLinkedListNode","DoublyLinkedList","length","_length","add","item","node","tail","next","head","remove","previous","splice","nextNode","_insert","oldNodeNext"],"sources":["../../../src/utils/doubly-linked-list.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 DoublyLinkedListNode from '../utils/doubly-linked-list-node';\n\n/**\n * Doubly linked list\n *\n * @private\n */\nexport default class DoublyLinkedList {\n head: DoublyLinkedListNode | null = null;\n tail: DoublyLinkedListNode | null = null;\n _length = 0;\n\n get length() {\n return this._length;\n }\n\n /**\n * Adds the item to the end of the list\n * @param {*} [item]\n * @return {DoublyLinkedListNode}\n */\n add(item) {\n const node = new DoublyLinkedListNode(item, this.tail, null);\n\n if (this.tail) {\n this.tail.next = node;\n this.tail = node;\n } else {\n this.head = node;\n this.tail = node;\n }\n\n ++this._length;\n\n return node;\n }\n\n /**\n * Removes the given node from the list\n * @param {DoublyLinkedListNode} node\n */\n remove(node) {\n if (!node) {\n return;\n }\n\n if (node.previous && node.next) {\n node.previous.next = node.next;\n node.next.previous = node.previous;\n } else if (node.previous) {\n // Remove last node\n node.previous.next = null;\n this.tail = node.previous;\n } else if (node.next) {\n // Remove first node\n node.next.previous = null;\n this.head = node.next;\n } else {\n // Remove last node in the linked list\n this.head = null;\n this.tail = null;\n }\n\n node.next = null;\n node.previous = null;\n\n --this._length;\n }\n\n /**\n * Moves nextNode after node\n * @param {DoublyLinkedListNode} node\n * @param {DoublyLinkedListNode} nextNode\n */\n splice(node, nextNode) {\n if (node === nextNode) {\n return;\n }\n\n // Remove nextNode, then insert after node\n this.remove(nextNode);\n this._insert(node, nextNode);\n }\n\n _insert(node, nextNode) {\n const oldNodeNext = node.next;\n node.next = nextNode;\n\n // nextNode is the new tail\n if (this.tail === node) {\n this.tail = nextNode;\n } else {\n oldNodeNext.previous = nextNode;\n }\n\n nextNode.next = oldNodeNext;\n nextNode.previous = node;\n\n ++this._length;\n }\n}\n"],"mappings":";;AAGA,OAAOA,oBAAoB,MAAM,kCAAkC;;AAOnE,eAAe,MAAMC,gBAAgB,CAAC;EAAA;IAAA,8BACA,IAAI;IAAA,8BACJ,IAAI;IAAA,iCAC9B,CAAC;EAAA;EAEX,IAAIC,MAAM,GAAG;IACX,OAAO,IAAI,CAACC,OAAO;EACrB;;EAOAC,GAAG,CAACC,IAAI,EAAE;IACR,MAAMC,IAAI,GAAG,IAAIN,oBAAoB,CAACK,IAAI,EAAE,IAAI,CAACE,IAAI,EAAE,IAAI,CAAC;IAE5D,IAAI,IAAI,CAACA,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,CAACC,IAAI,GAAGF,IAAI;MACrB,IAAI,CAACC,IAAI,GAAGD,IAAI;IAClB,CAAC,MAAM;MACL,IAAI,CAACG,IAAI,GAAGH,IAAI;MAChB,IAAI,CAACC,IAAI,GAAGD,IAAI;IAClB;IAEA,EAAE,IAAI,CAACH,OAAO;IAEd,OAAOG,IAAI;EACb;;EAMAI,MAAM,CAACJ,IAAI,EAAE;IACX,IAAI,CAACA,IAAI,EAAE;MACT;IACF;IAEA,IAAIA,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACE,IAAI,EAAE;MAC9BF,IAAI,CAACK,QAAQ,CAACH,IAAI,GAAGF,IAAI,CAACE,IAAI;MAC9BF,IAAI,CAACE,IAAI,CAACG,QAAQ,GAAGL,IAAI,CAACK,QAAQ;IACpC,CAAC,MAAM,IAAIL,IAAI,CAACK,QAAQ,EAAE;MAExBL,IAAI,CAACK,QAAQ,CAACH,IAAI,GAAG,IAAI;MACzB,IAAI,CAACD,IAAI,GAAGD,IAAI,CAACK,QAAQ;IAC3B,CAAC,MAAM,IAAIL,IAAI,CAACE,IAAI,EAAE;MAEpBF,IAAI,CAACE,IAAI,CAACG,QAAQ,GAAG,IAAI;MACzB,IAAI,CAACF,IAAI,GAAGH,IAAI,CAACE,IAAI;IACvB,CAAC,MAAM;MAEL,IAAI,CAACC,IAAI,GAAG,IAAI;MAChB,IAAI,CAACF,IAAI,GAAG,IAAI;IAClB;IAEAD,IAAI,CAACE,IAAI,GAAG,IAAI;IAChBF,IAAI,CAACK,QAAQ,GAAG,IAAI;IAEpB,EAAE,IAAI,CAACR,OAAO;EAChB;;EAOAS,MAAM,CAACN,IAAI,EAAEO,QAAQ,EAAE;IACrB,IAAIP,IAAI,KAAKO,QAAQ,EAAE;MACrB;IACF;;IAGA,IAAI,CAACH,MAAM,CAACG,QAAQ,CAAC;IACrB,IAAI,CAACC,OAAO,CAACR,IAAI,EAAEO,QAAQ,CAAC;EAC9B;EAEAC,OAAO,CAACR,IAAI,EAAEO,QAAQ,EAAE;IACtB,MAAME,WAAW,GAAGT,IAAI,CAACE,IAAI;IAC7BF,IAAI,CAACE,IAAI,GAAGK,QAAQ;;IAGpB,IAAI,IAAI,CAACN,IAAI,KAAKD,IAAI,EAAE;MACtB,IAAI,CAACC,IAAI,GAAGM,QAAQ;IACtB,CAAC,MAAM;MACLE,WAAW,CAACJ,QAAQ,GAAGE,QAAQ;IACjC;IAEAA,QAAQ,CAACL,IAAI,GAAGO,WAAW;IAC3BF,QAAQ,CAACF,QAAQ,GAAGL,IAAI;IAExB,EAAE,IAAI,CAACH,OAAO;EAChB;AACF"}
@@ -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(length = 0) {
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,"sources":["../../../src/utils/managed-array.ts"],"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"],"mappings":"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","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"],"file":"managed-array.js"}
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,23 +1,20 @@
1
1
  import { Tile3D } from '@loaders.gl/tiles';
2
2
  import { CullingVolume } from '@math.gl/culling';
3
- export declare type FrameState = {
3
+ import { GeospatialViewport } from '../../types';
4
+ export type FrameState = {
4
5
  camera: {
5
6
  position: number[];
6
7
  direction: number[];
7
8
  up: number[];
8
9
  };
9
- viewport: {
10
- [key: string]: any;
11
- };
12
- topDownViewport: {
13
- [key: string]: any;
14
- };
10
+ viewport: GeospatialViewport;
11
+ topDownViewport: GeospatialViewport;
15
12
  height: number;
16
13
  cullingVolume: CullingVolume;
17
14
  frameNumber: number;
18
15
  sseDenominator: number;
19
16
  };
20
- export declare function getFrameState(viewport: any, frameNumber: number): FrameState;
17
+ export declare function getFrameState(viewport: GeospatialViewport, frameNumber: number): FrameState;
21
18
  /**
22
19
  * Limit `tiles` array length with `maximumTilesSelected` number.
23
20
  * The criteria for this filtering is distance of a tile center
@@ -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;AAGtD,oBAAY,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;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC/B,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IACtC,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,KAAA,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CA2DvE;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"}
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"}
@@ -17,13 +17,13 @@ const cullingVolume = new culling_1.CullingVolume([
17
17
  // Extracts a frame state appropriate for tile culling from a deck.gl viewport
18
18
  // TODO - this could likely be generalized and merged back into deck.gl for other culling scenarios
19
19
  function getFrameState(viewport, frameNumber) {
20
+ // Traverse and and request. Update _selectedTiles so that we know what to render.
20
21
  // Traverse and and request. Update _selectedTiles so that we know what to render.
21
22
  const { cameraDirection, cameraUp, height } = viewport;
22
23
  const { metersPerUnit } = viewport.distanceScales;
23
- const viewportCenterCartographic = viewport.unprojectPosition(viewport.center);
24
24
  // TODO - Ellipsoid.eastNorthUpToFixedFrame() breaks on raw array, create a Vector.
25
25
  // TODO - Ellipsoid.eastNorthUpToFixedFrame() takes a cartesian, is that intuitive?
26
- const viewportCenterCartesian = geospatial_1.Ellipsoid.WGS84.cartographicToCartesian(viewportCenterCartographic, new core_1.Vector3());
26
+ const viewportCenterCartesian = worldToCartesian(viewport, viewport.center);
27
27
  const enuToFixedTransform = geospatial_1.Ellipsoid.WGS84.eastNorthUpToFixedFrame(viewportCenterCartesian);
28
28
  const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
29
29
  const cameraPositionCartesian = geospatial_1.Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, new core_1.Vector3());
@@ -34,7 +34,7 @@ function getFrameState(viewport, frameNumber) {
34
34
  const cameraUpCartesian = new core_1.Vector3(
35
35
  // @ts-ignore
36
36
  enuToFixedTransform.transformAsVector(new core_1.Vector3(cameraUp).scale(metersPerUnit))).normalize();
37
- commonSpacePlanesToWGS84(viewport, viewportCenterCartesian);
37
+ commonSpacePlanesToWGS84(viewport);
38
38
  const ViewportClass = viewport.constructor;
39
39
  const { longitude, latitude, width, bearing, zoom } = viewport;
40
40
  // @ts-ignore
@@ -98,21 +98,36 @@ function limitSelectedTiles(tiles, frameState, maximumTilesSelected) {
98
98
  return [selectedTiles, unselectedTiles];
99
99
  }
100
100
  exports.limitSelectedTiles = limitSelectedTiles;
101
- function commonSpacePlanesToWGS84(viewport, viewportCenterCartesian) {
101
+ function commonSpacePlanesToWGS84(viewport) {
102
102
  // Extract frustum planes based on current view.
103
103
  const frustumPlanes = viewport.getFrustumPlanes();
104
+ // Get the near/far plane centers
105
+ const nearCenterCommon = closestPointOnPlane(frustumPlanes.near, viewport.cameraPosition);
106
+ const nearCenterCartesian = worldToCartesian(viewport, nearCenterCommon);
107
+ const cameraCartesian = worldToCartesian(viewport, viewport.cameraPosition, scratchPosition);
104
108
  let i = 0;
109
+ cullingVolume.planes[i++].fromPointNormal(nearCenterCartesian, scratchVector.copy(nearCenterCartesian).subtract(cameraCartesian));
105
110
  for (const dir in frustumPlanes) {
111
+ if (dir === 'near') {
112
+ continue; // eslint-disable-line no-continue
113
+ }
106
114
  const plane = frustumPlanes[dir];
107
- const distanceToCenter = plane.normal.dot(viewport.center);
108
- scratchPosition
109
- .copy(plane.normal)
110
- .scale(plane.distance - distanceToCenter)
111
- .add(viewport.center);
112
- const cartographicPos = viewport.unprojectPosition(scratchPosition);
113
- const cartesianPos = geospatial_1.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, new core_1.Vector3());
115
+ const posCommon = closestPointOnPlane(plane, nearCenterCommon, scratchPosition);
116
+ const cartesianPos = worldToCartesian(viewport, posCommon, scratchPosition);
114
117
  cullingVolume.planes[i++].fromPointNormal(cartesianPos,
115
118
  // Want the normal to point into the frustum since that's what culling expects
116
- scratchVector.copy(viewportCenterCartesian).subtract(cartesianPos));
119
+ scratchVector.copy(nearCenterCartesian).subtract(cartesianPos));
117
120
  }
118
121
  }
122
+ function closestPointOnPlane(plane, refPoint, out = new core_1.Vector3()) {
123
+ const distanceToRef = plane.normal.dot(refPoint);
124
+ out
125
+ .copy(plane.normal)
126
+ .scale(plane.distance - distanceToRef)
127
+ .add(refPoint);
128
+ return out;
129
+ }
130
+ function worldToCartesian(viewport, point, out = new core_1.Vector3()) {
131
+ const cartographicPos = viewport.unprojectPosition(point);
132
+ return geospatial_1.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, out);
133
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-lod.d.ts","sourceRoot":"","sources":["../../../src/tileset/helpers/i3s-lod.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAUzC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAczF;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CA2C/E"}
1
+ {"version":3,"file":"i3s-lod.d.ts","sourceRoot":"","sources":["../../../src/tileset/helpers/i3s-lod.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAUzC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAczF;AAED;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CA6C/E"}
@@ -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 declare type TileHeaderProps = {
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
  };
@@ -178,9 +179,19 @@ export default class TileHeader {
178
179
  _getLoaderSpecificOptions(loaderId: any): {
179
180
  assetGltfUpAxis: any;
180
181
  } | {
181
- tile: any;
182
- tileset: {
183
- [key: string]: any;
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;
184
195
  };
185
196
  isTileHeader: boolean;
186
197
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tile-3d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tile-3d.ts"],"names":[],"mappings":"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"}
@@ -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() {
@@ -560,8 +561,20 @@ class TileHeader {
560
561
  case 'i3s':
561
562
  return {
562
563
  ...this.tileset.options.i3s,
563
- tile: this.header,
564
- tileset: this.tileset.tileset,
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
+ },
565
578
  isTileHeader: false
566
579
  };
567
580
  case '3d-tiles':
@@ -4,7 +4,8 @@ import { RequestScheduler, LoaderWithParser, LoaderOptions } from '@loaders.gl/l
4
4
  import { FrameState } from './helpers/frame-state';
5
5
  import Tile3D from './tile-3d';
6
6
  import TilesetTraverser from './traversers/tileset-traverser';
7
- export declare type Tileset3DProps = {
7
+ import { Viewport } from '../types';
8
+ export type Tileset3DProps = {
8
9
  throttleRequests?: boolean;
9
10
  maxRequests?: number;
10
11
  loadOptions?: LoaderOptions;
@@ -27,7 +28,7 @@ export declare type Tileset3DProps = {
27
28
  contentLoader?: (tile: Tile3D) => Promise<void>;
28
29
  onTraversalComplete?: (selectedTiles: Tile3D[]) => Tile3D[];
29
30
  };
30
- declare type Props = {
31
+ type Props = {
31
32
  description: string;
32
33
  ellipsoid: object;
33
34
  modelMatrix: Matrix4;
@@ -83,6 +84,13 @@ export default class Tileset3D {
83
84
  attributions: any;
84
85
  credits: any;
85
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
+ };
86
94
  traverseCounter: number;
87
95
  geometricError: number;
88
96
  selectedTiles: Tile3D[];
@@ -135,14 +143,14 @@ export default class Tileset3D {
135
143
  * @param viewports - list of viewports
136
144
  * @deprecated
137
145
  */
138
- update(viewports?: any[] | null): void;
146
+ update(viewports?: Viewport[] | Viewport | null): void;
139
147
  /**
140
148
  * Update visible tiles relying on a list of viewports.
141
149
  * Do it with debounce delay to prevent update spam
142
150
  * @param viewports viewports
143
151
  * @returns Promise of new frameNumber
144
152
  */
145
- selectTiles(viewports?: any[] | null): Promise<number>;
153
+ selectTiles(viewports?: Viewport[] | Viewport | null): Promise<number>;
146
154
  /**
147
155
  * Update visible tiles relying on a list of viewports
148
156
  * @param viewports viewports
@@ -189,6 +197,11 @@ export default class Tileset3D {
189
197
  _loadTile(tile: any): Promise<void>;
190
198
  _onTileLoadError(tile: any, error: any): void;
191
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;
192
205
  _onStartTileLoading(): void;
193
206
  _onEndTileLoading(): void;
194
207
  _addTileToCache(tile: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-3d.d.ts","sourceRoot":"","sources":["../../src/tileset/tileset-3d.ts"],"names":[],"mappings":"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"}
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
@@ -240,7 +242,9 @@ class Tileset3D {
240
242
  else {
241
243
  this.lastUpdatedVieports = viewports;
242
244
  }
243
- this.doUpdate(viewports);
245
+ if (viewports) {
246
+ this.doUpdate(viewports);
247
+ }
244
248
  });
245
249
  }
246
250
  /**
@@ -257,7 +261,9 @@ class Tileset3D {
257
261
  if (!this.updatePromise) {
258
262
  this.updatePromise = new Promise((resolve) => {
259
263
  setTimeout(() => {
260
- this.doUpdate(this.lastUpdatedVieports);
264
+ if (this.lastUpdatedVieports) {
265
+ this.doUpdate(this.lastUpdatedVieports);
266
+ }
261
267
  resolve(this._frameNumber);
262
268
  this.updatePromise = null;
263
269
  }, this.options.debounceTime);
@@ -270,22 +276,20 @@ class Tileset3D {
270
276
  * @param viewports viewports
271
277
  */
272
278
  // eslint-disable-next-line max-statements, complexity
273
- doUpdate(viewports = null) {
279
+ doUpdate(viewports) {
274
280
  if ('loadTiles' in this.options && !this.options.loadTiles) {
275
281
  return;
276
282
  }
277
283
  if (this.traverseCounter > 0) {
278
284
  return;
279
285
  }
280
- if (!(viewports instanceof Array)) {
281
- viewports = [viewports];
282
- }
286
+ const preparedViewports = viewports instanceof Array ? viewports : [viewports];
283
287
  this._cache.reset();
284
288
  this._frameNumber++;
285
- this.traverseCounter = viewports.length;
289
+ this.traverseCounter = preparedViewports.length;
286
290
  const viewportsToTraverse = [];
287
291
  // First loop to decrement traverseCounter
288
- for (const viewport of viewports) {
292
+ for (const viewport of preparedViewports) {
289
293
  const id = viewport.id;
290
294
  if (this._needTraverse(id)) {
291
295
  viewportsToTraverse.push(id);
@@ -295,7 +299,7 @@ class Tileset3D {
295
299
  }
296
300
  }
297
301
  // Second loop to traverse
298
- for (const viewport of viewports) {
302
+ for (const viewport of preparedViewports) {
299
303
  const id = viewport.id;
300
304
  if (!this.roots[id]) {
301
305
  this.roots[id] = this._initializeTileHeaders(this.tileset, null);
@@ -493,7 +497,7 @@ class Tileset3D {
493
497
  this.stats.get(TILES_LOADED);
494
498
  this.stats.get(TILES_UNLOADED);
495
499
  this.stats.get(TILES_LOAD_FAILED);
496
- this.stats.get(POINTS_COUNT, 'memory');
500
+ this.stats.get(POINTS_COUNT);
497
501
  this.stats.get(TILES_GPU_MEMORY, 'memory');
498
502
  }
499
503
  // Installs the main tileset JSON file or a tileset JSON file referenced from a tile.
@@ -583,9 +587,42 @@ class Tileset3D {
583
587
  if (tile && tile.content) {
584
588
  (0, transform_utils_1.calculateTransformProps)(tile, tile.content);
585
589
  }
590
+ this.updateContentTypes(tile);
586
591
  this._addTileToCache(tile);
587
592
  this.options.onTileLoad(tile);
588
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
+ }
589
626
  _onStartTileLoading() {
590
627
  this._pendingCount++;
591
628
  this.stats.get(TILES_LOADING).incrementCount();