@loaders.gl/tile-converter 3.2.5 → 3.2.6
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/3d-tiles-attributes-worker.js +3 -3
- package/dist/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/converter.min.js +10 -10
- package/dist/dist.min.js +142 -101
- package/dist/es5/3d-tiles-attributes-worker.js +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +102 -46
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +204 -105
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +66 -28
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +3 -3
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +16 -16
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +10 -0
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/i3s-attributes-worker.js.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +3 -3
- package/dist/i3s-converter/i3s-converter.js +16 -16
- package/dist/lib/utils/write-queue.d.ts +1 -0
- package/dist/lib/utils/write-queue.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.js +13 -0
- package/package.json +15 -15
- package/src/i3s-converter/helpers/node-pages.ts +3 -3
- package/src/i3s-converter/i3s-converter.ts +16 -16
- package/src/lib/utils/write-queue.ts +12 -0
package/dist/dist.min.js
CHANGED
|
@@ -32723,22 +32723,22 @@ var require_zip_archive_output_stream = __commonJS({
|
|
|
32723
32723
|
};
|
|
32724
32724
|
ZipArchiveOutputStream.prototype._smartStream = function(ae, callback) {
|
|
32725
32725
|
var deflate = ae.getMethod() === constants.METHOD_DEFLATED;
|
|
32726
|
-
var
|
|
32726
|
+
var process5 = deflate ? new DeflateCRC32Stream(this.options.zlib) : new CRC32Stream();
|
|
32727
32727
|
var error = null;
|
|
32728
32728
|
function handleStuff() {
|
|
32729
|
-
var digest =
|
|
32729
|
+
var digest = process5.digest().readUInt32BE(0);
|
|
32730
32730
|
ae.setCrc(digest);
|
|
32731
|
-
ae.setSize(
|
|
32732
|
-
ae.setCompressedSize(
|
|
32731
|
+
ae.setSize(process5.size());
|
|
32732
|
+
ae.setCompressedSize(process5.size(true));
|
|
32733
32733
|
this._afterAppend(ae);
|
|
32734
32734
|
callback(error, ae);
|
|
32735
32735
|
}
|
|
32736
|
-
|
|
32737
|
-
|
|
32736
|
+
process5.once("end", handleStuff.bind(this));
|
|
32737
|
+
process5.once("error", function(err) {
|
|
32738
32738
|
error = err;
|
|
32739
32739
|
});
|
|
32740
|
-
|
|
32741
|
-
return
|
|
32740
|
+
process5.pipe(this, { end: false });
|
|
32741
|
+
return process5;
|
|
32742
32742
|
};
|
|
32743
32743
|
ZipArchiveOutputStream.prototype._writeCentralDirectoryEnd = function() {
|
|
32744
32744
|
var records = this._entries.length;
|
|
@@ -73572,6 +73572,22 @@ function isTransferable(object) {
|
|
|
73572
73572
|
}
|
|
73573
73573
|
return false;
|
|
73574
73574
|
}
|
|
73575
|
+
function getTransferListForWriter(object) {
|
|
73576
|
+
if (object === null) {
|
|
73577
|
+
return {};
|
|
73578
|
+
}
|
|
73579
|
+
const clone2 = Object.assign({}, object);
|
|
73580
|
+
Object.keys(clone2).forEach((key) => {
|
|
73581
|
+
if (typeof object[key] === "object" && !ArrayBuffer.isView(object[key])) {
|
|
73582
|
+
clone2[key] = getTransferListForWriter(object[key]);
|
|
73583
|
+
} else if (typeof clone2[key] === "function" || clone2[key] instanceof RegExp) {
|
|
73584
|
+
clone2[key] = {};
|
|
73585
|
+
} else {
|
|
73586
|
+
clone2[key] = object[key];
|
|
73587
|
+
}
|
|
73588
|
+
});
|
|
73589
|
+
return clone2;
|
|
73590
|
+
}
|
|
73575
73591
|
|
|
73576
73592
|
// ../worker-utils/src/lib/worker-farm/worker-thread.ts
|
|
73577
73593
|
var NOOP = () => {
|
|
@@ -73821,27 +73837,6 @@ var WorkerFarm = class {
|
|
|
73821
73837
|
}
|
|
73822
73838
|
};
|
|
73823
73839
|
|
|
73824
|
-
// ../worker-utils/src/lib/worker-utils/remove-nontransferable-options.ts
|
|
73825
|
-
function removeNontransferableOptions(object) {
|
|
73826
|
-
return JSON.parse(stringifyJSON(object));
|
|
73827
|
-
}
|
|
73828
|
-
function stringifyJSON(v) {
|
|
73829
|
-
const cache = new Set();
|
|
73830
|
-
return JSON.stringify(v, (key, value) => {
|
|
73831
|
-
if (typeof value === "object" && value !== null) {
|
|
73832
|
-
if (cache.has(value)) {
|
|
73833
|
-
try {
|
|
73834
|
-
return JSON.parse(JSON.stringify(value));
|
|
73835
|
-
} catch (err) {
|
|
73836
|
-
return void 0;
|
|
73837
|
-
}
|
|
73838
|
-
}
|
|
73839
|
-
cache.add(value);
|
|
73840
|
-
}
|
|
73841
|
-
return value;
|
|
73842
|
-
});
|
|
73843
|
-
}
|
|
73844
|
-
|
|
73845
73840
|
// ../worker-utils/src/lib/worker-api/get-worker-url.ts
|
|
73846
73841
|
var NPM_TAG = "latest";
|
|
73847
73842
|
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : NPM_TAG;
|
|
@@ -73883,7 +73878,7 @@ async function processOnWorker(worker, data, options = {}, context = {}) {
|
|
|
73883
73878
|
const workerPool = workerFarm.getWorkerPool(workerPoolProps);
|
|
73884
73879
|
const jobName = options.jobName || worker.name;
|
|
73885
73880
|
const job = await workerPool.startJob(jobName, onMessage.bind(null, context));
|
|
73886
|
-
const transferableOptions =
|
|
73881
|
+
const transferableOptions = getTransferListForWriter(options);
|
|
73887
73882
|
job.postMessage("process", { input: data, options: transferableOptions });
|
|
73888
73883
|
const result = await job.result;
|
|
73889
73884
|
return result.result;
|
|
@@ -75721,14 +75716,13 @@ var cullingVolume = new import_culling.CullingVolume([
|
|
|
75721
75716
|
function getFrameState(viewport, frameNumber) {
|
|
75722
75717
|
const { cameraDirection, cameraUp, height } = viewport;
|
|
75723
75718
|
const { metersPerUnit } = viewport.distanceScales;
|
|
75724
|
-
const
|
|
75725
|
-
const viewportCenterCartesian = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(viewportCenterCartographic, new import_core2.Vector3());
|
|
75719
|
+
const viewportCenterCartesian = worldToCartesian(viewport, viewport.center);
|
|
75726
75720
|
const enuToFixedTransform = import_geospatial2.Ellipsoid.WGS84.eastNorthUpToFixedFrame(viewportCenterCartesian);
|
|
75727
75721
|
const cameraPositionCartographic = viewport.unprojectPosition(viewport.cameraPosition);
|
|
75728
75722
|
const cameraPositionCartesian2 = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cameraPositionCartographic, new import_core2.Vector3());
|
|
75729
75723
|
const cameraDirectionCartesian = new import_core2.Vector3(enuToFixedTransform.transformAsVector(new import_core2.Vector3(cameraDirection).scale(metersPerUnit))).normalize();
|
|
75730
75724
|
const cameraUpCartesian = new import_core2.Vector3(enuToFixedTransform.transformAsVector(new import_core2.Vector3(cameraUp).scale(metersPerUnit))).normalize();
|
|
75731
|
-
commonSpacePlanesToWGS84(viewport
|
|
75725
|
+
commonSpacePlanesToWGS84(viewport);
|
|
75732
75726
|
const ViewportClass = viewport.constructor;
|
|
75733
75727
|
const { longitude, latitude, width, bearing, zoom } = viewport;
|
|
75734
75728
|
const topDownViewport = new ViewportClass({
|
|
@@ -75778,18 +75772,32 @@ function limitSelectedTiles(tiles, frameState, maximumTilesSelected) {
|
|
|
75778
75772
|
}
|
|
75779
75773
|
return [selectedTiles, unselectedTiles];
|
|
75780
75774
|
}
|
|
75781
|
-
function commonSpacePlanesToWGS84(viewport
|
|
75775
|
+
function commonSpacePlanesToWGS84(viewport) {
|
|
75782
75776
|
const frustumPlanes = viewport.getFrustumPlanes();
|
|
75777
|
+
const nearCenterCommon = closestPointOnPlane(frustumPlanes.near, viewport.cameraPosition);
|
|
75778
|
+
const nearCenterCartesian = worldToCartesian(viewport, nearCenterCommon);
|
|
75779
|
+
const cameraCartesian = worldToCartesian(viewport, viewport.cameraPosition, scratchPosition);
|
|
75783
75780
|
let i = 0;
|
|
75781
|
+
cullingVolume.planes[i++].fromPointNormal(nearCenterCartesian, scratchVector.copy(nearCenterCartesian).subtract(cameraCartesian));
|
|
75784
75782
|
for (const dir in frustumPlanes) {
|
|
75783
|
+
if (dir === "near") {
|
|
75784
|
+
continue;
|
|
75785
|
+
}
|
|
75785
75786
|
const plane = frustumPlanes[dir];
|
|
75786
|
-
const
|
|
75787
|
-
|
|
75788
|
-
|
|
75789
|
-
const cartesianPos = import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, new import_core2.Vector3());
|
|
75790
|
-
cullingVolume.planes[i++].fromPointNormal(cartesianPos, scratchVector.copy(viewportCenterCartesian).subtract(cartesianPos));
|
|
75787
|
+
const posCommon = closestPointOnPlane(plane, nearCenterCommon, scratchPosition);
|
|
75788
|
+
const cartesianPos = worldToCartesian(viewport, posCommon, scratchPosition);
|
|
75789
|
+
cullingVolume.planes[i++].fromPointNormal(cartesianPos, scratchVector.copy(nearCenterCartesian).subtract(cartesianPos));
|
|
75791
75790
|
}
|
|
75792
75791
|
}
|
|
75792
|
+
function closestPointOnPlane(plane, refPoint, out = new import_core2.Vector3()) {
|
|
75793
|
+
const distanceToRef = plane.normal.dot(refPoint);
|
|
75794
|
+
out.copy(plane.normal).scale(plane.distance - distanceToRef).add(refPoint);
|
|
75795
|
+
return out;
|
|
75796
|
+
}
|
|
75797
|
+
function worldToCartesian(viewport, point, out = new import_core2.Vector3()) {
|
|
75798
|
+
const cartographicPos = viewport.unprojectPosition(point);
|
|
75799
|
+
return import_geospatial2.Ellipsoid.WGS84.cartographicToCartesian(cartographicPos, out);
|
|
75800
|
+
}
|
|
75793
75801
|
|
|
75794
75802
|
// ../tiles/src/tileset/helpers/zoom.ts
|
|
75795
75803
|
var import_core3 = __toModule(require_es56());
|
|
@@ -76156,7 +76164,7 @@ var TilesetTraverser = class {
|
|
|
76156
76164
|
this.requestedTiles = {};
|
|
76157
76165
|
this.emptyTiles = {};
|
|
76158
76166
|
}
|
|
76159
|
-
|
|
76167
|
+
traversalFinished(frameState) {
|
|
76160
76168
|
return true;
|
|
76161
76169
|
}
|
|
76162
76170
|
traverse(root, frameState, options) {
|
|
@@ -76207,7 +76215,7 @@ var TilesetTraverser = class {
|
|
|
76207
76215
|
tile._shouldRefine = shouldRefine && parentRefines;
|
|
76208
76216
|
}
|
|
76209
76217
|
const newTime = new Date().getTime();
|
|
76210
|
-
if (this.traversalFinished || newTime - this.lastUpdate > this.updateDebounceTime) {
|
|
76218
|
+
if (this.traversalFinished(frameState) || newTime - this.lastUpdate > this.updateDebounceTime) {
|
|
76211
76219
|
this.lastUpdate = newTime;
|
|
76212
76220
|
this.options.onTraversalEnd(frameState);
|
|
76213
76221
|
}
|
|
@@ -76744,21 +76752,27 @@ var Tileset3DTraverser = class extends TilesetTraverser {
|
|
|
76744
76752
|
}
|
|
76745
76753
|
};
|
|
76746
76754
|
|
|
76747
|
-
// ../tiles/src/tileset/traversers/i3s-
|
|
76755
|
+
// ../tiles/src/tileset/traversers/i3s-pending-tiles-register.ts
|
|
76748
76756
|
var I3SPendingTilesRegister = class {
|
|
76749
76757
|
constructor() {
|
|
76750
76758
|
this.frameNumberMap = new Map();
|
|
76751
76759
|
}
|
|
76752
|
-
register(frameNumber) {
|
|
76753
|
-
const
|
|
76754
|
-
|
|
76760
|
+
register(viewportId, frameNumber) {
|
|
76761
|
+
const viewportMap = this.frameNumberMap.get(viewportId) || new Map();
|
|
76762
|
+
const oldCount = viewportMap.get(frameNumber) || 0;
|
|
76763
|
+
viewportMap.set(frameNumber, oldCount + 1);
|
|
76764
|
+
this.frameNumberMap.set(viewportId, viewportMap);
|
|
76755
76765
|
}
|
|
76756
|
-
deregister(frameNumber) {
|
|
76757
|
-
const
|
|
76758
|
-
|
|
76766
|
+
deregister(viewportId, frameNumber) {
|
|
76767
|
+
const viewportMap = this.frameNumberMap.get(viewportId);
|
|
76768
|
+
if (!viewportMap) {
|
|
76769
|
+
return;
|
|
76770
|
+
}
|
|
76771
|
+
const oldCount = viewportMap.get(frameNumber) || 1;
|
|
76772
|
+
viewportMap.set(frameNumber, oldCount - 1);
|
|
76759
76773
|
}
|
|
76760
|
-
isZero(frameNumber) {
|
|
76761
|
-
const count = this.frameNumberMap.get(frameNumber) || 0;
|
|
76774
|
+
isZero(viewportId, frameNumber) {
|
|
76775
|
+
const count = this.frameNumberMap.get(viewportId)?.get(frameNumber) || 0;
|
|
76762
76776
|
return count === 0;
|
|
76763
76777
|
}
|
|
76764
76778
|
};
|
|
@@ -76776,41 +76790,58 @@ var I3STileManager = class {
|
|
|
76776
76790
|
}
|
|
76777
76791
|
add(request, key, callback, frameState) {
|
|
76778
76792
|
if (!this._statusMap[key]) {
|
|
76779
|
-
const {
|
|
76793
|
+
const {
|
|
76794
|
+
frameNumber,
|
|
76795
|
+
viewport: { id }
|
|
76796
|
+
} = frameState;
|
|
76780
76797
|
this._statusMap[key] = { request, callback, key, frameState, status: STATUS.REQUESTED };
|
|
76781
|
-
this.pendingTilesRegister.register(frameNumber);
|
|
76798
|
+
this.pendingTilesRegister.register(id, frameNumber);
|
|
76782
76799
|
request().then((data) => {
|
|
76783
76800
|
this._statusMap[key].status = STATUS.COMPLETED;
|
|
76784
|
-
const {
|
|
76785
|
-
|
|
76801
|
+
const {
|
|
76802
|
+
frameNumber: actualFrameNumber,
|
|
76803
|
+
viewport: { id: id2 }
|
|
76804
|
+
} = this._statusMap[key].frameState;
|
|
76805
|
+
this.pendingTilesRegister.deregister(id2, actualFrameNumber);
|
|
76786
76806
|
this._statusMap[key].callback(data, frameState);
|
|
76787
76807
|
}).catch((error) => {
|
|
76788
76808
|
this._statusMap[key].status = STATUS.ERROR;
|
|
76789
|
-
const {
|
|
76790
|
-
|
|
76809
|
+
const {
|
|
76810
|
+
frameNumber: actualFrameNumber,
|
|
76811
|
+
viewport: { id: id2 }
|
|
76812
|
+
} = this._statusMap[key].frameState;
|
|
76813
|
+
this.pendingTilesRegister.deregister(id2, actualFrameNumber);
|
|
76791
76814
|
callback(error);
|
|
76792
76815
|
});
|
|
76793
76816
|
}
|
|
76794
76817
|
}
|
|
76795
76818
|
update(key, frameState) {
|
|
76796
76819
|
if (this._statusMap[key]) {
|
|
76797
|
-
|
|
76798
|
-
|
|
76820
|
+
const {
|
|
76821
|
+
frameNumber,
|
|
76822
|
+
viewport: { id }
|
|
76823
|
+
} = this._statusMap[key].frameState;
|
|
76824
|
+
this.pendingTilesRegister.deregister(id, frameNumber);
|
|
76825
|
+
const {
|
|
76826
|
+
frameNumber: newFrameNumber,
|
|
76827
|
+
viewport: { id: newViewportId }
|
|
76828
|
+
} = frameState;
|
|
76829
|
+
this.pendingTilesRegister.register(newViewportId, newFrameNumber);
|
|
76799
76830
|
this._statusMap[key].frameState = frameState;
|
|
76800
76831
|
}
|
|
76801
76832
|
}
|
|
76802
76833
|
find(key) {
|
|
76803
76834
|
return this._statusMap[key];
|
|
76804
76835
|
}
|
|
76805
|
-
hasPendingTiles(frameNumber) {
|
|
76806
|
-
return !this.pendingTilesRegister.isZero(frameNumber);
|
|
76836
|
+
hasPendingTiles(viewportId, frameNumber) {
|
|
76837
|
+
return !this.pendingTilesRegister.isZero(viewportId, frameNumber);
|
|
76807
76838
|
}
|
|
76808
76839
|
};
|
|
76809
76840
|
|
|
76810
76841
|
// ../tiles/src/tileset/traversers/i3s-tileset-traverser.ts
|
|
76811
76842
|
var I3STilesetTraverser = class extends TilesetTraverser {
|
|
76812
|
-
|
|
76813
|
-
return !this._tileManager.hasPendingTiles(this._frameNumber || 0);
|
|
76843
|
+
traversalFinished(frameState) {
|
|
76844
|
+
return !this._tileManager.hasPendingTiles(frameState.viewport.id, this._frameNumber || 0);
|
|
76814
76845
|
}
|
|
76815
76846
|
constructor(options) {
|
|
76816
76847
|
super(options);
|
|
@@ -76862,7 +76893,7 @@ var I3STilesetTraverser = class extends TilesetTraverser {
|
|
|
76862
76893
|
tile.children.push(childTile);
|
|
76863
76894
|
const frameState = this._tileManager.find(childTile.id).frameState;
|
|
76864
76895
|
this.updateTile(childTile, frameState);
|
|
76865
|
-
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
76896
|
+
if (this._frameNumber === frameState.frameNumber && (this.traversalFinished(frameState) || new Date().getTime() - this.lastUpdate > this.updateDebounceTime)) {
|
|
76866
76897
|
this.executeTraversal(childTile, frameState);
|
|
76867
76898
|
}
|
|
76868
76899
|
}
|
|
@@ -76999,7 +77030,9 @@ var Tileset3D = class {
|
|
|
76999
77030
|
} else {
|
|
77000
77031
|
this.lastUpdatedVieports = viewports;
|
|
77001
77032
|
}
|
|
77002
|
-
|
|
77033
|
+
if (viewports) {
|
|
77034
|
+
this.doUpdate(viewports);
|
|
77035
|
+
}
|
|
77003
77036
|
});
|
|
77004
77037
|
}
|
|
77005
77038
|
async selectTiles(viewports = null) {
|
|
@@ -77010,7 +77043,9 @@ var Tileset3D = class {
|
|
|
77010
77043
|
if (!this.updatePromise) {
|
|
77011
77044
|
this.updatePromise = new Promise((resolve) => {
|
|
77012
77045
|
setTimeout(() => {
|
|
77013
|
-
|
|
77046
|
+
if (this.lastUpdatedVieports) {
|
|
77047
|
+
this.doUpdate(this.lastUpdatedVieports);
|
|
77048
|
+
}
|
|
77014
77049
|
resolve(this._frameNumber);
|
|
77015
77050
|
this.updatePromise = null;
|
|
77016
77051
|
}, this.options.debounceTime);
|
|
@@ -77018,21 +77053,19 @@ var Tileset3D = class {
|
|
|
77018
77053
|
}
|
|
77019
77054
|
return this.updatePromise;
|
|
77020
77055
|
}
|
|
77021
|
-
doUpdate(viewports
|
|
77056
|
+
doUpdate(viewports) {
|
|
77022
77057
|
if ("loadTiles" in this.options && !this.options.loadTiles) {
|
|
77023
77058
|
return;
|
|
77024
77059
|
}
|
|
77025
77060
|
if (this.traverseCounter > 0) {
|
|
77026
77061
|
return;
|
|
77027
77062
|
}
|
|
77028
|
-
|
|
77029
|
-
viewports = [viewports];
|
|
77030
|
-
}
|
|
77063
|
+
const preparedViewports = viewports instanceof Array ? viewports : [viewports];
|
|
77031
77064
|
this._cache.reset();
|
|
77032
77065
|
this._frameNumber++;
|
|
77033
|
-
this.traverseCounter =
|
|
77066
|
+
this.traverseCounter = preparedViewports.length;
|
|
77034
77067
|
const viewportsToTraverse = [];
|
|
77035
|
-
for (const viewport of
|
|
77068
|
+
for (const viewport of preparedViewports) {
|
|
77036
77069
|
const id = viewport.id;
|
|
77037
77070
|
if (this._needTraverse(id)) {
|
|
77038
77071
|
viewportsToTraverse.push(id);
|
|
@@ -77040,7 +77073,7 @@ var Tileset3D = class {
|
|
|
77040
77073
|
this.traverseCounter--;
|
|
77041
77074
|
}
|
|
77042
77075
|
}
|
|
77043
|
-
for (const viewport of
|
|
77076
|
+
for (const viewport of preparedViewports) {
|
|
77044
77077
|
const id = viewport.id;
|
|
77045
77078
|
if (!this.roots[id]) {
|
|
77046
77079
|
this.roots[id] = this._initializeTileHeaders(this.tileset, null);
|
|
@@ -83743,7 +83776,7 @@ var stringify = import_dist.default.stringify;
|
|
|
83743
83776
|
var parse5 = import_dist.default.parse;
|
|
83744
83777
|
|
|
83745
83778
|
// src/i3s-converter/i3s-converter.ts
|
|
83746
|
-
var
|
|
83779
|
+
var import_process2 = __toModule(require("process"));
|
|
83747
83780
|
var import_json_map_transform6 = __toModule(require_json_map_transform());
|
|
83748
83781
|
var import_md52 = __toModule(require_md52());
|
|
83749
83782
|
|
|
@@ -83858,14 +83891,14 @@ var NodePages = class {
|
|
|
83858
83891
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
83859
83892
|
const nodePageStr = JSON.stringify(nodePage);
|
|
83860
83893
|
const slpkPath = (0, import_path2.join)(layers0Path, "nodepages");
|
|
83861
|
-
writeQueue.enqueue({
|
|
83894
|
+
await writeQueue.enqueue({
|
|
83862
83895
|
archiveKey: `nodePages/${index.toString()}.json.gz`,
|
|
83863
83896
|
writePromise: this.writeFile(slpkPath, nodePageStr, `${index.toString()}.json`)
|
|
83864
83897
|
});
|
|
83865
83898
|
}
|
|
83866
83899
|
const metadata = (0, import_json_map_transform.default)({ nodeCount: this.nodesCounter }, METADATA());
|
|
83867
83900
|
const compress = false;
|
|
83868
|
-
writeQueue.enqueue({
|
|
83901
|
+
await writeQueue.enqueue({
|
|
83869
83902
|
archiveKey: "metadata.json",
|
|
83870
83903
|
writePromise: this.writeFile(layers0Path, JSON.stringify(metadata), "metadata.json", compress)
|
|
83871
83904
|
});
|
|
@@ -83873,7 +83906,7 @@ var NodePages = class {
|
|
|
83873
83906
|
for (const [index, nodePage] of this.nodePages.entries()) {
|
|
83874
83907
|
const nodePageStr = JSON.stringify(nodePage);
|
|
83875
83908
|
const nodePagePath = (0, import_path2.join)(layers0Path, "nodepages", index.toString());
|
|
83876
|
-
writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
|
|
83909
|
+
await writeQueue.enqueue({ writePromise: this.writeFile(nodePagePath, nodePageStr) });
|
|
83877
83910
|
}
|
|
83878
83911
|
}
|
|
83879
83912
|
}
|
|
@@ -85618,6 +85651,8 @@ var Queue = class extends Array {
|
|
|
85618
85651
|
};
|
|
85619
85652
|
|
|
85620
85653
|
// src/lib/utils/write-queue.ts
|
|
85654
|
+
var import_process = __toModule(require("process"));
|
|
85655
|
+
var MEMORY_LIMIT = 4 * 1024 * 1024 * 1024;
|
|
85621
85656
|
var WriteQueue = class extends Queue {
|
|
85622
85657
|
constructor(listeningInterval = 2e3, writeConcurrency = 400) {
|
|
85623
85658
|
super();
|
|
@@ -85626,6 +85661,12 @@ var WriteQueue = class extends Queue {
|
|
|
85626
85661
|
this.listeningInterval = listeningInterval;
|
|
85627
85662
|
this.writeConcurrency = writeConcurrency;
|
|
85628
85663
|
}
|
|
85664
|
+
async enqueue(val) {
|
|
85665
|
+
super.enqueue(val);
|
|
85666
|
+
if (import_process.default.memoryUsage().rss > MEMORY_LIMIT) {
|
|
85667
|
+
await this.startWrite();
|
|
85668
|
+
}
|
|
85669
|
+
}
|
|
85629
85670
|
startListening() {
|
|
85630
85671
|
this.intervalId = setInterval(this.startWrite.bind(this), this.listeningInterval);
|
|
85631
85672
|
}
|
|
@@ -85693,7 +85734,7 @@ var I3SAttributesWorker = {
|
|
|
85693
85734
|
var BROWSER_ERROR_MESSAGE = "Tile converter does not work in browser, only in node js environment";
|
|
85694
85735
|
|
|
85695
85736
|
// src/i3s-converter/i3s-converter.ts
|
|
85696
|
-
var ION_DEFAULT_TOKEN =
|
|
85737
|
+
var ION_DEFAULT_TOKEN = import_process2.default.env?.IonToken || "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ";
|
|
85697
85738
|
var HARDCODED_NODES_PER_PAGE = 64;
|
|
85698
85739
|
var _3D_TILES = "3DTILES";
|
|
85699
85740
|
var _3D_OBJECT_LAYER_TYPE = "3DObject";
|
|
@@ -85735,7 +85776,7 @@ var I3SConverter = class {
|
|
|
85735
85776
|
console.log(BROWSER_ERROR_MESSAGE);
|
|
85736
85777
|
return BROWSER_ERROR_MESSAGE;
|
|
85737
85778
|
}
|
|
85738
|
-
this.conversionStartTime =
|
|
85779
|
+
this.conversionStartTime = import_process2.default.hrtime();
|
|
85739
85780
|
const {
|
|
85740
85781
|
tilesetName,
|
|
85741
85782
|
slpk,
|
|
@@ -85867,12 +85908,12 @@ var I3SConverter = class {
|
|
|
85867
85908
|
const [child] = await this._createNode(root0, sourceRootTile, parentId, 0);
|
|
85868
85909
|
const childPath = (0, import_path7.join)(this.layers0Path, "nodes", child.path);
|
|
85869
85910
|
if (this.options.slpk) {
|
|
85870
|
-
this.writeQueue.enqueue({
|
|
85911
|
+
await this.writeQueue.enqueue({
|
|
85871
85912
|
archiveKey: "nodes/1/3dNodeIndexDocument.json.gz",
|
|
85872
85913
|
writePromise: writeFileForSlpk(childPath, JSON.stringify(child), "3dNodeIndexDocument.json")
|
|
85873
85914
|
});
|
|
85874
85915
|
} else {
|
|
85875
|
-
this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
|
|
85916
|
+
await this.writeQueue.enqueue({ writePromise: writeFile3(childPath, JSON.stringify(child)) });
|
|
85876
85917
|
}
|
|
85877
85918
|
} else {
|
|
85878
85919
|
await this._addChildrenWithNeighborsAndWriteFile({
|
|
@@ -85886,24 +85927,24 @@ var I3SConverter = class {
|
|
|
85886
85927
|
}
|
|
85887
85928
|
async _writeLayers0() {
|
|
85888
85929
|
if (this.options.slpk) {
|
|
85889
|
-
this.writeQueue.enqueue({
|
|
85930
|
+
await this.writeQueue.enqueue({
|
|
85890
85931
|
archiveKey: "3dSceneLayer.json.gz",
|
|
85891
85932
|
writePromise: writeFileForSlpk(this.layers0Path, JSON.stringify(this.layers0), "3dSceneLayer.json")
|
|
85892
85933
|
});
|
|
85893
85934
|
} else {
|
|
85894
|
-
this.writeQueue.enqueue({
|
|
85935
|
+
await this.writeQueue.enqueue({
|
|
85895
85936
|
writePromise: writeFile3(this.layers0Path, JSON.stringify(this.layers0))
|
|
85896
85937
|
});
|
|
85897
85938
|
}
|
|
85898
85939
|
}
|
|
85899
85940
|
async _writeNodeIndexDocument(root0, nodePath, rootPath) {
|
|
85900
85941
|
if (this.options.slpk) {
|
|
85901
|
-
this.writeQueue.enqueue({
|
|
85942
|
+
await this.writeQueue.enqueue({
|
|
85902
85943
|
archiveKey: `nodes/${nodePath}/3dNodeIndexDocument.json.gz`,
|
|
85903
85944
|
writePromise: writeFileForSlpk(rootPath, JSON.stringify(root0), "3dNodeIndexDocument.json")
|
|
85904
85945
|
});
|
|
85905
85946
|
} else {
|
|
85906
|
-
this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
|
|
85947
|
+
await this.writeQueue.enqueue({ writePromise: writeFile3(rootPath, JSON.stringify(root0)) });
|
|
85907
85948
|
}
|
|
85908
85949
|
}
|
|
85909
85950
|
async _createSlpk(tilesetPath) {
|
|
@@ -86140,26 +86181,26 @@ var I3SConverter = class {
|
|
|
86140
86181
|
async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
|
|
86141
86182
|
if (this.options.slpk) {
|
|
86142
86183
|
const slpkGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86143
|
-
this.writeQueue.enqueue({
|
|
86184
|
+
await this.writeQueue.enqueue({
|
|
86144
86185
|
archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,
|
|
86145
86186
|
writePromise: writeFileForSlpk(slpkGeometryPath, geometryBuffer, "0.bin")
|
|
86146
86187
|
});
|
|
86147
86188
|
} else {
|
|
86148
86189
|
const geometryPath = (0, import_path7.join)(childPath, "geometries/0/");
|
|
86149
|
-
this.writeQueue.enqueue({
|
|
86190
|
+
await this.writeQueue.enqueue({
|
|
86150
86191
|
writePromise: writeFile3(geometryPath, geometryBuffer, "index.bin")
|
|
86151
86192
|
});
|
|
86152
86193
|
}
|
|
86153
86194
|
if (this.options.draco) {
|
|
86154
86195
|
if (this.options.slpk) {
|
|
86155
86196
|
const slpkCompressedGeometryPath = (0, import_path7.join)(childPath, "geometries");
|
|
86156
|
-
this.writeQueue.enqueue({
|
|
86197
|
+
await this.writeQueue.enqueue({
|
|
86157
86198
|
archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,
|
|
86158
86199
|
writePromise: writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, "1.bin")
|
|
86159
86200
|
});
|
|
86160
86201
|
} else {
|
|
86161
86202
|
const compressedGeometryPath = (0, import_path7.join)(childPath, "geometries/1/");
|
|
86162
|
-
this.writeQueue.enqueue({
|
|
86203
|
+
await this.writeQueue.enqueue({
|
|
86163
86204
|
writePromise: writeFile3(compressedGeometryPath, compressedGeometry, "index.bin")
|
|
86164
86205
|
});
|
|
86165
86206
|
}
|
|
@@ -86174,13 +86215,13 @@ var I3SConverter = class {
|
|
|
86174
86215
|
const sharedDataStr = JSON.stringify(sharedData);
|
|
86175
86216
|
if (this.options.slpk) {
|
|
86176
86217
|
const slpkSharedPath = (0, import_path7.join)(childPath, "shared");
|
|
86177
|
-
this.writeQueue.enqueue({
|
|
86218
|
+
await this.writeQueue.enqueue({
|
|
86178
86219
|
archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,
|
|
86179
86220
|
writePromise: writeFileForSlpk(slpkSharedPath, sharedDataStr, "sharedResource.json")
|
|
86180
86221
|
});
|
|
86181
86222
|
} else {
|
|
86182
86223
|
const sharedPath = (0, import_path7.join)(childPath, "shared/");
|
|
86183
|
-
this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
|
|
86224
|
+
await this.writeQueue.enqueue({ writePromise: writeFile3(sharedPath, sharedDataStr) });
|
|
86184
86225
|
}
|
|
86185
86226
|
}
|
|
86186
86227
|
async _writeTexture(texture, childPath, slpkChildPath) {
|
|
@@ -86224,13 +86265,13 @@ var I3SConverter = class {
|
|
|
86224
86265
|
if (this.options.slpk) {
|
|
86225
86266
|
const slpkTexturePath = (0, import_path7.join)(childPath, "textures");
|
|
86226
86267
|
const compress = false;
|
|
86227
|
-
this.writeQueue.enqueue({
|
|
86268
|
+
await this.writeQueue.enqueue({
|
|
86228
86269
|
archiveKey: `${slpkChildPath}/textures/${name8}.${format}`,
|
|
86229
86270
|
writePromise: writeFileForSlpk(slpkTexturePath, textureData, `${name8}.${format}`, compress)
|
|
86230
86271
|
});
|
|
86231
86272
|
} else {
|
|
86232
86273
|
const texturePath = (0, import_path7.join)(childPath, `textures/${name8}/`);
|
|
86233
|
-
this.writeQueue.enqueue({
|
|
86274
|
+
await this.writeQueue.enqueue({
|
|
86234
86275
|
writePromise: writeFile3(texturePath, textureData, `index.${format}`)
|
|
86235
86276
|
});
|
|
86236
86277
|
}
|
|
@@ -86242,13 +86283,13 @@ var I3SConverter = class {
|
|
|
86242
86283
|
const fileBuffer = new Uint8Array(attributes[index]);
|
|
86243
86284
|
if (this.options.slpk) {
|
|
86244
86285
|
const slpkAttributesPath = (0, import_path7.join)(childPath, "attributes", folderName);
|
|
86245
|
-
this.writeQueue.enqueue({
|
|
86286
|
+
await this.writeQueue.enqueue({
|
|
86246
86287
|
archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,
|
|
86247
86288
|
writePromise: writeFileForSlpk(slpkAttributesPath, fileBuffer, "0.bin")
|
|
86248
86289
|
});
|
|
86249
86290
|
} else {
|
|
86250
86291
|
const attributesPath = (0, import_path7.join)(childPath, `attributes/${folderName}/0`);
|
|
86251
|
-
this.writeQueue.enqueue({
|
|
86292
|
+
await this.writeQueue.enqueue({
|
|
86252
86293
|
writePromise: writeFile3(attributesPath, fileBuffer, "index.bin")
|
|
86253
86294
|
});
|
|
86254
86295
|
}
|
|
@@ -86408,7 +86449,7 @@ var I3SConverter = class {
|
|
|
86408
86449
|
const { tilesCount, tilesWithAddRefineCount } = this.refinementCounter;
|
|
86409
86450
|
const addRefinementPercentage = tilesWithAddRefineCount ? tilesWithAddRefineCount / tilesCount * 100 : 0;
|
|
86410
86451
|
const filesSize = await calculateFilesSize(params);
|
|
86411
|
-
const diff =
|
|
86452
|
+
const diff = import_process2.default.hrtime(this.conversionStartTime);
|
|
86412
86453
|
const conversionTime = timeConverter(diff);
|
|
86413
86454
|
console.log(`------------------------------------------------`);
|
|
86414
86455
|
console.log(`Finishing conversion of ${_3D_TILES}`);
|
|
@@ -86426,15 +86467,15 @@ var I3SConverter = class {
|
|
|
86426
86467
|
"cesium-ion": { accessToken: this.options.token || ION_DEFAULT_TOKEN }
|
|
86427
86468
|
};
|
|
86428
86469
|
const preloadOptions = await this.Loader.preload(this.options.inputUrl, options);
|
|
86429
|
-
this.refreshTokenTime =
|
|
86470
|
+
this.refreshTokenTime = import_process2.default.hrtime();
|
|
86430
86471
|
return { ...options, ...preloadOptions };
|
|
86431
86472
|
}
|
|
86432
86473
|
async _updateTilesetOptions() {
|
|
86433
|
-
const diff =
|
|
86474
|
+
const diff = import_process2.default.hrtime(this.refreshTokenTime);
|
|
86434
86475
|
if (diff[0] < REFRESH_TOKEN_TIMEOUT) {
|
|
86435
86476
|
return;
|
|
86436
86477
|
}
|
|
86437
|
-
this.refreshTokenTime =
|
|
86478
|
+
this.refreshTokenTime = import_process2.default.hrtime();
|
|
86438
86479
|
const preloadOptions = await this._fetchPreloadOptions();
|
|
86439
86480
|
this.sourceTileset.options = { ...this.sourceTileset.options, ...preloadOptions };
|
|
86440
86481
|
if (preloadOptions.headers) {
|
|
@@ -86480,7 +86521,7 @@ var I3SConverter = class {
|
|
|
86480
86521
|
|
|
86481
86522
|
// src/3d-tiles-converter/3d-tiles-converter.ts
|
|
86482
86523
|
var import_path8 = __toModule(require("path"));
|
|
86483
|
-
var
|
|
86524
|
+
var import_process3 = __toModule(require("process"));
|
|
86484
86525
|
var import_json_map_transform8 = __toModule(require_json_map_transform());
|
|
86485
86526
|
|
|
86486
86527
|
// ../i3s/src/lib/parsers/parse-i3s-tile-content.ts
|
|
@@ -87710,7 +87751,7 @@ var Tiles3DConverter = class {
|
|
|
87710
87751
|
return BROWSER_ERROR_MESSAGE;
|
|
87711
87752
|
}
|
|
87712
87753
|
const { inputUrl, outputPath, tilesetName, maxDepth, egmFilePath } = options;
|
|
87713
|
-
this.conversionStartTime =
|
|
87754
|
+
this.conversionStartTime = import_process3.default.hrtime();
|
|
87714
87755
|
this.options = { maxDepth };
|
|
87715
87756
|
console.log("Loading egm file...");
|
|
87716
87757
|
this.geoidHeightModel = await load(egmFilePath, PGMLoader);
|
|
@@ -87860,7 +87901,7 @@ var Tiles3DConverter = class {
|
|
|
87860
87901
|
}
|
|
87861
87902
|
async _finishConversion(params) {
|
|
87862
87903
|
const filesSize = await calculateFilesSize(params);
|
|
87863
|
-
const diff =
|
|
87904
|
+
const diff = import_process3.default.hrtime(this.conversionStartTime);
|
|
87864
87905
|
const conversionTime = timeConverter(diff);
|
|
87865
87906
|
console.log(`------------------------------------------------`);
|
|
87866
87907
|
console.log(`Finish conversion of ${I3S}`);
|
|
@@ -8,7 +8,7 @@ exports._typecheckI3SAttributesWorker = exports.Tile3dAttributesWorker = void 0;
|
|
|
8
8
|
|
|
9
9
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
10
10
|
|
|
11
|
-
var VERSION = typeof "3.2.
|
|
11
|
+
var VERSION = typeof "3.2.6" !== 'undefined' ? "3.2.6" : 'latest';
|
|
12
12
|
var Tile3dAttributesWorker = {
|
|
13
13
|
id: '3d-tiles-attributes',
|
|
14
14
|
name: '3DTiles Attributes Worker',
|
|
@@ -8,7 +8,7 @@ exports._typecheckI3SAttributesWorker = exports.I3SAttributesWorker = void 0;
|
|
|
8
8
|
|
|
9
9
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
10
10
|
|
|
11
|
-
var VERSION = typeof "3.2.
|
|
11
|
+
var VERSION = typeof "3.2.6" !== 'undefined' ? "3.2.6" : 'latest';
|
|
12
12
|
var I3SAttributesWorker = {
|
|
13
13
|
id: 'i3s-attributes',
|
|
14
14
|
name: 'I3S Attributes Worker',
|