@loaders.gl/tiles 4.4.0-alpha.2 → 4.4.0
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/README.md +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -0
- package/dist/dist.dev.js +89 -6
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +75 -5
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +1 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js +1 -0
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/tileset/format-i3s/i3s-tile-manager.js +1 -0
- package/dist/tileset/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js +1 -0
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js +1 -0
- package/dist/tileset/helpers/3d-tiles-options.js.map +1 -0
- package/dist/tileset/helpers/bounding-volume.js +1 -0
- package/dist/tileset/helpers/bounding-volume.js.map +1 -0
- package/dist/tileset/helpers/frame-state.js +1 -0
- package/dist/tileset/helpers/frame-state.js.map +1 -0
- package/dist/tileset/helpers/i3s-lod.js +1 -0
- package/dist/tileset/helpers/i3s-lod.js.map +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js +1 -0
- package/dist/tileset/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/tileset/helpers/transform-utils.d.ts +2 -1
- package/dist/tileset/helpers/transform-utils.d.ts.map +1 -1
- package/dist/tileset/helpers/transform-utils.js +35 -0
- package/dist/tileset/helpers/transform-utils.js.map +1 -0
- package/dist/tileset/helpers/zoom.js +1 -0
- package/dist/tileset/helpers/zoom.js.map +1 -0
- package/dist/tileset/tile-3d.d.ts +7 -0
- package/dist/tileset/tile-3d.d.ts.map +1 -1
- package/dist/tileset/tile-3d.js +12 -3
- package/dist/tileset/tile-3d.js.map +1 -0
- package/dist/tileset/tileset-3d.d.ts +5 -0
- package/dist/tileset/tileset-3d.d.ts.map +1 -1
- package/dist/tileset/tileset-3d.js +50 -5
- package/dist/tileset/tileset-3d.js.map +1 -0
- package/dist/tileset/tileset-cache.js +1 -0
- package/dist/tileset/tileset-cache.js.map +1 -0
- package/dist/tileset/tileset-traverser.js +2 -1
- package/dist/tileset/tileset-traverser.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/doubly-linked-list-node.js +1 -0
- package/dist/utils/doubly-linked-list-node.js.map +1 -0
- package/dist/utils/doubly-linked-list.js +1 -0
- package/dist/utils/doubly-linked-list.js.map +1 -0
- package/dist/utils/managed-array.js +1 -0
- package/dist/utils/managed-array.js.map +1 -0
- package/package.json +5 -5
- package/src/tileset/helpers/transform-utils.ts +41 -1
- package/src/tileset/tile-3d.ts +13 -3
- package/src/tileset/tileset-3d.ts +55 -5
- package/src/tileset/tileset-traverser.ts +1 -1
package/README.md
CHANGED
package/dist/constants.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAUpC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,CAAC,EAAE,2BAA2B;IACxC,OAAO,EAAE,CAAC,EAAE,kCAAkC;IAC9C,UAAU,EAAE,CAAC,EAAE,8IAA8I;IAC7J,KAAK,EAAE,CAAC,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,EAAE,8DAA8D;IAC1E,MAAM,EAAE,CAAC,CAAC,kBAAkB;CAC7B,CAAC;AAIF,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,mDAAO,CAAA;IACP,2DAAW,CAAA,CAAC,qFAAqF;AACnG,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAID,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;IACzB,0BAAa,CAAA;AACf,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAID,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,mCAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAID,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,qDAAkC,CAAA;IAClC,8DAA2C,CAAA;AAC7C,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAKD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,YAAY,EAAE,CAAC,CAAC;IAChB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,CAAC;CACrB,CAAC"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -4981,6 +4981,20 @@ var __exports__ = (() => {
|
|
|
4981
4981
|
this.stats.get(STAT_QUEUED_REQUESTS_EVER);
|
|
4982
4982
|
this.stats.get(STAT_ACTIVE_REQUESTS_EVER);
|
|
4983
4983
|
}
|
|
4984
|
+
/**
|
|
4985
|
+
* Update scheduler props. Preserves active and queued requests.
|
|
4986
|
+
*/
|
|
4987
|
+
setProps(props) {
|
|
4988
|
+
if (props.throttleRequests !== void 0) {
|
|
4989
|
+
this.props.throttleRequests = props.throttleRequests;
|
|
4990
|
+
}
|
|
4991
|
+
if (props.maxRequests !== void 0) {
|
|
4992
|
+
this.props.maxRequests = props.maxRequests;
|
|
4993
|
+
}
|
|
4994
|
+
if (props.debounceTime !== void 0) {
|
|
4995
|
+
this.props.debounceTime = props.debounceTime;
|
|
4996
|
+
}
|
|
4997
|
+
}
|
|
4984
4998
|
/**
|
|
4985
4999
|
* Called by an application that wants to issue a request, without having it deeply queued by the browser
|
|
4986
5000
|
*
|
|
@@ -5100,7 +5114,7 @@ var __exports__ = (() => {
|
|
|
5100
5114
|
// ../loader-utils/src/lib/path-utils/path.ts
|
|
5101
5115
|
function filename(url) {
|
|
5102
5116
|
const slashIndex = url ? url.lastIndexOf("/") : -1;
|
|
5103
|
-
return slashIndex >= 0 ? url.substr(slashIndex + 1) :
|
|
5117
|
+
return slashIndex >= 0 ? url.substr(slashIndex + 1) : url;
|
|
5104
5118
|
}
|
|
5105
5119
|
function dirname(url) {
|
|
5106
5120
|
const slashIndex = url ? url.lastIndexOf("/") : -1;
|
|
@@ -5407,10 +5421,33 @@ var __exports__ = (() => {
|
|
|
5407
5421
|
const toFixedFrameMatrix = fromFixedFrameMatrix.invert();
|
|
5408
5422
|
tile.cartographicModelMatrix = toFixedFrameMatrix.multiplyRight(modelMatrix);
|
|
5409
5423
|
tile.cartographicOrigin = cartographicOrigin;
|
|
5424
|
+
const rootNode = _getRootNode(tile);
|
|
5425
|
+
if (rootNode) {
|
|
5426
|
+
tile.cartesianModelMatrix = new Matrix4(modelMatrix).multiplyRight(rootNode.matrix);
|
|
5427
|
+
tile.cartographicModelMatrix.multiplyRight(rootNode.matrix);
|
|
5428
|
+
rootNode.matrix = Matrix4.IDENTITY;
|
|
5429
|
+
}
|
|
5410
5430
|
if (!tile.coordinateSystem) {
|
|
5411
5431
|
tile.modelMatrix = tile.cartographicModelMatrix;
|
|
5412
5432
|
}
|
|
5413
5433
|
}
|
|
5434
|
+
var TRANSLATION_LIMIT_SQUARED = 1e6 ** 2;
|
|
5435
|
+
function _getRootNode(tile) {
|
|
5436
|
+
const gltf = tile.gltf;
|
|
5437
|
+
if (!gltf) {
|
|
5438
|
+
return null;
|
|
5439
|
+
}
|
|
5440
|
+
const sceneIndex = typeof gltf.scene === "number" ? gltf.scene : 0;
|
|
5441
|
+
const scene = gltf.scenes?.[sceneIndex];
|
|
5442
|
+
const rootNode = scene?.nodes?.[0];
|
|
5443
|
+
if (!rootNode?.matrix)
|
|
5444
|
+
return null;
|
|
5445
|
+
const m = rootNode.matrix;
|
|
5446
|
+
const translationMagnitude = m[12] * m[12] + m[13] * m[13] + m[14] * m[14];
|
|
5447
|
+
if (translationMagnitude <= TRANSLATION_LIMIT_SQUARED)
|
|
5448
|
+
return null;
|
|
5449
|
+
return rootNode;
|
|
5450
|
+
}
|
|
5414
5451
|
|
|
5415
5452
|
// ../../node_modules/@math.gl/culling/dist/constants.js
|
|
5416
5453
|
var INTERSECTION = {
|
|
@@ -6833,7 +6870,7 @@ var __exports__ = (() => {
|
|
|
6833
6870
|
}
|
|
6834
6871
|
}
|
|
6835
6872
|
}
|
|
6836
|
-
return allDescendantsLoaded;
|
|
6873
|
+
return root.hasEmptyContent || allDescendantsLoaded;
|
|
6837
6874
|
}
|
|
6838
6875
|
};
|
|
6839
6876
|
|
|
@@ -6907,6 +6944,13 @@ var __exports__ = (() => {
|
|
|
6907
6944
|
_inRequestVolume = false;
|
|
6908
6945
|
_lodJudge = null;
|
|
6909
6946
|
// TODO i3s specific, needs to remove
|
|
6947
|
+
/**
|
|
6948
|
+
* Indicates whether the tile has been drawn by the renderer.
|
|
6949
|
+
* Defaults to true for backwards compatibility — renderers that support
|
|
6950
|
+
* transition hold (e.g. deck.gl 9.3+) should set this to false on tile load,
|
|
6951
|
+
* then back to true after first draw to avoid flashes (see deck.gl #7914).
|
|
6952
|
+
*/
|
|
6953
|
+
tileDrawn = true;
|
|
6910
6954
|
/**
|
|
6911
6955
|
* @constructs
|
|
6912
6956
|
* Create a Tile3D instance
|
|
@@ -7093,14 +7137,15 @@ var __exports__ = (() => {
|
|
|
7093
7137
|
try {
|
|
7094
7138
|
const contentUrl = this.tileset.getTileUrl(this.contentUrl);
|
|
7095
7139
|
const loader = this.tileset.loader;
|
|
7140
|
+
const tilesetLoaderOptions = this.tileset.loadOptions[loader.id] || {};
|
|
7096
7141
|
const options = {
|
|
7097
7142
|
...this.tileset.loadOptions,
|
|
7098
7143
|
[loader.id]: {
|
|
7099
|
-
|
|
7100
|
-
...this.tileset.loadOptions[loader.id],
|
|
7144
|
+
...tilesetLoaderOptions,
|
|
7101
7145
|
isTileset: this.type === "json",
|
|
7102
7146
|
...this._getLoaderSpecificOptions(loader.id)
|
|
7103
7147
|
}
|
|
7148
|
+
// TODO add typecheck - as const satisfies ...
|
|
7104
7149
|
};
|
|
7105
7150
|
this.content = await (0, import_core21.load)(contentUrl, loader, options);
|
|
7106
7151
|
if (this.tileset.options.contentLoader) {
|
|
@@ -7130,6 +7175,7 @@ var __exports__ = (() => {
|
|
|
7130
7175
|
}
|
|
7131
7176
|
this.header.content = null;
|
|
7132
7177
|
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
7178
|
+
this.tileDrawn = true;
|
|
7133
7179
|
return true;
|
|
7134
7180
|
}
|
|
7135
7181
|
/**
|
|
@@ -7623,6 +7669,8 @@ var __exports__ = (() => {
|
|
|
7623
7669
|
onTileError: () => {
|
|
7624
7670
|
},
|
|
7625
7671
|
onTraversalComplete: (selectedTiles) => selectedTiles,
|
|
7672
|
+
onUpdate: () => {
|
|
7673
|
+
},
|
|
7626
7674
|
contentLoader: void 0,
|
|
7627
7675
|
viewDistanceScale: 1,
|
|
7628
7676
|
maximumScreenSpaceError: 8,
|
|
@@ -7716,6 +7764,8 @@ var __exports__ = (() => {
|
|
|
7716
7764
|
_traverser;
|
|
7717
7765
|
_cache = new TilesetCache();
|
|
7718
7766
|
_requestScheduler;
|
|
7767
|
+
/** Tile IDs held visible during transitions until replacements have drawn */
|
|
7768
|
+
_heldTiles = /* @__PURE__ */ new Set();
|
|
7719
7769
|
// Promise tracking
|
|
7720
7770
|
updatePromise = null;
|
|
7721
7771
|
tilesetInitializationPromise;
|
|
@@ -7928,6 +7978,7 @@ var __exports__ = (() => {
|
|
|
7928
7978
|
* Update tiles relying on data from all traversers
|
|
7929
7979
|
*/
|
|
7930
7980
|
_updateTiles() {
|
|
7981
|
+
const previousSelectedTiles = this.selectedTiles;
|
|
7931
7982
|
this.selectedTiles = [];
|
|
7932
7983
|
this._requestedTiles = [];
|
|
7933
7984
|
this._emptyTiles = [];
|
|
@@ -7938,12 +7989,42 @@ var __exports__ = (() => {
|
|
|
7938
7989
|
this._emptyTiles = this._emptyTiles.concat(frameStateDataValue._emptyTiles);
|
|
7939
7990
|
}
|
|
7940
7991
|
this.selectedTiles = this.options.onTraversalComplete(this.selectedTiles);
|
|
7992
|
+
const selectedIds = new Set(this.selectedTiles.map((t) => t.id));
|
|
7993
|
+
const hasUndrawnTiles = this.selectedTiles.some((t) => !t.tileDrawn);
|
|
7994
|
+
let heldBackCount = 0;
|
|
7995
|
+
if (hasUndrawnTiles) {
|
|
7996
|
+
for (const tileId of selectedIds) {
|
|
7997
|
+
this._heldTiles.add(tileId);
|
|
7998
|
+
}
|
|
7999
|
+
for (const tileId of this._heldTiles) {
|
|
8000
|
+
if (selectedIds.has(tileId))
|
|
8001
|
+
continue;
|
|
8002
|
+
const tile = this._tiles[tileId];
|
|
8003
|
+
if (tile && tile.contentAvailable) {
|
|
8004
|
+
tile._selectedFrame = this._frameNumber;
|
|
8005
|
+
this.selectedTiles.push(tile);
|
|
8006
|
+
heldBackCount++;
|
|
8007
|
+
} else {
|
|
8008
|
+
this._heldTiles.delete(tileId);
|
|
8009
|
+
}
|
|
8010
|
+
}
|
|
8011
|
+
} else {
|
|
8012
|
+
this._heldTiles = selectedIds;
|
|
8013
|
+
}
|
|
8014
|
+
if (heldBackCount > 0) {
|
|
8015
|
+
setTimeout(() => {
|
|
8016
|
+
this.selectTiles();
|
|
8017
|
+
}, 0);
|
|
8018
|
+
}
|
|
7941
8019
|
for (const tile of this.selectedTiles) {
|
|
7942
8020
|
this._tiles[tile.id] = tile;
|
|
7943
8021
|
}
|
|
7944
8022
|
this._loadTiles();
|
|
7945
8023
|
this._unloadTiles();
|
|
7946
8024
|
this._updateStats();
|
|
8025
|
+
if (this._tilesChanged(previousSelectedTiles, this.selectedTiles)) {
|
|
8026
|
+
this.options.onUpdate();
|
|
8027
|
+
}
|
|
7947
8028
|
}
|
|
7948
8029
|
_tilesChanged(oldSelectedTiles, selectedTiles) {
|
|
7949
8030
|
if (oldSelectedTiles.length !== selectedTiles.length) {
|
|
@@ -7956,6 +8037,7 @@ var __exports__ = (() => {
|
|
|
7956
8037
|
return changed;
|
|
7957
8038
|
}
|
|
7958
8039
|
_loadTiles() {
|
|
8040
|
+
this._requestedTiles.sort((a, b) => a._priority - b._priority);
|
|
7959
8041
|
for (const tile of this._requestedTiles) {
|
|
7960
8042
|
if (tile.contentUnloaded) {
|
|
7961
8043
|
this._loadTile(tile);
|
|
@@ -8277,8 +8359,9 @@ var __exports__ = (() => {
|
|
|
8277
8359
|
this.extras = tilesetJson.extras;
|
|
8278
8360
|
}
|
|
8279
8361
|
_initializeI3STileset() {
|
|
8280
|
-
|
|
8281
|
-
|
|
8362
|
+
const i3sOptions = this.loadOptions.i3s;
|
|
8363
|
+
if (i3sOptions && typeof i3sOptions === "object" && "token" in i3sOptions) {
|
|
8364
|
+
this._queryParams.token = i3sOptions.token;
|
|
8282
8365
|
}
|
|
8283
8366
|
}
|
|
8284
8367
|
};
|