@loaders.gl/tiles 4.4.0-alpha.13 → 4.4.0-alpha.15
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/dist.dev.js +43 -0
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +43 -0
- package/dist/index.cjs.map +2 -2
- 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 +8 -0
- package/dist/tileset/tile-3d.js.map +1 -1
- 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 +45 -0
- package/dist/tileset/tileset-3d.js.map +1 -1
- package/package.json +5 -5
- package/src/tileset/tile-3d.ts +9 -0
- package/src/tileset/tileset-3d.ts +51 -0
package/dist/index.cjs
CHANGED
|
@@ -1169,6 +1169,13 @@ var Tile3D = class {
|
|
|
1169
1169
|
_inRequestVolume = false;
|
|
1170
1170
|
_lodJudge = null;
|
|
1171
1171
|
// TODO i3s specific, needs to remove
|
|
1172
|
+
/**
|
|
1173
|
+
* Indicates whether the tile has been drawn by the renderer.
|
|
1174
|
+
* Defaults to true for backwards compatibility — renderers that support
|
|
1175
|
+
* transition hold (e.g. deck.gl 9.3+) should set this to false on tile load,
|
|
1176
|
+
* then back to true after first draw to avoid flashes (see deck.gl #7914).
|
|
1177
|
+
*/
|
|
1178
|
+
tileDrawn = true;
|
|
1172
1179
|
/**
|
|
1173
1180
|
* @constructs
|
|
1174
1181
|
* Create a Tile3D instance
|
|
@@ -1388,6 +1395,7 @@ var Tile3D = class {
|
|
|
1388
1395
|
}
|
|
1389
1396
|
this.header.content = null;
|
|
1390
1397
|
this.contentState = TILE_CONTENT_STATE.UNLOADED;
|
|
1398
|
+
this.tileDrawn = true;
|
|
1391
1399
|
return true;
|
|
1392
1400
|
}
|
|
1393
1401
|
/**
|
|
@@ -1848,6 +1856,8 @@ var DEFAULT_PROPS2 = {
|
|
|
1848
1856
|
onTileError: () => {
|
|
1849
1857
|
},
|
|
1850
1858
|
onTraversalComplete: (selectedTiles) => selectedTiles,
|
|
1859
|
+
onUpdate: () => {
|
|
1860
|
+
},
|
|
1851
1861
|
contentLoader: void 0,
|
|
1852
1862
|
viewDistanceScale: 1,
|
|
1853
1863
|
maximumScreenSpaceError: 8,
|
|
@@ -1941,6 +1951,8 @@ var Tileset3D = class {
|
|
|
1941
1951
|
_traverser;
|
|
1942
1952
|
_cache = new TilesetCache();
|
|
1943
1953
|
_requestScheduler;
|
|
1954
|
+
/** Tile IDs held visible during transitions until replacements have drawn */
|
|
1955
|
+
_heldTiles = /* @__PURE__ */ new Set();
|
|
1944
1956
|
// Promise tracking
|
|
1945
1957
|
updatePromise = null;
|
|
1946
1958
|
tilesetInitializationPromise;
|
|
@@ -2146,6 +2158,7 @@ var Tileset3D = class {
|
|
|
2146
2158
|
* Update tiles relying on data from all traversers
|
|
2147
2159
|
*/
|
|
2148
2160
|
_updateTiles() {
|
|
2161
|
+
const previousSelectedTiles = this.selectedTiles;
|
|
2149
2162
|
this.selectedTiles = [];
|
|
2150
2163
|
this._requestedTiles = [];
|
|
2151
2164
|
this._emptyTiles = [];
|
|
@@ -2156,12 +2169,42 @@ var Tileset3D = class {
|
|
|
2156
2169
|
this._emptyTiles = this._emptyTiles.concat(frameStateDataValue._emptyTiles);
|
|
2157
2170
|
}
|
|
2158
2171
|
this.selectedTiles = this.options.onTraversalComplete(this.selectedTiles);
|
|
2172
|
+
const selectedIds = new Set(this.selectedTiles.map((t) => t.id));
|
|
2173
|
+
const hasUndrawnTiles = this.selectedTiles.some((t) => !t.tileDrawn);
|
|
2174
|
+
let heldBackCount = 0;
|
|
2175
|
+
if (hasUndrawnTiles) {
|
|
2176
|
+
for (const tileId of selectedIds) {
|
|
2177
|
+
this._heldTiles.add(tileId);
|
|
2178
|
+
}
|
|
2179
|
+
for (const tileId of this._heldTiles) {
|
|
2180
|
+
if (selectedIds.has(tileId))
|
|
2181
|
+
continue;
|
|
2182
|
+
const tile = this._tiles[tileId];
|
|
2183
|
+
if (tile && tile.contentAvailable) {
|
|
2184
|
+
tile._selectedFrame = this._frameNumber;
|
|
2185
|
+
this.selectedTiles.push(tile);
|
|
2186
|
+
heldBackCount++;
|
|
2187
|
+
} else {
|
|
2188
|
+
this._heldTiles.delete(tileId);
|
|
2189
|
+
}
|
|
2190
|
+
}
|
|
2191
|
+
} else {
|
|
2192
|
+
this._heldTiles = selectedIds;
|
|
2193
|
+
}
|
|
2194
|
+
if (heldBackCount > 0) {
|
|
2195
|
+
setTimeout(() => {
|
|
2196
|
+
this.selectTiles();
|
|
2197
|
+
}, 0);
|
|
2198
|
+
}
|
|
2159
2199
|
for (const tile of this.selectedTiles) {
|
|
2160
2200
|
this._tiles[tile.id] = tile;
|
|
2161
2201
|
}
|
|
2162
2202
|
this._loadTiles();
|
|
2163
2203
|
this._unloadTiles();
|
|
2164
2204
|
this._updateStats();
|
|
2205
|
+
if (this._tilesChanged(previousSelectedTiles, this.selectedTiles)) {
|
|
2206
|
+
this.options.onUpdate();
|
|
2207
|
+
}
|
|
2165
2208
|
}
|
|
2166
2209
|
_tilesChanged(oldSelectedTiles, selectedTiles) {
|
|
2167
2210
|
if (oldSelectedTiles.length !== selectedTiles.length) {
|