@loaders.gl/tile-converter 4.3.0-alpha.4 → 4.3.0-alpha.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-converter/3d-tiles-converter.d.ts +4 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +2 -2
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/load-i3s.js +5 -4
- package/dist/converter-cli.js +2 -20
- package/dist/converter.min.cjs +69 -69
- package/dist/deps-installer/deps-installer.js +1 -1
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-index-document.js +6 -14
- package/dist/i3s-converter/helpers/node-pages.d.ts +1 -1
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +14 -40
- package/dist/i3s-converter/helpers/progress.js +1 -1
- package/dist/i3s-converter/i3s-converter.d.ts +23 -23
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +64 -134
- package/dist/i3s-server/app.d.ts +2 -1
- package/dist/i3s-server/app.d.ts.map +1 -1
- package/dist/i3s-server/app.js +7 -10
- package/dist/i3s-server/bin/i3s-server.min.cjs +71 -71
- package/dist/i3s-server/bin/www.js +5 -0
- package/dist/index.cjs +92 -185
- package/dist/index.cjs.map +3 -3
- package/dist/lib/utils/statistic-utils.d.ts +20 -0
- package/dist/lib/utils/statistic-utils.d.ts.map +1 -0
- package/dist/lib/utils/{statistic-utills.js → statistic-utils.js} +17 -4
- package/dist/pgm-loader.js +1 -1
- package/package.json +19 -20
- package/src/3d-tiles-converter/3d-tiles-converter.ts +4 -3
- package/src/3d-tiles-converter/helpers/load-i3s.ts +5 -4
- package/src/converter-cli.ts +3 -28
- package/src/i3s-converter/helpers/node-index-document.ts +16 -26
- package/src/i3s-converter/helpers/node-pages.ts +20 -46
- package/src/i3s-converter/helpers/progress.ts +1 -1
- package/src/i3s-converter/i3s-converter.ts +92 -160
- package/src/i3s-server/app.ts +7 -10
- package/src/i3s-server/bin/www.ts +6 -0
- package/src/lib/utils/{statistic-utills.ts → statistic-utils.ts} +21 -4
- package/bin/slpk-extractor.js +0 -2
- package/dist/i3s-server/controllers/index-controller.d.ts +0 -8
- package/dist/i3s-server/controllers/index-controller.d.ts.map +0 -1
- package/dist/i3s-server/controllers/index-controller.js +0 -31
- package/dist/i3s-server/routes/index.d.ts +0 -2
- package/dist/i3s-server/routes/index.d.ts.map +0 -1
- package/dist/i3s-server/routes/index.js +0 -17
- package/dist/lib/utils/statistic-utills.d.ts +0 -8
- package/dist/lib/utils/statistic-utills.d.ts.map +0 -1
- package/dist/slpk-extractor/slpk-extractor.d.ts +0 -23
- package/dist/slpk-extractor/slpk-extractor.d.ts.map +0 -1
- package/dist/slpk-extractor/slpk-extractor.js +0 -73
- package/dist/slpk-extractor-cli.d.ts +0 -17
- package/dist/slpk-extractor-cli.d.ts.map +0 -1
- package/dist/slpk-extractor-cli.js +0 -105
- package/dist/slpk-extractor.min.cjs +0 -344
- package/src/i3s-server/controllers/index-controller.ts +0 -32
- package/src/i3s-server/routes/index.ts +0 -18
- package/src/slpk-extractor/slpk-extractor.ts +0 -102
- package/src/slpk-extractor-cli.ts +0 -136
|
@@ -4,6 +4,7 @@ import { I3SLoaderOptions } from '@loaders.gl/i3s/src/i3s-loader';
|
|
|
4
4
|
import { ZipFileSystem } from "../../../zip/src.js";
|
|
5
5
|
import { ConversionDump } from "../lib/utils/conversion-dump.js";
|
|
6
6
|
import { Progress } from "../i3s-converter/helpers/progress.js";
|
|
7
|
+
import { PromptModule } from 'inquirer';
|
|
7
8
|
/**
|
|
8
9
|
* Converter from i3s to 3d-tiles
|
|
9
10
|
*/
|
|
@@ -38,7 +39,9 @@ export default class Tiles3DConverter {
|
|
|
38
39
|
tilesetName: string;
|
|
39
40
|
maxDepth?: number;
|
|
40
41
|
egmFilePath: string;
|
|
41
|
-
inquirer?:
|
|
42
|
+
inquirer?: {
|
|
43
|
+
prompt: PromptModule;
|
|
44
|
+
};
|
|
42
45
|
analyze?: boolean;
|
|
43
46
|
}): Promise<string | undefined>;
|
|
44
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3d-tiles-converter.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-converter/3d-tiles-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAcrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,cAAc,EAAwB,wCAAqC;AACnF,OAAO,EAAC,QAAQ,EAAC,6CAA0C;
|
|
1
|
+
{"version":3,"file":"3d-tiles-converter.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-converter/3d-tiles-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAcrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,cAAc,EAAwB,wCAAqC;AACnF,OAAO,EAAC,QAAQ,EAAC,6CAA0C;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAC;AAItC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrD,YAAY,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAM;IAC3C,cAAc,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC5C,aAAa,EAAE,gBAAgB,CAU7B;IACF,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;;IAenB;;;;;;;;OAQG;IAEU,OAAO,CAAC,OAAO,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE;YAAC,MAAM,EAAE,YAAY,CAAA;SAAC,CAAC;QAClC,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoG/B;;;OAGG;YACW,oBAAoB;IA8BlC;;;;;;OAMG;YAEW,gBAAgB;IAyE9B;;;;;OAKG;YACW,YAAY;IAa1B;;;;;OAKG;YACW,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;YACW,oBAAoB;IAsBlC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;YACW,iBAAiB;CAgBhC"}
|
|
@@ -7,7 +7,7 @@ import { PGMLoader } from "../pgm-loader.js";
|
|
|
7
7
|
import { i3sObbTo3dTilesObb } from "./helpers/i3s-obb-to-3d-tiles-obb.js";
|
|
8
8
|
import { convertScreenThresholdToGeometricError } from "../lib/utils/lod-conversion-utils.js";
|
|
9
9
|
import { writeFile, removeDir } from "../lib/utils/file-utils.js";
|
|
10
|
-
import {
|
|
10
|
+
import { calculateDatasetSize, timeConverter } from "../lib/utils/statistic-utils.js";
|
|
11
11
|
import { TILESET as tilesetTemplate } from "./json-templates/tileset.js";
|
|
12
12
|
import { createObbFromMbs } from "../i3s-converter/helpers/coordinate-converter.js";
|
|
13
13
|
import { WorkerFarm } from '@loaders.gl/worker-utils';
|
|
@@ -371,7 +371,7 @@ export default class Tiles3DConverter {
|
|
|
371
371
|
* @param params - output files data
|
|
372
372
|
*/
|
|
373
373
|
async _finishConversion(params) {
|
|
374
|
-
const filesSize = await
|
|
374
|
+
const filesSize = await calculateDatasetSize(params);
|
|
375
375
|
const diff = process.hrtime(this.conversionStartTime);
|
|
376
376
|
const conversionTime = timeConverter(diff);
|
|
377
377
|
console.log(`------------------------------------------------`); // eslint-disable-line
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-i3s.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/load-i3s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,kBACV,gBAAgB,GAAG,IAAI,cAC1B,aAAa,sBACL,gBAAgB,kBACpB,aAAa,GAAG,IAAI,KACnC,QAAQ,cAAc,GAAG,IAAI,CAuC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUzE;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,aAAa,GAAG,IAAI,gBAUjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"load-i3s.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/load-i3s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,kBACV,gBAAgB,GAAG,IAAI,cAC1B,aAAa,sBACL,gBAAgB,kBACpB,aAAa,GAAG,IAAI,KACnC,QAAQ,cAAc,GAAG,IAAI,CAuC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUzE;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,aAAa,GAAG,IAAI,gBAUjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAcpF"}
|
|
@@ -85,13 +85,14 @@ export async function getNodeCount(fileSystem) {
|
|
|
85
85
|
if (!fileSystem?.fileProvider) {
|
|
86
86
|
return 0;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
const nodeSet = new Set();
|
|
89
89
|
const filesIterator = makeZipCDHeaderIterator(fileSystem.fileProvider);
|
|
90
90
|
for await (const file of filesIterator) {
|
|
91
91
|
const filename = file.fileName;
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
const nodeNumberSearchResult = /^nodes\/(\d+)\//.exec(filename);
|
|
93
|
+
if (nodeNumberSearchResult) {
|
|
94
|
+
nodeSet.add(nodeNumberSearchResult[1]);
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
|
-
return
|
|
97
|
+
return nodeSet.size;
|
|
97
98
|
}
|
package/dist/converter-cli.js
CHANGED
|
@@ -86,12 +86,9 @@ function printHelp() {
|
|
|
86
86
|
console.log('--output [Output folder, default: "data" folder]');
|
|
87
87
|
console.log('--instant-node-writing [Keep created 3DNodeIndexDocument files on disk instead of memory. This option reduce memory usage but decelerates conversion speed]');
|
|
88
88
|
console.log('--split-nodes [Prevent to merge similar materials that could lead to incorrect visualization (I3S to 3DTiles conversion only)]');
|
|
89
|
-
console.log('--slpk [Generate slpk (Scene Layer Packages) I3S output file]');
|
|
90
89
|
console.log('--tileset [tileset.json file (3DTiles) / http://..../SceneServer/layers/0 resource (I3S)]');
|
|
91
90
|
console.log('--input-type [tileset input type: I3S or 3DTILES]');
|
|
92
|
-
console.log('--
|
|
93
|
-
console.log('--egm [location of Earth Gravity Model *.pgm file to convert heights from ellipsoidal to gravity-related format. A model file can be loaded from GeographicLib https://geographiclib.sourceforge.io/html/geoid.html], default: "./deps/egm2008-5.zip"');
|
|
94
|
-
console.log('--no-egm [Disable Geod transformation via the EGM file]');
|
|
91
|
+
console.log('--egm [location of Earth Gravity Model *.pgm file to convert heights from ellipsoidal to gravity-related format or "None" to not use it. A model file can be loaded from GeographicLib https://geographiclib.sourceforge.io/html/geoid.html], default: "./deps/egm2008-5.zip"');
|
|
95
92
|
console.log('--token [Token for Cesium ION tilesets authentication]');
|
|
96
93
|
console.log('--no-draco [Disable draco compression for geometry]');
|
|
97
94
|
console.log('--generate-textures [Enable KTX2 textures generation if only one of (JPG, PNG) texture is provided or generate JPG texture if only KTX2 is provided]');
|
|
@@ -131,8 +128,6 @@ async function convert(options) {
|
|
|
131
128
|
outputPath: options.output,
|
|
132
129
|
tilesetName: options.name,
|
|
133
130
|
maxDepth: options.maxDepth,
|
|
134
|
-
slpk: options.slpk,
|
|
135
|
-
sevenZipExe: options.sevenZipExe,
|
|
136
131
|
egmFilePath: options.egm,
|
|
137
132
|
token: options.token,
|
|
138
133
|
draco: options.draco,
|
|
@@ -163,7 +158,6 @@ function validateOptions(options, addHash) {
|
|
|
163
158
|
condition: (value) => addHash || Boolean(value) || Boolean(options.analyze)
|
|
164
159
|
},
|
|
165
160
|
output: { getMessage: () => console.log('Missed: --output [Output path name]') },
|
|
166
|
-
sevenZipExe: { getMessage: () => console.log('Missed: --7zExe [7z archiver executable path]') },
|
|
167
161
|
egm: { getMessage: () => console.log('Missed: --egm [*.pgm earth gravity model file path]') },
|
|
168
162
|
tileset: { getMessage: () => console.log('Missed: --tileset [tileset.json file]') },
|
|
169
163
|
inputType: {
|
|
@@ -196,17 +190,14 @@ function parseOptions(args) {
|
|
|
196
190
|
output: 'data',
|
|
197
191
|
instantNodeWriting: false,
|
|
198
192
|
mergeMaterials: true,
|
|
199
|
-
sevenZipExe: 'C:\\Program Files\\7-Zip\\7z.exe',
|
|
200
193
|
egm: join(process.cwd(), 'deps', 'egm2008-5.pgm'),
|
|
201
194
|
draco: true,
|
|
202
195
|
installDependencies: false,
|
|
203
196
|
generateTextures: false,
|
|
204
197
|
generateBoundingVolumes: false,
|
|
205
198
|
validate: false,
|
|
206
|
-
slpk: false,
|
|
207
199
|
addHash: false,
|
|
208
|
-
quiet: false
|
|
209
|
-
noEgm: false
|
|
200
|
+
quiet: false
|
|
210
201
|
};
|
|
211
202
|
// eslint-disable-next-line complexity
|
|
212
203
|
args.forEach((arg, index) => {
|
|
@@ -233,21 +224,12 @@ function parseOptions(args) {
|
|
|
233
224
|
case '--max-depth':
|
|
234
225
|
opts.maxDepth = getIntegerValue(index, args);
|
|
235
226
|
break;
|
|
236
|
-
case '--slpk':
|
|
237
|
-
opts.slpk = getBooleanValue(index, args);
|
|
238
|
-
break;
|
|
239
227
|
case '--add-hash':
|
|
240
228
|
opts.addHash = getBooleanValue(index, args);
|
|
241
229
|
break;
|
|
242
|
-
case '--7zExe':
|
|
243
|
-
opts.sevenZipExe = getStringValue(index, args);
|
|
244
|
-
break;
|
|
245
230
|
case '--egm':
|
|
246
231
|
opts.egm = getStringValue(index, args);
|
|
247
232
|
break;
|
|
248
|
-
case '--no-egm':
|
|
249
|
-
opts.noEgm = getBooleanValue(index, args);
|
|
250
|
-
break;
|
|
251
233
|
case '--token':
|
|
252
234
|
opts.token = getStringValue(index, args);
|
|
253
235
|
break;
|