@loaders.gl/tiles 4.0.0-beta.2 → 4.0.0-beta.4

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 (126) hide show
  1. package/dist/constants.js.map +1 -0
  2. package/dist/dist.dev.js +7777 -0
  3. package/dist/index.cjs +2537 -0
  4. package/dist/index.js +10 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/{esm/tileset → tileset}/format-3d-tiles/tileset-3d-traverser.js +2 -2
  7. package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
  8. package/dist/{esm/tileset → tileset}/format-i3s/i3s-pending-tiles-register.js +1 -2
  9. package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -0
  10. package/dist/{esm/tileset → tileset}/format-i3s/i3s-tile-manager.js +3 -4
  11. package/dist/tileset/format-i3s/i3s-tile-manager.js.map +1 -0
  12. package/dist/{esm/tileset → tileset}/format-i3s/i3s-tileset-traverser.js +7 -8
  13. package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -0
  14. package/dist/tileset/helpers/3d-tiles-options.js.map +1 -0
  15. package/dist/tileset/helpers/bounding-volume.d.ts +1 -1
  16. package/dist/tileset/helpers/bounding-volume.d.ts.map +1 -1
  17. package/dist/{esm/tileset → tileset}/helpers/bounding-volume.js +16 -6
  18. package/dist/tileset/helpers/bounding-volume.js.map +1 -0
  19. package/dist/tileset/helpers/frame-state.js.map +1 -0
  20. package/dist/tileset/helpers/i3s-lod.js.map +1 -0
  21. package/dist/tileset/helpers/tiles-3d-lod.js.map +1 -0
  22. package/dist/tileset/helpers/transform-utils.js.map +1 -0
  23. package/dist/{esm/tileset → tileset}/helpers/zoom.js +2 -2
  24. package/dist/tileset/helpers/zoom.js.map +1 -0
  25. package/dist/tileset/tile-3d.d.ts.map +1 -1
  26. package/dist/{esm/tileset → tileset}/tile-3d.js +55 -56
  27. package/dist/tileset/tile-3d.js.map +1 -0
  28. package/dist/tileset/tileset-3d.d.ts.map +1 -1
  29. package/dist/{esm/tileset → tileset}/tileset-3d.js +64 -62
  30. package/dist/tileset/tileset-3d.js.map +1 -0
  31. package/dist/{esm/tileset → tileset}/tileset-cache.js +4 -5
  32. package/dist/tileset/tileset-cache.js.map +1 -0
  33. package/dist/{esm/tileset → tileset}/tileset-traverser.js +12 -13
  34. package/dist/tileset/tileset-traverser.js.map +1 -0
  35. package/dist/types.js.map +1 -0
  36. package/dist/utils/doubly-linked-list-node.js +11 -0
  37. package/dist/utils/doubly-linked-list-node.js.map +1 -0
  38. package/dist/{esm/utils → utils}/doubly-linked-list.js +4 -5
  39. package/dist/utils/doubly-linked-list.js.map +1 -0
  40. package/dist/{esm/utils → utils}/managed-array.js +3 -4
  41. package/dist/utils/managed-array.js.map +1 -0
  42. package/package.json +21 -13
  43. package/src/tileset/helpers/bounding-volume.ts +53 -24
  44. package/src/tileset/helpers/zoom.ts +5 -5
  45. package/src/tileset/tile-3d.ts +1 -1
  46. package/src/tileset/tileset-3d.ts +6 -9
  47. package/dist/bundle.d.ts +0 -2
  48. package/dist/bundle.d.ts.map +0 -1
  49. package/dist/dist.min.js +0 -9231
  50. package/dist/es5/bundle.js +0 -6
  51. package/dist/es5/bundle.js.map +0 -1
  52. package/dist/es5/constants.js +0 -48
  53. package/dist/es5/constants.js.map +0 -1
  54. package/dist/es5/index.js +0 -93
  55. package/dist/es5/index.js.map +0 -1
  56. package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -70
  57. package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  58. package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js +0 -45
  59. package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  60. package/dist/es5/tileset/format-i3s/i3s-tile-manager.js +0 -84
  61. package/dist/es5/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
  62. package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js +0 -143
  63. package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
  64. package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -12
  65. package/dist/es5/tileset/helpers/3d-tiles-options.js.map +0 -1
  66. package/dist/es5/tileset/helpers/bounding-volume.js +0 -176
  67. package/dist/es5/tileset/helpers/bounding-volume.js.map +0 -1
  68. package/dist/es5/tileset/helpers/frame-state.js +0 -129
  69. package/dist/es5/tileset/helpers/frame-state.js.map +0 -1
  70. package/dist/es5/tileset/helpers/i3s-lod.js +0 -60
  71. package/dist/es5/tileset/helpers/i3s-lod.js.map +0 -1
  72. package/dist/es5/tileset/helpers/tiles-3d-lod.js +0 -103
  73. package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +0 -1
  74. package/dist/es5/tileset/helpers/transform-utils.js +0 -50
  75. package/dist/es5/tileset/helpers/transform-utils.js.map +0 -1
  76. package/dist/es5/tileset/helpers/zoom.js +0 -63
  77. package/dist/es5/tileset/helpers/zoom.js.map +0 -1
  78. package/dist/es5/tileset/tile-3d.js +0 -536
  79. package/dist/es5/tileset/tile-3d.js.map +0 -1
  80. package/dist/es5/tileset/tileset-3d.js +0 -859
  81. package/dist/es5/tileset/tileset-3d.js.map +0 -1
  82. package/dist/es5/tileset/tileset-cache.js +0 -82
  83. package/dist/es5/tileset/tileset-cache.js.map +0 -1
  84. package/dist/es5/tileset/tileset-traverser.js +0 -321
  85. package/dist/es5/tileset/tileset-traverser.js.map +0 -1
  86. package/dist/es5/types.js +0 -2
  87. package/dist/es5/types.js.map +0 -1
  88. package/dist/es5/utils/doubly-linked-list-node.js +0 -21
  89. package/dist/es5/utils/doubly-linked-list-node.js.map +0 -1
  90. package/dist/es5/utils/doubly-linked-list.js +0 -88
  91. package/dist/es5/utils/doubly-linked-list.js.map +0 -1
  92. package/dist/es5/utils/managed-array.js +0 -126
  93. package/dist/es5/utils/managed-array.js.map +0 -1
  94. package/dist/esm/bundle.js +0 -4
  95. package/dist/esm/bundle.js.map +0 -1
  96. package/dist/esm/constants.js.map +0 -1
  97. package/dist/esm/index.js +0 -10
  98. package/dist/esm/index.js.map +0 -1
  99. package/dist/esm/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
  100. package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
  101. package/dist/esm/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
  102. package/dist/esm/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
  103. package/dist/esm/tileset/helpers/3d-tiles-options.js.map +0 -1
  104. package/dist/esm/tileset/helpers/bounding-volume.js.map +0 -1
  105. package/dist/esm/tileset/helpers/frame-state.js.map +0 -1
  106. package/dist/esm/tileset/helpers/i3s-lod.js.map +0 -1
  107. package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +0 -1
  108. package/dist/esm/tileset/helpers/transform-utils.js.map +0 -1
  109. package/dist/esm/tileset/helpers/zoom.js.map +0 -1
  110. package/dist/esm/tileset/tile-3d.js.map +0 -1
  111. package/dist/esm/tileset/tileset-3d.js.map +0 -1
  112. package/dist/esm/tileset/tileset-cache.js.map +0 -1
  113. package/dist/esm/tileset/tileset-traverser.js.map +0 -1
  114. package/dist/esm/types.js.map +0 -1
  115. package/dist/esm/utils/doubly-linked-list-node.js +0 -12
  116. package/dist/esm/utils/doubly-linked-list-node.js.map +0 -1
  117. package/dist/esm/utils/doubly-linked-list.js.map +0 -1
  118. package/dist/esm/utils/managed-array.js.map +0 -1
  119. package/src/bundle.ts +0 -4
  120. /package/dist/{esm/constants.js → constants.js} +0 -0
  121. /package/dist/{esm/tileset → tileset}/helpers/3d-tiles-options.js +0 -0
  122. /package/dist/{esm/tileset → tileset}/helpers/frame-state.js +0 -0
  123. /package/dist/{esm/tileset → tileset}/helpers/i3s-lod.js +0 -0
  124. /package/dist/{esm/tileset → tileset}/helpers/tiles-3d-lod.js +0 -0
  125. /package/dist/{esm/tileset → tileset}/helpers/transform-utils.js +0 -0
  126. /package/dist/{esm/types.js → types.js} +0 -0
@@ -0,0 +1,11 @@
1
+ export class DoublyLinkedListNode {
2
+ constructor(item, previous, next) {
3
+ this.item = void 0;
4
+ this.previous = void 0;
5
+ this.next = void 0;
6
+ this.item = item;
7
+ this.previous = previous;
8
+ this.next = next;
9
+ }
10
+ }
11
+ //# sourceMappingURL=doubly-linked-list-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubly-linked-list-node.js","names":["DoublyLinkedListNode","constructor","item","previous","next"],"sources":["../../src/utils/doubly-linked-list-node.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// 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\n/**\n * Doubly linked list node\n * @private\n */\nexport class DoublyLinkedListNode {\n item;\n previous;\n next;\n\n constructor(item, previous, next) {\n this.item = item;\n this.previous = previous;\n this.next = next;\n }\n}\n"],"mappings":"AASA,OAAO,MAAMA,oBAAoB,CAAC;EAKhCC,WAAWA,CAACC,IAAI,EAAEC,QAAQ,EAAEC,IAAI,EAAE;IAAA,KAJlCF,IAAI;IAAA,KACJC,QAAQ;IAAA,KACRC,IAAI;IAGF,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF"}
@@ -1,10 +1,9 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { DoublyLinkedListNode } from './doubly-linked-list-node';
1
+ import { DoublyLinkedListNode } from "./doubly-linked-list-node.js";
3
2
  export class DoublyLinkedList {
4
3
  constructor() {
5
- _defineProperty(this, "head", null);
6
- _defineProperty(this, "tail", null);
7
- _defineProperty(this, "_length", 0);
4
+ this.head = null;
5
+ this.tail = null;
6
+ this._length = 0;
8
7
  }
9
8
  get length() {
10
9
  return this._length;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doubly-linked-list.js","names":["DoublyLinkedListNode","DoublyLinkedList","constructor","head","tail","_length","length","add","item","node","next","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 './doubly-linked-list-node';\n\n/**\n * Doubly linked list\n * @private\n */\nexport 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":"SAGQA,oBAAoB;AAM5B,OAAO,MAAMC,gBAAgB,CAAC;EAAAC,YAAA;IAAA,KAC5BC,IAAI,GAAgC,IAAI;IAAA,KACxCC,IAAI,GAAgC,IAAI;IAAA,KACxCC,OAAO,GAAG,CAAC;EAAA;EAEX,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,OAAO;EACrB;EAOAE,GAAGA,CAACC,IAAI,EAAE;IACR,MAAMC,IAAI,GAAG,IAAIT,oBAAoB,CAACQ,IAAI,EAAE,IAAI,CAACJ,IAAI,EAAE,IAAI,CAAC;IAE5D,IAAI,IAAI,CAACA,IAAI,EAAE;MACb,IAAI,CAACA,IAAI,CAACM,IAAI,GAAGD,IAAI;MACrB,IAAI,CAACL,IAAI,GAAGK,IAAI;IAClB,CAAC,MAAM;MACL,IAAI,CAACN,IAAI,GAAGM,IAAI;MAChB,IAAI,CAACL,IAAI,GAAGK,IAAI;IAClB;IAEA,EAAE,IAAI,CAACJ,OAAO;IAEd,OAAOI,IAAI;EACb;EAMAE,MAAMA,CAACF,IAAI,EAAE;IACX,IAAI,CAACA,IAAI,EAAE;MACT;IACF;IAEA,IAAIA,IAAI,CAACG,QAAQ,IAAIH,IAAI,CAACC,IAAI,EAAE;MAC9BD,IAAI,CAACG,QAAQ,CAACF,IAAI,GAAGD,IAAI,CAACC,IAAI;MAC9BD,IAAI,CAACC,IAAI,CAACE,QAAQ,GAAGH,IAAI,CAACG,QAAQ;IACpC,CAAC,MAAM,IAAIH,IAAI,CAACG,QAAQ,EAAE;MAExBH,IAAI,CAACG,QAAQ,CAACF,IAAI,GAAG,IAAI;MACzB,IAAI,CAACN,IAAI,GAAGK,IAAI,CAACG,QAAQ;IAC3B,CAAC,MAAM,IAAIH,IAAI,CAACC,IAAI,EAAE;MAEpBD,IAAI,CAACC,IAAI,CAACE,QAAQ,GAAG,IAAI;MACzB,IAAI,CAACT,IAAI,GAAGM,IAAI,CAACC,IAAI;IACvB,CAAC,MAAM;MAEL,IAAI,CAACP,IAAI,GAAG,IAAI;MAChB,IAAI,CAACC,IAAI,GAAG,IAAI;IAClB;IAEAK,IAAI,CAACC,IAAI,GAAG,IAAI;IAChBD,IAAI,CAACG,QAAQ,GAAG,IAAI;IAEpB,EAAE,IAAI,CAACP,OAAO;EAChB;EAOAQ,MAAMA,CAACJ,IAAI,EAAEK,QAAQ,EAAE;IACrB,IAAIL,IAAI,KAAKK,QAAQ,EAAE;MACrB;IACF;IAGA,IAAI,CAACH,MAAM,CAACG,QAAQ,CAAC;IACrB,IAAI,CAACC,OAAO,CAACN,IAAI,EAAEK,QAAQ,CAAC;EAC9B;EAEAC,OAAOA,CAACN,IAAI,EAAEK,QAAQ,EAAE;IACtB,MAAME,WAAW,GAAGP,IAAI,CAACC,IAAI;IAC7BD,IAAI,CAACC,IAAI,GAAGI,QAAQ;IAGpB,IAAI,IAAI,CAACV,IAAI,KAAKK,IAAI,EAAE;MACtB,IAAI,CAACL,IAAI,GAAGU,QAAQ;IACtB,CAAC,MAAM;MACLE,WAAW,CAACJ,QAAQ,GAAGE,QAAQ;IACjC;IAEAA,QAAQ,CAACJ,IAAI,GAAGM,WAAW;IAC3BF,QAAQ,CAACF,QAAQ,GAAGH,IAAI;IAExB,EAAE,IAAI,CAACJ,OAAO;EAChB;AACF"}
@@ -1,11 +1,10 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import { assert } from '@loaders.gl/loader-utils';
3
2
  export class ManagedArray {
4
3
  constructor() {
5
4
  let length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
6
- _defineProperty(this, "_map", new Map());
7
- _defineProperty(this, "_array", void 0);
8
- _defineProperty(this, "_length", void 0);
5
+ this._map = new Map();
6
+ this._array = void 0;
7
+ this._length = void 0;
9
8
  this._array = new Array(length);
10
9
  this._length = length;
11
10
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-array.js","names":["assert","ManagedArray","constructor","length","arguments","undefined","_map","Map","_array","_length","Array","values","get","index","set","element","has","delete","splice","peek","push","pop","reserve","resize","trim","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 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":"AAGA,SAAQA,MAAM,QAAO,0BAA0B;AAW/C,OAAO,MAAMC,YAAY,CAAC;EAKxBC,WAAWA,CAAA,EAAa;IAAA,IAAZC,MAAM,GAAAC,SAAA,CAAAD,MAAA,QAAAC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;IAAA,KAJtBE,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;IAAA,KAChBC,MAAM;IAAA,KACNC,OAAO;IAGL,IAAI,CAACD,MAAM,GAAG,IAAIE,KAAK,CAACP,MAAM,CAAC;IAC/B,IAAI,CAACM,OAAO,GAAGN,MAAM;EACvB;EASA,IAAIA,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACM,OAAO;EACrB;EAEA,IAAIN,MAAMA,CAACA,MAAM,EAAE;IACjB,IAAI,CAACM,OAAO,GAAGN,MAAM;IACrB,IAAIA,MAAM,GAAG,IAAI,CAACK,MAAM,CAACL,MAAM,EAAE;MAC/B,IAAI,CAACK,MAAM,CAACL,MAAM,GAAGA,MAAM;IAC7B;EACF;EASA,IAAIQ,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACH,MAAM;EACpB;EAOAI,GAAGA,CAACC,KAAK,EAAE;IACTb,MAAM,CAACa,KAAK,GAAG,IAAI,CAACL,MAAM,CAACL,MAAM,CAAC;IAClC,OAAO,IAAI,CAACK,MAAM,CAACK,KAAK,CAAC;EAC3B;EAQAC,GAAGA,CAACD,KAAK,EAAEE,OAAO,EAAE;IAClBf,MAAM,CAACa,KAAK,IAAI,CAAC,CAAC;IAElB,IAAIA,KAAK,IAAI,IAAI,CAACV,MAAM,EAAE;MACxB,IAAI,CAACA,MAAM,GAAGU,KAAK,GAAG,CAAC;IACzB;IAEA,IAAI,IAAI,CAACP,IAAI,CAACU,GAAG,CAAC,IAAI,CAACR,MAAM,CAACK,KAAK,CAAC,CAAC,EAAE;MACrC,IAAI,CAACP,IAAI,CAACW,MAAM,CAAC,IAAI,CAACT,MAAM,CAACK,KAAK,CAAC,CAAC;IACtC;IAEA,IAAI,CAACL,MAAM,CAACK,KAAK,CAAC,GAAGE,OAAO;IAC5B,IAAI,CAACT,IAAI,CAACQ,GAAG,CAACC,OAAO,EAAEF,KAAK,CAAC;EAC/B;EAEAI,MAAMA,CAACF,OAAO,EAAE;IACd,MAAMF,KAAK,GAAG,IAAI,CAACP,IAAI,CAACM,GAAG,CAACG,OAAO,CAAC;IACpC,IAAIF,KAAK,IAAI,CAAC,EAAE;MACd,IAAI,CAACL,MAAM,CAACU,MAAM,CAACL,KAAK,EAAE,CAAC,CAAC;MAC5B,IAAI,CAACP,IAAI,CAACW,MAAM,CAACF,OAAO,CAAC;MACzB,IAAI,CAACZ,MAAM,EAAE;IACf;EACF;EAOAgB,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACX,MAAM,CAAC,IAAI,CAACC,OAAO,GAAG,CAAC,CAAC;EACtC;EAOAW,IAAIA,CAACL,OAAO,EAAE;IACZ,IAAI,CAAC,IAAI,CAACT,IAAI,CAACU,GAAG,CAACD,OAAO,CAAC,EAAE;MAC3B,MAAMF,KAAK,GAAG,IAAI,CAACV,MAAM,EAAE;MAC3B,IAAI,CAACK,MAAM,CAACK,KAAK,CAAC,GAAGE,OAAO;MAC5B,IAAI,CAACT,IAAI,CAACQ,GAAG,CAACC,OAAO,EAAEF,KAAK,CAAC;IAC/B;EACF;EAOAQ,GAAGA,CAAA,EAAG;IACJ,MAAMN,OAAO,GAAG,IAAI,CAACP,MAAM,CAAC,EAAE,IAAI,CAACL,MAAM,CAAC;IAC1C,IAAI,CAACG,IAAI,CAACW,MAAM,CAACF,OAAO,CAAC;IACzB,OAAOA,OAAO;EAChB;EAOAO,OAAOA,CAACnB,MAAM,EAAE;IACdH,MAAM,CAACG,MAAM,IAAI,CAAC,CAAC;IAEnB,IAAIA,MAAM,GAAG,IAAI,CAACK,MAAM,CAACL,MAAM,EAAE;MAC/B,IAAI,CAACK,MAAM,CAACL,MAAM,GAAGA,MAAM;IAC7B;EACF;EAOAoB,MAAMA,CAACpB,MAAM,EAAE;IACbH,MAAM,CAACG,MAAM,IAAI,CAAC,CAAC;IAEnB,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAOAqB,IAAIA,CAACrB,MAAM,EAAE;IACX,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKE,SAAS,EAAE;MAC3CF,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB;IACA,IAAI,CAACK,MAAM,CAACL,MAAM,GAAGA,MAAM;EAC7B;EAEAsB,KAAKA,CAAA,EAAG;IACN,IAAI,CAACjB,MAAM,GAAG,EAAE;IAChB,IAAI,CAACF,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;IACrB,IAAI,CAACE,OAAO,GAAG,CAAC;EAClB;EAEAiB,IAAIA,CAACC,MAAM,EAAE;IACX,OAAO,IAAI,CAACrB,IAAI,CAACU,GAAG,CAACW,MAAM,CAAC;EAC9B;AACF"}
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@loaders.gl/tiles",
3
- "version": "4.0.0-beta.2",
3
+ "version": "4.0.0-beta.4",
4
4
  "description": "Common components for different tiles loaders.",
5
5
  "license": "MIT",
6
+ "type": "module",
6
7
  "publishConfig": {
7
8
  "access": "public"
8
9
  },
@@ -20,8 +21,15 @@
20
21
  "pointcloud"
21
22
  ],
22
23
  "types": "dist/index.d.ts",
23
- "main": "dist/es5/index.js",
24
- "module": "dist/esm/index.js",
24
+ "main": "dist/index.cjs",
25
+ "module": "dist/index.js",
26
+ "exports": {
27
+ ".": {
28
+ "import": "./dist/index.js",
29
+ "require": "./dist/index.cjs",
30
+ "types": "./dist/index.d.ts"
31
+ }
32
+ },
25
33
  "sideEffects": false,
26
34
  "files": [
27
35
  "src",
@@ -29,23 +37,23 @@
29
37
  "README.md"
30
38
  ],
31
39
  "scripts": {
32
- "pre-build": "npm run build-bundle",
33
- "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
40
+ "pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev",
41
+ "build-bundle": "ocular-bundle ./src/index.ts"
34
42
  },
35
43
  "dependencies": {
36
- "@loaders.gl/loader-utils": "4.0.0-beta.2",
37
- "@loaders.gl/math": "4.0.0-beta.2",
38
- "@math.gl/core": "^3.5.1",
39
- "@math.gl/culling": "^3.5.1",
40
- "@math.gl/geospatial": "^3.5.1",
41
- "@math.gl/web-mercator": "^3.5.1",
44
+ "@loaders.gl/loader-utils": "4.0.0-beta.4",
45
+ "@loaders.gl/math": "4.0.0-beta.4",
46
+ "@math.gl/core": "^4.0.0",
47
+ "@math.gl/culling": "^4.0.0",
48
+ "@math.gl/geospatial": "^4.0.0",
49
+ "@math.gl/web-mercator": "^4.0.0",
42
50
  "@probe.gl/stats": "^4.0.2"
43
51
  },
44
52
  "peerDependencies": {
45
- "@loaders.gl/core": "^4.0.0-alpha.8"
53
+ "@loaders.gl/core": "4.0.0-beta.3"
46
54
  },
47
55
  "devDependencies": {
48
56
  "@deck.gl/core": "^8.9.0"
49
57
  },
50
- "gitHead": "79c2033f755e88e11bc30a04428e3666b177b8fc"
58
+ "gitHead": "848c20b474532d301f2c3f8d4e1fb9bf262b86d4"
51
59
  }
@@ -18,6 +18,10 @@ const scratchPoint = new Vector3();
18
18
  const scratchScale = new Vector3();
19
19
  const scratchNorthWest = new Vector3();
20
20
  const scratchSouthEast = new Vector3();
21
+ const scratchCenter = new Vector3();
22
+ const scratchXAxis = new Vector3();
23
+ const scratchYAxis = new Vector3();
24
+ const scratchZAxis = new Vector3();
21
25
  // const scratchRectangle = new Rectangle();
22
26
  // const scratchOrientedBoundingBox = new OrientedBoundingBox();
23
27
  // const scratchTransform = new Matrix4();
@@ -29,7 +33,7 @@ const scratchSouthEast = new Vector3();
29
33
  * @param [result] The object onto which to store the result.
30
34
  * @returns The modified result parameter or a new TileBoundingVolume instance if none was provided.
31
35
  */
32
- export function createBoundingVolume(boundingVolumeHeader, transform, result) {
36
+ export function createBoundingVolume(boundingVolumeHeader, transform, result?) {
33
37
  assert(boundingVolumeHeader, '3D Tile: boundingVolume must be defined');
34
38
 
35
39
  // boundingVolume schema:
@@ -38,28 +42,7 @@ export function createBoundingVolume(boundingVolumeHeader, transform, result) {
38
42
  return createBox(boundingVolumeHeader.box, transform, result);
39
43
  }
40
44
  if (boundingVolumeHeader.region) {
41
- // [west, south, east, north, minimum height, maximum height]
42
- // Latitudes and longitudes are in the WGS 84 datum as defined in EPSG 4979 and are in radians.
43
- // Heights are in meters above (or below) the WGS 84 ellipsoid.
44
- const [west, south, east, north, minHeight, maxHeight] = boundingVolumeHeader.region;
45
-
46
- const northWest = Ellipsoid.WGS84.cartographicToCartesian(
47
- [degrees(west), degrees(north), minHeight],
48
- scratchNorthWest
49
- );
50
- const southEast = Ellipsoid.WGS84.cartographicToCartesian(
51
- [degrees(east), degrees(south), maxHeight],
52
- scratchSouthEast
53
- );
54
- const centerInCartesian = new Vector3().addVectors(northWest, southEast).multiplyScalar(0.5);
55
- const radius = new Vector3().subVectors(northWest, southEast).len() / 2.0;
56
-
57
- // TODO improve region boundingVolume
58
- // for now, create a sphere as the boundingVolume instead of box
59
- return createSphere(
60
- [centerInCartesian[0], centerInCartesian[1], centerInCartesian[2], radius],
61
- new Matrix4()
62
- );
45
+ return createObbFromRegion(boundingVolumeHeader.region);
63
46
  }
64
47
 
65
48
  if (boundingVolumeHeader.sphere) {
@@ -106,7 +89,7 @@ export function getCartographicBounds(
106
89
  throw new Error('Unkown boundingVolume type');
107
90
  }
108
91
 
109
- function createBox(box, transform, result) {
92
+ function createBox(box, transform, result?) {
110
93
  // https://math.gl/modules/culling/docs/api-reference/oriented-bounding-box
111
94
  // 1. A half-axes based representation.
112
95
  // box: An array of 12 numbers that define an oriented bounding box.
@@ -236,6 +219,52 @@ function createSphere(sphere, transform, result?) {
236
219
  return new BoundingSphere(center, radius);
237
220
  }
238
221
 
222
+ /**
223
+ * Create OrientedBoundingBox instance from region 3D tiles bounding volume
224
+ * @param region - region 3D tiles bounding volume
225
+ * @returns OrientedBoundingBox instance
226
+ */
227
+ function createObbFromRegion(region: number[]): OrientedBoundingBox {
228
+ // [west, south, east, north, minimum height, maximum height]
229
+ // Latitudes and longitudes are in the WGS 84 datum as defined in EPSG 4979 and are in radians.
230
+ // Heights are in meters above (or below) the WGS 84 ellipsoid.
231
+ const [west, south, east, north, minHeight, maxHeight] = region;
232
+
233
+ const northWest = Ellipsoid.WGS84.cartographicToCartesian(
234
+ [degrees(west), degrees(north), minHeight],
235
+ scratchNorthWest
236
+ );
237
+ const southEast = Ellipsoid.WGS84.cartographicToCartesian(
238
+ [degrees(east), degrees(south), maxHeight],
239
+ scratchSouthEast
240
+ );
241
+ const centerInCartesian = new Vector3().addVectors(northWest, southEast).multiplyByScalar(0.5);
242
+ Ellipsoid.WGS84.cartesianToCartographic(centerInCartesian, scratchCenter);
243
+
244
+ Ellipsoid.WGS84.cartographicToCartesian(
245
+ [degrees(east), scratchCenter[1], scratchCenter[2]],
246
+ scratchXAxis
247
+ );
248
+ Ellipsoid.WGS84.cartographicToCartesian(
249
+ [scratchCenter[0], degrees(north), scratchCenter[2]],
250
+ scratchYAxis
251
+ );
252
+ Ellipsoid.WGS84.cartographicToCartesian(
253
+ [scratchCenter[0], scratchCenter[1], maxHeight],
254
+ scratchZAxis
255
+ );
256
+
257
+ return createBox(
258
+ [
259
+ ...centerInCartesian,
260
+ ...scratchXAxis.subtract(centerInCartesian),
261
+ ...scratchYAxis.subtract(centerInCartesian),
262
+ ...scratchZAxis.subtract(centerInCartesian)
263
+ ],
264
+ new Matrix4()
265
+ );
266
+ }
267
+
239
268
  /**
240
269
  * Convert a bounding volume defined by OrientedBoundingBox to cartographic bounds
241
270
  * @returns {CartographicBounds}
@@ -71,14 +71,14 @@ export function getZoomFromFullExtent(
71
71
  cartorgraphicCenter: Vector3,
72
72
  cartesianCenter: Vector3
73
73
  ) {
74
- const extentVertex = Ellipsoid.WGS84.cartographicToCartesian(
74
+ Ellipsoid.WGS84.cartographicToCartesian(
75
75
  [fullExtent.xmax, fullExtent.ymax, fullExtent.zmax],
76
- new Vector3()
76
+ scratchVector
77
77
  );
78
78
  const extentSize = Math.sqrt(
79
- Math.pow(extentVertex[0] - cartesianCenter[0], 2) +
80
- Math.pow(extentVertex[1] - cartesianCenter[1], 2) +
81
- Math.pow(extentVertex[2] - cartesianCenter[2], 2)
79
+ Math.pow(scratchVector[0] - cartesianCenter[0], 2) +
80
+ Math.pow(scratchVector[1] - cartesianCenter[1], 2) +
81
+ Math.pow(scratchVector[2] - cartesianCenter[2], 2)
82
82
  );
83
83
  return Math.log2(WGS84_RADIUS_Z / (extentSize + cartorgraphicCenter[2]));
84
84
  }
@@ -102,7 +102,7 @@ export class Tile3D {
102
102
  private _expireDate: any = null;
103
103
  private _expiredContent: any = null;
104
104
 
105
- private _boundingBox?: CartographicBounds;
105
+ private _boundingBox?: CartographicBounds = undefined;
106
106
 
107
107
  /** updated every frame for tree traversal and rendering optimizations: */
108
108
  public _distanceToCamera: number = 0;
@@ -604,10 +604,8 @@ export class Tileset3D {
604
604
  ymin + (ymax - ymin) / 2,
605
605
  zmin + (zmax - zmin) / 2
606
606
  );
607
- this.cartesianCenter = Ellipsoid.WGS84.cartographicToCartesian(
608
- this.cartographicCenter,
609
- new Vector3()
610
- );
607
+ this.cartesianCenter = new Vector3();
608
+ Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, this.cartesianCenter);
611
609
  this.zoom = getZoomFromFullExtent(fullExtent, this.cartographicCenter, this.cartesianCenter);
612
610
  return;
613
611
  }
@@ -616,10 +614,8 @@ export class Tileset3D {
616
614
  if (extent) {
617
615
  const [xmin, ymin, xmax, ymax] = extent;
618
616
  this.cartographicCenter = new Vector3(xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2, 0);
619
- this.cartesianCenter = Ellipsoid.WGS84.cartographicToCartesian(
620
- this.cartographicCenter,
621
- new Vector3()
622
- );
617
+ this.cartesianCenter = new Vector3();
618
+ Ellipsoid.WGS84.cartographicToCartesian(this.cartographicCenter, this.cartesianCenter);
623
619
  this.zoom = getZoomFromExtent(extent, this.cartographicCenter, this.cartesianCenter);
624
620
  return;
625
621
  }
@@ -650,7 +646,8 @@ export class Tileset3D {
650
646
 
651
647
  // cartographic coordinates are undefined at the center of the ellipsoid
652
648
  if (center[0] !== 0 || center[1] !== 0 || center[2] !== 0) {
653
- this.cartographicCenter = Ellipsoid.WGS84.cartesianToCartographic(center, new Vector3());
649
+ this.cartographicCenter = new Vector3();
650
+ Ellipsoid.WGS84.cartesianToCartographic(center, this.cartographicCenter);
654
651
  } else {
655
652
  this.cartographicCenter = new Vector3(0, 0, -Ellipsoid.WGS84.radii[0]);
656
653
  }
package/dist/bundle.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare const moduleExports: any;
2
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}