@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.
- package/dist/constants.js.map +1 -0
- package/dist/dist.dev.js +7777 -0
- package/dist/index.cjs +2537 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/{esm/tileset → tileset}/format-3d-tiles/tileset-3d-traverser.js +2 -2
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/{esm/tileset → tileset}/format-i3s/i3s-pending-tiles-register.js +1 -2
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/{esm/tileset → tileset}/format-i3s/i3s-tile-manager.js +3 -4
- package/dist/tileset/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/{esm/tileset → tileset}/format-i3s/i3s-tileset-traverser.js +7 -8
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js.map +1 -0
- package/dist/tileset/helpers/bounding-volume.d.ts +1 -1
- package/dist/tileset/helpers/bounding-volume.d.ts.map +1 -1
- package/dist/{esm/tileset → tileset}/helpers/bounding-volume.js +16 -6
- package/dist/tileset/helpers/bounding-volume.js.map +1 -0
- package/dist/tileset/helpers/frame-state.js.map +1 -0
- package/dist/tileset/helpers/i3s-lod.js.map +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/tileset/helpers/transform-utils.js.map +1 -0
- package/dist/{esm/tileset → tileset}/helpers/zoom.js +2 -2
- package/dist/tileset/helpers/zoom.js.map +1 -0
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/{esm/tileset → tileset}/tile-3d.js +55 -56
- package/dist/tileset/tile-3d.js.map +1 -0
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/{esm/tileset → tileset}/tileset-3d.js +64 -62
- package/dist/tileset/tileset-3d.js.map +1 -0
- package/dist/{esm/tileset → tileset}/tileset-cache.js +4 -5
- package/dist/tileset/tileset-cache.js.map +1 -0
- package/dist/{esm/tileset → tileset}/tileset-traverser.js +12 -13
- package/dist/tileset/tileset-traverser.js.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/doubly-linked-list-node.js +11 -0
- package/dist/utils/doubly-linked-list-node.js.map +1 -0
- package/dist/{esm/utils → utils}/doubly-linked-list.js +4 -5
- package/dist/utils/doubly-linked-list.js.map +1 -0
- package/dist/{esm/utils → utils}/managed-array.js +3 -4
- package/dist/utils/managed-array.js.map +1 -0
- package/package.json +21 -13
- package/src/tileset/helpers/bounding-volume.ts +53 -24
- package/src/tileset/helpers/zoom.ts +5 -5
- package/src/tileset/tile-3d.ts +1 -1
- package/src/tileset/tileset-3d.ts +6 -9
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/dist.min.js +0 -9231
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/constants.js +0 -48
- package/dist/es5/constants.js.map +0 -1
- package/dist/es5/index.js +0 -93
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -70
- package/dist/es5/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js +0 -45
- package/dist/es5/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js +0 -84
- package/dist/es5/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js +0 -143
- package/dist/es5/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
- package/dist/es5/tileset/helpers/3d-tiles-options.js +0 -12
- package/dist/es5/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/es5/tileset/helpers/bounding-volume.js +0 -176
- package/dist/es5/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/es5/tileset/helpers/frame-state.js +0 -129
- package/dist/es5/tileset/helpers/frame-state.js.map +0 -1
- package/dist/es5/tileset/helpers/i3s-lod.js +0 -60
- package/dist/es5/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/es5/tileset/helpers/tiles-3d-lod.js +0 -103
- package/dist/es5/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/es5/tileset/helpers/transform-utils.js +0 -50
- package/dist/es5/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/es5/tileset/helpers/zoom.js +0 -63
- package/dist/es5/tileset/helpers/zoom.js.map +0 -1
- package/dist/es5/tileset/tile-3d.js +0 -536
- package/dist/es5/tileset/tile-3d.js.map +0 -1
- package/dist/es5/tileset/tileset-3d.js +0 -859
- package/dist/es5/tileset/tileset-3d.js.map +0 -1
- package/dist/es5/tileset/tileset-cache.js +0 -82
- package/dist/es5/tileset/tileset-cache.js.map +0 -1
- package/dist/es5/tileset/tileset-traverser.js +0 -321
- package/dist/es5/tileset/tileset-traverser.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/es5/utils/doubly-linked-list-node.js +0 -21
- package/dist/es5/utils/doubly-linked-list-node.js.map +0 -1
- package/dist/es5/utils/doubly-linked-list.js +0 -88
- package/dist/es5/utils/doubly-linked-list.js.map +0 -1
- package/dist/es5/utils/managed-array.js +0 -126
- package/dist/es5/utils/managed-array.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/index.js +0 -10
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
- package/dist/esm/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
- package/dist/esm/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
- package/dist/esm/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
- package/dist/esm/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/esm/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/esm/tileset/helpers/frame-state.js.map +0 -1
- package/dist/esm/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/esm/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/esm/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/esm/tileset/helpers/zoom.js.map +0 -1
- package/dist/esm/tileset/tile-3d.js.map +0 -1
- package/dist/esm/tileset/tileset-3d.js.map +0 -1
- package/dist/esm/tileset/tileset-cache.js.map +0 -1
- package/dist/esm/tileset/tileset-traverser.js.map +0 -1
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/utils/doubly-linked-list-node.js +0 -12
- package/dist/esm/utils/doubly-linked-list-node.js.map +0 -1
- package/dist/esm/utils/doubly-linked-list.js.map +0 -1
- package/dist/esm/utils/managed-array.js.map +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{esm/constants.js → constants.js} +0 -0
- /package/dist/{esm/tileset → tileset}/helpers/3d-tiles-options.js +0 -0
- /package/dist/{esm/tileset → tileset}/helpers/frame-state.js +0 -0
- /package/dist/{esm/tileset → tileset}/helpers/i3s-lod.js +0 -0
- /package/dist/{esm/tileset → tileset}/helpers/tiles-3d-lod.js +0 -0
- /package/dist/{esm/tileset → tileset}/helpers/transform-utils.js +0 -0
- /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
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/tiles",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
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/
|
|
24
|
-
"module": "dist/
|
|
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": "
|
|
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.
|
|
37
|
-
"@loaders.gl/math": "4.0.0-beta.
|
|
38
|
-
"@math.gl/core": "^
|
|
39
|
-
"@math.gl/culling": "^
|
|
40
|
-
"@math.gl/geospatial": "^
|
|
41
|
-
"@math.gl/web-mercator": "^
|
|
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": "
|
|
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": "
|
|
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
|
-
|
|
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
|
-
|
|
74
|
+
Ellipsoid.WGS84.cartographicToCartesian(
|
|
75
75
|
[fullExtent.xmax, fullExtent.ymax, fullExtent.zmax],
|
|
76
|
-
|
|
76
|
+
scratchVector
|
|
77
77
|
);
|
|
78
78
|
const extentSize = Math.sqrt(
|
|
79
|
-
Math.pow(
|
|
80
|
-
Math.pow(
|
|
81
|
-
Math.pow(
|
|
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
|
}
|
package/src/tileset/tile-3d.ts
CHANGED
|
@@ -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 =
|
|
608
|
-
|
|
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 =
|
|
620
|
-
|
|
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 =
|
|
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
package/dist/bundle.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
|