@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.
Files changed (59) hide show
  1. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +4 -1
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  3. package/dist/3d-tiles-converter/3d-tiles-converter.js +2 -2
  4. package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -1
  5. package/dist/3d-tiles-converter/helpers/load-i3s.js +5 -4
  6. package/dist/converter-cli.js +2 -20
  7. package/dist/converter.min.cjs +69 -69
  8. package/dist/deps-installer/deps-installer.js +1 -1
  9. package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
  10. package/dist/i3s-converter/helpers/node-index-document.js +6 -14
  11. package/dist/i3s-converter/helpers/node-pages.d.ts +1 -1
  12. package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
  13. package/dist/i3s-converter/helpers/node-pages.js +14 -40
  14. package/dist/i3s-converter/helpers/progress.js +1 -1
  15. package/dist/i3s-converter/i3s-converter.d.ts +23 -23
  16. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  17. package/dist/i3s-converter/i3s-converter.js +64 -134
  18. package/dist/i3s-server/app.d.ts +2 -1
  19. package/dist/i3s-server/app.d.ts.map +1 -1
  20. package/dist/i3s-server/app.js +7 -10
  21. package/dist/i3s-server/bin/i3s-server.min.cjs +71 -71
  22. package/dist/i3s-server/bin/www.js +5 -0
  23. package/dist/index.cjs +92 -185
  24. package/dist/index.cjs.map +3 -3
  25. package/dist/lib/utils/statistic-utils.d.ts +20 -0
  26. package/dist/lib/utils/statistic-utils.d.ts.map +1 -0
  27. package/dist/lib/utils/{statistic-utills.js → statistic-utils.js} +17 -4
  28. package/dist/pgm-loader.js +1 -1
  29. package/package.json +19 -20
  30. package/src/3d-tiles-converter/3d-tiles-converter.ts +4 -3
  31. package/src/3d-tiles-converter/helpers/load-i3s.ts +5 -4
  32. package/src/converter-cli.ts +3 -28
  33. package/src/i3s-converter/helpers/node-index-document.ts +16 -26
  34. package/src/i3s-converter/helpers/node-pages.ts +20 -46
  35. package/src/i3s-converter/helpers/progress.ts +1 -1
  36. package/src/i3s-converter/i3s-converter.ts +92 -160
  37. package/src/i3s-server/app.ts +7 -10
  38. package/src/i3s-server/bin/www.ts +6 -0
  39. package/src/lib/utils/{statistic-utills.ts → statistic-utils.ts} +21 -4
  40. package/bin/slpk-extractor.js +0 -2
  41. package/dist/i3s-server/controllers/index-controller.d.ts +0 -8
  42. package/dist/i3s-server/controllers/index-controller.d.ts.map +0 -1
  43. package/dist/i3s-server/controllers/index-controller.js +0 -31
  44. package/dist/i3s-server/routes/index.d.ts +0 -2
  45. package/dist/i3s-server/routes/index.d.ts.map +0 -1
  46. package/dist/i3s-server/routes/index.js +0 -17
  47. package/dist/lib/utils/statistic-utills.d.ts +0 -8
  48. package/dist/lib/utils/statistic-utills.d.ts.map +0 -1
  49. package/dist/slpk-extractor/slpk-extractor.d.ts +0 -23
  50. package/dist/slpk-extractor/slpk-extractor.d.ts.map +0 -1
  51. package/dist/slpk-extractor/slpk-extractor.js +0 -73
  52. package/dist/slpk-extractor-cli.d.ts +0 -17
  53. package/dist/slpk-extractor-cli.d.ts.map +0 -1
  54. package/dist/slpk-extractor-cli.js +0 -105
  55. package/dist/slpk-extractor.min.cjs +0 -344
  56. package/src/i3s-server/controllers/index-controller.ts +0 -32
  57. package/src/i3s-server/routes/index.ts +0 -18
  58. package/src/slpk-extractor/slpk-extractor.ts +0 -102
  59. 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?: Promise<unknown>;
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;AAI3D;;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,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,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"}
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 { calculateFilesSize, timeConverter } from "../lib/utils/statistic-utills.js";
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 calculateFilesSize(params);
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,CAapF"}
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
- let count = 0;
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
- if (filename.indexOf('3dNodeIndexDocument.json.gz') >= 0) {
93
- count++;
92
+ const nodeNumberSearchResult = /^nodes\/(\d+)\//.exec(filename);
93
+ if (nodeNumberSearchResult) {
94
+ nodeSet.add(nodeNumberSearchResult[1]);
94
95
  }
95
96
  }
96
- return count;
97
+ return nodeSet.size;
97
98
  }
@@ -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('--7zExe [location of 7z.exe archiver to create slpk on Windows, default: "C:\\Program Files\\7-Zip\\7z.exe"]');
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;