@loaders.gl/tile-converter 4.0.0-alpha.17 → 4.0.0-alpha.19
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-converter/3d-tiles-converter.d.ts +5 -4
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +39 -37
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +3 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +4 -2
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts +10 -0
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -0
- package/dist/3d-tiles-converter/helpers/load-i3s.js +42 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +2 -1
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/texture-atlas.js +2 -0
- package/dist/converter.min.js +71 -71
- package/dist/deps-installer/deps-installer.d.ts +3 -2
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +36 -10
- package/dist/dist.min.js +824 -3079
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +94 -81
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +6 -4
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/load-i3s.js +63 -0
- package/dist/es5/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +112 -38
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +12 -9
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +32 -87
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +10 -4
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +46 -43
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +4 -3
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/load-i3s.js +32 -0
- package/dist/esm/3d-tiles-converter/helpers/load-i3s.js.map +1 -0
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +37 -11
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +10 -6
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +11 -28
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +72 -72
- package/dist/esm/lib/utils/lod-conversion-utils.js +6 -4
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +2 -4
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +18 -13
- package/dist/i3s-converter/i3s-converter.d.ts +0 -1
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +10 -22
- package/dist/lib/utils/lod-conversion-utils.d.ts +2 -2
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -1
- package/dist/lib/utils/lod-conversion-utils.js +4 -4
- package/dist/slpk-extractor.min.js +38 -38
- package/package.json +14 -14
- package/src/3d-tiles-converter/3d-tiles-converter.ts +60 -46
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +11 -10
- package/src/3d-tiles-converter/helpers/load-i3s.ts +51 -0
- package/src/3d-tiles-converter/helpers/texture-atlas.ts +6 -2
- package/src/deps-installer/deps-installer.ts +55 -10
- package/src/i3s-converter/helpers/geometry-converter.ts +19 -14
- package/src/i3s-converter/i3s-converter.ts +12 -28
- package/src/lib/utils/lod-conversion-utils.ts +10 -6
|
@@ -14,7 +14,7 @@ import type {
|
|
|
14
14
|
MaxScreenThresholdSQ,
|
|
15
15
|
NodeInPage
|
|
16
16
|
} from '@loaders.gl/i3s';
|
|
17
|
-
import {load, encode,
|
|
17
|
+
import {load, encode, isBrowser} from '@loaders.gl/core';
|
|
18
18
|
import {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';
|
|
19
19
|
import {Geoid} from '@math.gl/geoid';
|
|
20
20
|
import {join} from 'path';
|
|
@@ -56,8 +56,7 @@ import {
|
|
|
56
56
|
PreprocessData,
|
|
57
57
|
SharedResourcesArrays
|
|
58
58
|
} from './types';
|
|
59
|
-
import {
|
|
60
|
-
import {DracoWriterWorker} from '@loaders.gl/draco';
|
|
59
|
+
import {WorkerFarm} from '@loaders.gl/worker-utils';
|
|
61
60
|
import WriteQueue from '../lib/utils/write-queue';
|
|
62
61
|
import {BROWSER_ERROR_MESSAGE} from '../constants';
|
|
63
62
|
import {
|
|
@@ -111,6 +110,7 @@ export default class I3SConverter {
|
|
|
111
110
|
loadOptions: Tiles3DLoaderOptions = {
|
|
112
111
|
_nodeWorkers: true,
|
|
113
112
|
reuseWorkers: true,
|
|
113
|
+
useLocalLibraries: true,
|
|
114
114
|
basis: {
|
|
115
115
|
format: 'rgba32',
|
|
116
116
|
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
@@ -118,7 +118,8 @@ export default class I3SConverter {
|
|
|
118
118
|
},
|
|
119
119
|
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
120
120
|
draco: {workerUrl: './modules/draco/dist/draco-worker-node.js'},
|
|
121
|
-
fetch: {}
|
|
121
|
+
fetch: {},
|
|
122
|
+
modules: {}
|
|
122
123
|
};
|
|
123
124
|
geoidHeightModel: Geoid | null = null;
|
|
124
125
|
Loader: LoaderWithParser = Tiles3DLoader;
|
|
@@ -236,8 +237,6 @@ export default class I3SConverter {
|
|
|
236
237
|
this.nodePages.useWriteFunction(writeFileForSlpk);
|
|
237
238
|
}
|
|
238
239
|
|
|
239
|
-
await this.loadWorkers();
|
|
240
|
-
|
|
241
240
|
try {
|
|
242
241
|
const preloadOptions = await this._fetchPreloadOptions();
|
|
243
242
|
let tilesetUrl = inputUrl;
|
|
@@ -719,7 +718,7 @@ export default class I3SConverter {
|
|
|
719
718
|
this.generateBoundingVolumes,
|
|
720
719
|
this.options.mergeMaterials,
|
|
721
720
|
this.geoidHeightModel!,
|
|
722
|
-
this.
|
|
721
|
+
this.loadOptions.modules as Record<string, string>
|
|
723
722
|
);
|
|
724
723
|
return resourcesData;
|
|
725
724
|
}
|
|
@@ -935,9 +934,13 @@ export default class I3SConverter {
|
|
|
935
934
|
KTX2BasisWriterWorker,
|
|
936
935
|
{
|
|
937
936
|
...KTX2BasisWriterWorker.options,
|
|
938
|
-
|
|
937
|
+
['ktx2-basis-writer']: {
|
|
938
|
+
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
939
|
+
workerUrl: './modules/textures/dist/ktx2-basis-writer-worker-node.js'
|
|
940
|
+
},
|
|
939
941
|
reuseWorkers: true,
|
|
940
|
-
_nodeWorkers: true
|
|
942
|
+
_nodeWorkers: true,
|
|
943
|
+
useLocalLibraries: true
|
|
941
944
|
}
|
|
942
945
|
);
|
|
943
946
|
|
|
@@ -1197,23 +1200,4 @@ export default class I3SConverter {
|
|
|
1197
1200
|
private isContentSupported(sourceTile: Tiles3DTileJSONPostprocessed): boolean {
|
|
1198
1201
|
return ['b3dm', 'glTF', 'scenegraph'].includes(sourceTile.type || '');
|
|
1199
1202
|
}
|
|
1200
|
-
|
|
1201
|
-
private async loadWorkers(): Promise<void> {
|
|
1202
|
-
console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console
|
|
1203
|
-
if (this.options.draco) {
|
|
1204
|
-
const url = getWorkerURL(DracoWriterWorker, {...getLoaderOptions()});
|
|
1205
|
-
const sourceResponse = await fetchFile(url);
|
|
1206
|
-
const source = await sourceResponse.text();
|
|
1207
|
-
this.workerSource.draco = source;
|
|
1208
|
-
}
|
|
1209
|
-
|
|
1210
|
-
if (this.generateTextures) {
|
|
1211
|
-
const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});
|
|
1212
|
-
const sourceResponse = await fetchFile(url);
|
|
1213
|
-
const source = await sourceResponse.text();
|
|
1214
|
-
this.workerSource.ktx2 = source;
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
|
-
console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console
|
|
1218
|
-
}
|
|
1219
1203
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Tiles3DTileJSONPostprocessed} from '@loaders.gl/3d-tiles';
|
|
2
2
|
import {BoundingVolumes} from '@loaders.gl/i3s';
|
|
3
|
-
import {
|
|
3
|
+
import {I3STileHeader} from '@loaders.gl/i3s/src/types';
|
|
4
4
|
|
|
5
5
|
// https://cesium.com/docs/cesiumjs-ref-doc/Cesium3DTileset.html
|
|
6
6
|
const DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR = 16;
|
|
@@ -64,11 +64,15 @@ export function convertGeometricErrorToScreenThreshold(
|
|
|
64
64
|
* @param node - i3s node data
|
|
65
65
|
* @returns lod metric in 3d-tiles format
|
|
66
66
|
*/
|
|
67
|
-
export function convertScreenThresholdToGeometricError(node:
|
|
68
|
-
const metricData = node.
|
|
69
|
-
|
|
67
|
+
export function convertScreenThresholdToGeometricError(node: I3STileHeader): number {
|
|
68
|
+
const metricData = node.lodSelection?.find(
|
|
69
|
+
(metric) => metric.metricType === 'maxScreenThreshold'
|
|
70
|
+
);
|
|
71
|
+
let maxError = metricData?.maxError;
|
|
70
72
|
if (!maxError) {
|
|
71
|
-
const sqMetricData = node.
|
|
73
|
+
const sqMetricData = node.lodSelection?.find(
|
|
74
|
+
(metric) => metric.metricType === 'maxScreenThresholdSQ'
|
|
75
|
+
);
|
|
72
76
|
if (sqMetricData) {
|
|
73
77
|
maxError = Math.sqrt(sqMetricData.maxError / (Math.PI * 0.25));
|
|
74
78
|
}
|
|
@@ -78,5 +82,5 @@ export function convertScreenThresholdToGeometricError(node: Tile3D): number {
|
|
|
78
82
|
maxError = DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR;
|
|
79
83
|
}
|
|
80
84
|
|
|
81
|
-
return (node.
|
|
85
|
+
return (node.mbs[3] * 2 * DEFAULT_MAXIMUM_SCREEN_SPACE_ERROR) / maxError;
|
|
82
86
|
}
|