@loaders.gl/tile-converter 4.1.0-alpha.1 → 4.1.0-alpha.11

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 (51) hide show
  1. package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
  2. package/dist/3d-tiles-converter/helpers/b3dm-converter.js +8 -0
  3. package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
  4. package/dist/constants.d.ts +1 -0
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +1 -0
  7. package/dist/constants.js.map +1 -1
  8. package/dist/converter-cli.js +41 -4
  9. package/dist/converter-cli.js.map +1 -1
  10. package/dist/converter.min.cjs +131 -220
  11. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  12. package/dist/deps-installer/deps-installer.js +4 -3
  13. package/dist/deps-installer/deps-installer.js.map +1 -1
  14. package/dist/i3s-converter/i3s-converter.d.ts +14 -0
  15. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  16. package/dist/i3s-converter/i3s-converter.js +73 -19
  17. package/dist/i3s-converter/i3s-converter.js.map +1 -1
  18. package/dist/i3s-converter/types.d.ts +7 -0
  19. package/dist/i3s-converter/types.d.ts.map +1 -1
  20. package/dist/i3s-converter/types.js +8 -0
  21. package/dist/i3s-converter/types.js.map +1 -1
  22. package/dist/i3s-server/bin/i3s-server.min.cjs +80 -80
  23. package/dist/index.cjs +365 -93
  24. package/dist/lib/utils/compress-util.d.ts +0 -37
  25. package/dist/lib/utils/compress-util.d.ts.map +1 -1
  26. package/dist/lib/utils/compress-util.js +1 -149
  27. package/dist/lib/utils/compress-util.js.map +1 -1
  28. package/dist/lib/utils/conversion-dump.d.ts +81 -0
  29. package/dist/lib/utils/conversion-dump.d.ts.map +1 -0
  30. package/dist/lib/utils/conversion-dump.js +131 -0
  31. package/dist/lib/utils/conversion-dump.js.map +1 -0
  32. package/dist/lib/utils/statistic-utills.d.ts +23 -6
  33. package/dist/lib/utils/write-queue.d.ts +6 -1
  34. package/dist/lib/utils/write-queue.d.ts.map +1 -1
  35. package/dist/lib/utils/write-queue.js +15 -3
  36. package/dist/lib/utils/write-queue.js.map +1 -1
  37. package/dist/pgm-loader.js +1 -1
  38. package/dist/pgm-loader.js.map +1 -1
  39. package/dist/slpk-extractor.min.cjs +46 -46
  40. package/package.json +16 -16
  41. package/src/3d-tiles-converter/helpers/b3dm-converter.ts +19 -0
  42. package/src/constants.ts +1 -0
  43. package/src/converter-cli.ts +58 -4
  44. package/src/deps-installer/deps-installer.ts +3 -2
  45. package/src/i3s-converter/i3s-converter.ts +191 -51
  46. package/src/i3s-converter/types.ts +8 -0
  47. package/src/lib/utils/compress-util.ts +1 -264
  48. package/src/lib/utils/conversion-dump.ts +203 -0
  49. package/src/lib/utils/write-queue.ts +15 -2
  50. package/dist/lib/utils/statistic-utills.d.js +0 -2
  51. package/dist/lib/utils/statistic-utills.d.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"deps-installer.d.ts","sourceRoot":"","sources":["../../src/deps-installer/deps-installer.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAoEjC,cAAc;YAYd,cAAc;CAS7B"}
1
+ {"version":3,"file":"deps-installer.d.ts","sourceRoot":"","sources":["../../src/deps-installer/deps-installer.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAqEjC,cAAc;YAYd,cAAc;CAS7B"}
@@ -1,11 +1,11 @@
1
1
  import { load, fetchFile } from '@loaders.gl/core';
2
2
  import { ZipLoader } from '@loaders.gl/zip';
3
3
  import { writeFile } from "../lib/utils/file-utils.js";
4
- import { join } from 'path';
4
+ import { join, dirname } from 'path';
5
5
  import { ChildProcessProxy } from '@loaders.gl/worker-utils';
6
6
  import { DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS } from '@loaders.gl/draco';
7
7
  import { BASIS_EXTERNAL_LIBRARIES } from '@loaders.gl/textures';
8
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
8
+ const VERSION = typeof "4.1.0-alpha.11" !== 'undefined' ? "4.1.0-alpha.11" : 'latest';
9
9
  const PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';
10
10
  export class DepsInstaller {
11
11
  async install() {
@@ -40,8 +40,9 @@ export class DepsInstaller {
40
40
  await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'libs');
41
41
  console.log('Installing "join-images" npm package');
42
42
  const childProcess = new ChildProcessProxy();
43
+ const nodeDir = dirname(process.execPath);
43
44
  await childProcess.start({
44
- command: process.platform === 'win32' ? 'npm.cmd' : 'npm',
45
+ command: `${nodeDir}/${process.platform === 'win32' ? 'npm.cmd' : 'npm'}`,
45
46
  arguments: ['install', 'sharp@0.30.4', 'join-images@1.1.3'],
46
47
  wait: 0,
47
48
  ignoreStderr: true
@@ -1 +1 @@
1
- {"version":3,"file":"deps-installer.js","names":["load","fetchFile","ZipLoader","writeFile","join","ChildProcessProxy","DRACO_EXTERNAL_LIBRARIES","DRACO_EXTERNAL_LIBRARY_URLS","BASIS_EXTERNAL_LIBRARIES","VERSION","__VERSION__","PGM_LINK","DepsInstaller","install","path","arguments","length","undefined","console","log","fileMap","depsPath","process","cwd","Uint8Array","installFromNpm","installFromUrl","DECODER","DECODER_WASM","ENCODER","TRANSCODER","TRANSCODER_WASM","ENCODER_WASM","childProcess","start","command","platform","wait","ignoreStderr","module","name","extraPath","fileResponse","fileData","arrayBuffer","url"],"sources":["../../src/deps-installer/deps-installer.ts"],"sourcesContent":["import {load, fetchFile} from '@loaders.gl/core';\nimport {ZipLoader} from '@loaders.gl/zip';\nimport {writeFile} from '../lib/utils/file-utils';\nimport {join} from 'path';\nimport {ChildProcessProxy} from '@loaders.gl/worker-utils';\nimport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '@loaders.gl/draco';\nimport {BASIS_EXTERNAL_LIBRARIES} from '@loaders.gl/textures';\n\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';\n\n/**\n * Install external dependencies for converter:\n * * PGM file (implemented);\n * * Draco library (not implemented);\n * * 7z archiver (not implemented);\n */\nexport class DepsInstaller {\n /**\n * Run instalation\n * @param path destination folder\n * @param workersPath destination folder for workers.\n * This path is '' by default and is not used by tile-converter.\n * It is used in tests to prevent rewriting actual workers during tests running\n */\n async install(path: string = ''): Promise<void> {\n console.log('Installing \"EGM2008-5\" model...'); // eslint-disable-line no-console\n const fileMap = await load(PGM_LINK, ZipLoader, {});\n\n let depsPath = process.cwd();\n if (path) {\n depsPath = join(depsPath, path);\n }\n\n await writeFile(depsPath, new Uint8Array(fileMap['geoids/egm2008-5.pgm']), 'egm2008-5.pgm');\n\n console.log('Installing \"I3S Content Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('i3s', 'i3s-content-worker-node.js');\n\n console.log('Installing \"Draco Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('draco', 'draco-worker-node.js');\n\n console.log('Installing \"Draco Writer\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('draco', 'draco-writer-worker-node.js');\n\n console.log('Installing \"Basis Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('textures', 'basis-worker-node.js');\n\n console.log('Installing \"KTX2 Basis Writer\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('textures', 'ktx2-basis-writer-worker-node.js');\n\n console.log('Installing \"Draco decoder\" library'); // eslint-disable-line no-console\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.DECODER\n );\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.DECODER_WASM\n );\n\n console.log('Installing \"Draco encoder\" library'); // eslint-disable-line no-console\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.ENCODER\n );\n\n console.log('Installing \"Basis transcoder\" library'); // eslint-disable-line no-console\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'libs');\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'libs');\n\n console.log('Installing \"Basis encoder\" library'); // eslint-disable-line no-console\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.ENCODER, 'libs');\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'libs');\n\n console.log('Installing \"join-images\" npm package');\n const childProcess = new ChildProcessProxy();\n await childProcess.start({\n command: process.platform === 'win32' ? 'npm.cmd' : 'npm',\n // `npm install sharp join-images` works unstable. It fails because installed `sharp` version\n // may be different from the version required by `join-images`. Pointing to specific versions\n // resolve this issue\n arguments: ['install', 'sharp@0.30.4', 'join-images@1.1.3'],\n wait: 0,\n ignoreStderr: true\n });\n\n console.log('All dependencies were installed succesfully.'); // eslint-disable-line no-console\n }\n\n private async installFromNpm(module: string, name: string, extraPath: string = '') {\n const fileResponse = await fetchFile(\n `https://unpkg.com/@loaders.gl/${module}@${VERSION}/dist/${extraPath}/${name}`\n );\n const fileData = await fileResponse.arrayBuffer();\n if (!fileData) {\n return;\n }\n const path = join(process.cwd(), 'modules', module, 'dist', extraPath);\n await writeFile(path, fileData, name);\n }\n\n private async installFromUrl(url: string, module: string, name: string) {\n const fileResponse = await fetchFile(url);\n const fileData = await fileResponse.arrayBuffer();\n if (!fileData) {\n return;\n }\n const path = join(process.cwd(), 'modules', module, 'dist', 'libs');\n await writeFile(path, fileData, name);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"deps-installer.js","names":["load","fetchFile","ZipLoader","writeFile","join","dirname","ChildProcessProxy","DRACO_EXTERNAL_LIBRARIES","DRACO_EXTERNAL_LIBRARY_URLS","BASIS_EXTERNAL_LIBRARIES","VERSION","PGM_LINK","DepsInstaller","install","path","arguments","length","undefined","console","log","fileMap","depsPath","process","cwd","Uint8Array","installFromNpm","installFromUrl","DECODER","DECODER_WASM","ENCODER","TRANSCODER","TRANSCODER_WASM","ENCODER_WASM","childProcess","nodeDir","execPath","start","command","platform","wait","ignoreStderr","module","name","extraPath","fileResponse","fileData","arrayBuffer","url"],"sources":["../../src/deps-installer/deps-installer.ts"],"sourcesContent":["import {load, fetchFile} from '@loaders.gl/core';\nimport {ZipLoader} from '@loaders.gl/zip';\nimport {writeFile} from '../lib/utils/file-utils';\nimport {join, dirname} from 'path';\nimport {ChildProcessProxy} from '@loaders.gl/worker-utils';\nimport {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from '@loaders.gl/draco';\nimport {BASIS_EXTERNAL_LIBRARIES} from '@loaders.gl/textures';\n\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst PGM_LINK = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/egm/egm2008-5.zip';\n\n/**\n * Install external dependencies for converter:\n * * PGM file (implemented);\n * * Draco library (not implemented);\n * * 7z archiver (not implemented);\n */\nexport class DepsInstaller {\n /**\n * Run instalation\n * @param path destination folder\n * @param workersPath destination folder for workers.\n * This path is '' by default and is not used by tile-converter.\n * It is used in tests to prevent rewriting actual workers during tests running\n */\n async install(path: string = ''): Promise<void> {\n console.log('Installing \"EGM2008-5\" model...'); // eslint-disable-line no-console\n const fileMap = await load(PGM_LINK, ZipLoader, {});\n\n let depsPath = process.cwd();\n if (path) {\n depsPath = join(depsPath, path);\n }\n\n await writeFile(depsPath, new Uint8Array(fileMap['geoids/egm2008-5.pgm']), 'egm2008-5.pgm');\n\n console.log('Installing \"I3S Content Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('i3s', 'i3s-content-worker-node.js');\n\n console.log('Installing \"Draco Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('draco', 'draco-worker-node.js');\n\n console.log('Installing \"Draco Writer\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('draco', 'draco-writer-worker-node.js');\n\n console.log('Installing \"Basis Loader\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('textures', 'basis-worker-node.js');\n\n console.log('Installing \"KTX2 Basis Writer\" worker'); // eslint-disable-line no-console\n await this.installFromNpm('textures', 'ktx2-basis-writer-worker-node.js');\n\n console.log('Installing \"Draco decoder\" library'); // eslint-disable-line no-console\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.DECODER\n );\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.DECODER_WASM\n );\n\n console.log('Installing \"Draco encoder\" library'); // eslint-disable-line no-console\n await this.installFromUrl(\n DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.ENCODER],\n 'draco',\n DRACO_EXTERNAL_LIBRARIES.ENCODER\n );\n\n console.log('Installing \"Basis transcoder\" library'); // eslint-disable-line no-console\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'libs');\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'libs');\n\n console.log('Installing \"Basis encoder\" library'); // eslint-disable-line no-console\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.ENCODER, 'libs');\n await this.installFromNpm('textures', BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'libs');\n\n console.log('Installing \"join-images\" npm package');\n const childProcess = new ChildProcessProxy();\n const nodeDir = dirname(process.execPath);\n await childProcess.start({\n command: `${nodeDir}/${process.platform === 'win32' ? 'npm.cmd' : 'npm'}`,\n // `npm install sharp join-images` works unstable. It fails because installed `sharp` version\n // may be different from the version required by `join-images`. Pointing to specific versions\n // resolve this issue\n arguments: ['install', 'sharp@0.30.4', 'join-images@1.1.3'],\n wait: 0,\n ignoreStderr: true\n });\n\n console.log('All dependencies were installed succesfully.'); // eslint-disable-line no-console\n }\n\n private async installFromNpm(module: string, name: string, extraPath: string = '') {\n const fileResponse = await fetchFile(\n `https://unpkg.com/@loaders.gl/${module}@${VERSION}/dist/${extraPath}/${name}`\n );\n const fileData = await fileResponse.arrayBuffer();\n if (!fileData) {\n return;\n }\n const path = join(process.cwd(), 'modules', module, 'dist', extraPath);\n await writeFile(path, fileData, name);\n }\n\n private async installFromUrl(url: string, module: string, name: string) {\n const fileResponse = await fetchFile(url);\n const fileData = await fileResponse.arrayBuffer();\n if (!fileData) {\n return;\n }\n const path = join(process.cwd(), 'modules', module, 'dist', 'libs');\n await writeFile(path, fileData, name);\n }\n}\n"],"mappings":"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"}
@@ -9,6 +9,7 @@ import { I3SMaterialDefinition } from '@loaders.gl/i3s';
9
9
  import { PreprocessData } from './types';
10
10
  import WriteQueue from '../lib/utils/write-queue';
11
11
  import { Progress } from './helpers/progress';
12
+ import { ConversionDump } from '../lib/utils/conversion-dump';
12
13
  /**
13
14
  * Converter from 3d-tiles tileset to i3s layer
14
15
  */
@@ -49,6 +50,7 @@ export default class I3SConverter {
49
50
  compressList: string[] | null;
50
51
  preprocessData: PreprocessData;
51
52
  progresses: Record<string, Progress>;
53
+ conversionDump: ConversionDump;
52
54
  constructor();
53
55
  /**
54
56
  * Convert a 3d tileset
@@ -185,6 +187,8 @@ export default class I3SConverter {
185
187
  * @param resources.texture - texture image
186
188
  * @param resources.sharedResources - shared resource data object
187
189
  * @param resources.attributes - feature attributes
190
+ * @param nodePath - node path
191
+ * @param sourceTile - source tile (3DTile)
188
192
  * @return {Promise<void>}
189
193
  */
190
194
  private _writeResources;
@@ -194,6 +198,8 @@ export default class I3SConverter {
194
198
  * @param compressedGeometry - Uint8Array with compressed (draco) geometry
195
199
  * @param childPath - a child path to write resources
196
200
  * @param slpkChildPath - resource path inside *slpk file
201
+ * @param sourceId - source filename
202
+ * @param nodeId - nodeId of a converted node for the writing
197
203
  */
198
204
  private _writeGeometries;
199
205
  /**
@@ -202,6 +208,8 @@ export default class I3SConverter {
202
208
  * @param childPath - a child path to write resources
203
209
  * @param slpkChildPath - resource path inside *slpk file
204
210
  * @param nodePath - a node path
211
+ * @param sourceId - source filename
212
+ * @param nodeId - nodeId of a converted node for the writing
205
213
  */
206
214
  private _writeShared;
207
215
  /**
@@ -209,6 +217,8 @@ export default class I3SConverter {
209
217
  * @param texture - the texture image
210
218
  * @param childPath - a child path to write resources
211
219
  * @param slpkChildPath - the resource path inside *slpk file
220
+ * @param sourceId - source filename
221
+ * @param nodeId - nodeId of a converted node for the writing
212
222
  */
213
223
  private _writeTexture;
214
224
  /**
@@ -218,6 +228,8 @@ export default class I3SConverter {
218
228
  * @param format
219
229
  * @param childPath
220
230
  * @param slpkChildPath
231
+ * @param sourceId
232
+ * @param nodeId
221
233
  */
222
234
  private writeTextureFile;
223
235
  /**
@@ -225,6 +237,8 @@ export default class I3SConverter {
225
237
  * @param attributes - feature attributes
226
238
  * @param childPath - a child path to write resources
227
239
  * @param slpkChildPath - the resource path inside *slpk file
240
+ * @param sourceId - source filename
241
+ * @param nodeId - nodeId of a converted node for the writing
228
242
  */
229
243
  private _writeAttributes;
230
244
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i3s-converter.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/i3s-converter.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import transform from 'json-map-transform';
9
9
  import md5 from 'md5';
10
10
  import NodePages from "./helpers/node-pages.js";
11
11
  import { writeFile, removeDir, writeFileForSlpk, removeFile } from "../lib/utils/file-utils.js";
12
- import { compressFileWithGzip, compressWithChildProcess } from "../lib/utils/compress-util.js";
12
+ import { compressFileWithGzip } from "../lib/utils/compress-util.js";
13
13
  import { calculateFilesSize, timeConverter } from "../lib/utils/statistic-utills.js";
14
14
  import convertB3dmToI3sGeometry, { getPropertyTable } from "./helpers/geometry-converter.js";
15
15
  import { createBoundingVolumes, convertBoundingVolumeToI3SFullExtent } from "./helpers/coordinate-converter.js";
@@ -22,7 +22,7 @@ import { SHARED_RESOURCES as sharedResourcesTemplate } from "./json-templates/sh
22
22
  import { validateNodeBoundingVolumes } from "./helpers/node-debug.js";
23
23
  import { KTX2BasisWriterWorker } from '@loaders.gl/textures';
24
24
  import { ImageWriter } from '@loaders.gl/images';
25
- import { GLTFPrimitiveModeString } from "./types.js";
25
+ import { GLTFPrimitiveModeString, ResourceType } from "./types.js";
26
26
  import { WorkerFarm } from '@loaders.gl/worker-utils';
27
27
  import WriteQueue from "../lib/utils/write-queue.js";
28
28
  import { BROWSER_ERROR_MESSAGE } from "../constants.js";
@@ -34,6 +34,8 @@ import { createBoundingVolume } from '@loaders.gl/tiles';
34
34
  import { traverseDatasetWith } from "./helpers/tileset-traversal.js";
35
35
  import { analyzeTileContent, mergePreprocessData } from "./helpers/preprocess-3d-tiles.js";
36
36
  import { Progress } from "./helpers/progress.js";
37
+ import { composeHashFile, createZip } from '@loaders.gl/zip';
38
+ import { ConversionDump } from "../lib/utils/conversion-dump.js";
37
39
  const ION_DEFAULT_TOKEN = (_process$env = process.env) === null || _process$env === void 0 ? void 0 : _process$env.IonToken;
38
40
  const HARDCODED_NODES_PER_PAGE = 64;
39
41
  const _3D_TILES = '3DTILES';
@@ -80,13 +82,14 @@ export default class I3SConverter {
80
82
  this.generateBoundingVolumes = void 0;
81
83
  this.layersHasTexture = void 0;
82
84
  this.workerSource = {};
83
- this.writeQueue = new WriteQueue();
85
+ this.writeQueue = new WriteQueue(new ConversionDump());
84
86
  this.compressList = null;
85
87
  this.preprocessData = {
86
88
  meshTopologyTypes: new Set(),
87
89
  metadataClasses: new Set()
88
90
  };
89
91
  this.progresses = {};
92
+ this.conversionDump = void 0;
90
93
  this.attributeMetadataInfo = new AttributeMetadataInfo();
91
94
  this.nodePages = new NodePages(writeFile, HARDCODED_NODES_PER_PAGE, this);
92
95
  this.options = {};
@@ -107,6 +110,7 @@ export default class I3SConverter {
107
110
  this.generateBoundingVolumes = false;
108
111
  this.layersHasTexture = false;
109
112
  this.compressList = null;
113
+ this.conversionDump = new ConversionDump();
110
114
  }
111
115
  async convert(options) {
112
116
  if (isBrowser) {
@@ -134,6 +138,8 @@ export default class I3SConverter {
134
138
  analyze = false
135
139
  } = options;
136
140
  this.options = {
141
+ outputPath,
142
+ tilesetName,
137
143
  maxDepth,
138
144
  slpk,
139
145
  sevenZipExe,
@@ -152,7 +158,7 @@ export default class I3SConverter {
152
158
  this.Loader = inputUrl.indexOf(CESIUM_DATASET_PREFIX) !== -1 ? CesiumIonLoader : Tiles3DLoader;
153
159
  this.generateTextures = Boolean(generateTextures);
154
160
  this.generateBoundingVolumes = Boolean(generateBoundingVolumes);
155
- this.writeQueue = new WriteQueue();
161
+ this.writeQueue = new WriteQueue(this.conversionDump);
156
162
  this.writeQueue.startListening();
157
163
  console.log('Loading egm file...');
158
164
  this.geoidHeightModel = await load(egmFilePath, PGMLoader);
@@ -160,6 +166,7 @@ export default class I3SConverter {
160
166
  if (slpk) {
161
167
  this.nodePages.useWriteFunction(writeFileForSlpk);
162
168
  }
169
+ await this.conversionDump.createDumpFile(options);
163
170
  try {
164
171
  const preloadOptions = await this._fetchPreloadOptions();
165
172
  let tilesetUrl = inputUrl;
@@ -363,10 +370,14 @@ export default class I3SConverter {
363
370
  }
364
371
  }
365
372
  async _createSlpk(tilesetPath) {
373
+ await this.conversionDump.deleteDumpFile();
366
374
  if (this.options.slpk) {
367
375
  const slpkTilesetPath = join(tilesetPath, 'SceneServer', 'layers', '0');
368
376
  const slpkFileName = `${tilesetPath}.slpk`;
369
- await compressWithChildProcess(slpkTilesetPath, slpkFileName, 0, '.', this.options.sevenZipExe);
377
+ await createZip(slpkTilesetPath, slpkFileName, async fileList => ({
378
+ path: '@specialIndexFileHASH128@',
379
+ file: await composeHashFile(fileList)
380
+ }));
370
381
  try {
371
382
  await removeDir(tilesetPath);
372
383
  } catch (e) {}
@@ -466,7 +477,10 @@ export default class I3SConverter {
466
477
  const node = await new NodeIndexDocument(nodeInPage.index, this).addData(nodeData);
467
478
  nodes.push(node);
468
479
  if (nodeInPage.mesh) {
469
- await this._writeResources(resources, node.id);
480
+ if (sourceTile.id) {
481
+ await this.conversionDump.addNode(sourceTile.id, nodeInPage.index);
482
+ }
483
+ await this._writeResources(resources, node.id, sourceTile);
470
484
  }
471
485
  if (this.validate) {
472
486
  this.boundingVolumeWarnings = validateNodeBoundingVolumes(nodeData);
@@ -552,7 +566,7 @@ export default class I3SConverter {
552
566
  this.nodePages.saveNode(node);
553
567
  return node;
554
568
  }
555
- async _writeResources(resources, nodePath) {
569
+ async _writeResources(resources, nodePath, sourceTile) {
556
570
  const {
557
571
  geometry: geometryBuffer,
558
572
  compressedGeometry,
@@ -562,60 +576,81 @@ export default class I3SConverter {
562
576
  } = resources;
563
577
  const childPath = join(this.layers0Path, 'nodes', nodePath);
564
578
  const slpkChildPath = join('nodes', nodePath);
565
- await this._writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath);
566
- await this._writeShared(sharedResources, childPath, slpkChildPath, nodePath);
567
- await this._writeTexture(texture, childPath, slpkChildPath);
568
- await this._writeAttributes(attributes, childPath, slpkChildPath);
579
+ await this._writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath, sourceTile.id || '', parseInt(nodePath));
580
+ await this._writeShared(sharedResources, childPath, slpkChildPath, nodePath, sourceTile.id || '', parseInt(nodePath));
581
+ await this._writeTexture(texture, childPath, slpkChildPath, sourceTile.id || '', parseInt(nodePath));
582
+ await this._writeAttributes(attributes, childPath, slpkChildPath, sourceTile.id || '', parseInt(nodePath));
569
583
  }
570
- async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath) {
584
+ async _writeGeometries(geometryBuffer, compressedGeometry, childPath, slpkChildPath, sourceId, nodeId) {
585
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, ResourceType.GEOMETRY, false);
571
586
  if (this.options.slpk) {
572
587
  const slpkGeometryPath = join(childPath, 'geometries');
573
588
  await this.writeQueue.enqueue({
574
589
  archiveKey: `${slpkChildPath}/geometries/0.bin.gz`,
590
+ sourceId,
591
+ outputId: nodeId,
592
+ resourceType: ResourceType.GEOMETRY,
575
593
  writePromise: () => writeFileForSlpk(slpkGeometryPath, geometryBuffer, '0.bin')
576
594
  });
577
595
  } else {
578
596
  const geometryPath = join(childPath, 'geometries/0/');
579
597
  await this.writeQueue.enqueue({
598
+ sourceId,
599
+ outputId: nodeId,
600
+ resourceType: ResourceType.GEOMETRY,
580
601
  writePromise: () => writeFile(geometryPath, geometryBuffer, 'index.bin')
581
602
  });
582
603
  }
583
604
  if (this.options.draco) {
605
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, ResourceType.DRACO_GEOMETRY, false);
584
606
  if (this.options.slpk) {
585
607
  const slpkCompressedGeometryPath = join(childPath, 'geometries');
586
608
  await this.writeQueue.enqueue({
587
609
  archiveKey: `${slpkChildPath}/geometries/1.bin.gz`,
610
+ sourceId,
611
+ outputId: nodeId,
612
+ resourceType: ResourceType.DRACO_GEOMETRY,
588
613
  writePromise: () => writeFileForSlpk(slpkCompressedGeometryPath, compressedGeometry, '1.bin')
589
614
  });
590
615
  } else {
591
616
  const compressedGeometryPath = join(childPath, 'geometries/1/');
592
617
  await this.writeQueue.enqueue({
618
+ sourceId,
619
+ outputId: nodeId,
620
+ resourceType: ResourceType.DRACO_GEOMETRY,
593
621
  writePromise: () => writeFile(compressedGeometryPath, compressedGeometry, 'index.bin')
594
622
  });
595
623
  }
596
624
  }
597
625
  }
598
- async _writeShared(sharedResources, childPath, slpkChildPath, nodePath) {
626
+ async _writeShared(sharedResources, childPath, slpkChildPath, nodePath, sourceId, nodeId) {
599
627
  if (!sharedResources) {
600
628
  return;
601
629
  }
602
630
  sharedResources.nodePath = nodePath;
603
631
  const sharedData = transform(sharedResources, sharedResourcesTemplate());
604
632
  const sharedDataStr = JSON.stringify(sharedData);
633
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, ResourceType.SHARED, false);
605
634
  if (this.options.slpk) {
606
635
  const slpkSharedPath = join(childPath, 'shared');
607
636
  await this.writeQueue.enqueue({
608
637
  archiveKey: `${slpkChildPath}/shared/sharedResource.json.gz`,
638
+ sourceId,
639
+ outputId: nodeId,
640
+ resourceType: ResourceType.SHARED,
609
641
  writePromise: () => writeFileForSlpk(slpkSharedPath, sharedDataStr, 'sharedResource.json')
610
642
  });
611
643
  } else {
612
644
  const sharedPath = join(childPath, 'shared/');
613
645
  await this.writeQueue.enqueue({
646
+ sourceId,
647
+ outputId: nodeId,
648
+ resourceType: ResourceType.SHARED,
614
649
  writePromise: () => writeFile(sharedPath, sharedDataStr)
615
650
  });
616
651
  }
617
652
  }
618
- async _writeTexture(texture, childPath, slpkChildPath) {
653
+ async _writeTexture(texture, childPath, slpkChildPath, sourceId, nodeId) {
619
654
  if (texture) {
620
655
  const format = this._getFormatByMimeType(texture === null || texture === void 0 ? void 0 : texture.mimeType);
621
656
  const formats = [];
@@ -628,7 +663,8 @@ export default class I3SConverter {
628
663
  name: '0',
629
664
  format
630
665
  });
631
- await this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath);
666
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, `${ResourceType.TEXTURE}/${format}`, false);
667
+ await this.writeTextureFile(textureData, '0', format, childPath, slpkChildPath, sourceId, nodeId);
632
668
  if (this.generateTextures) {
633
669
  formats.push({
634
670
  name: '1',
@@ -648,7 +684,8 @@ export default class I3SConverter {
648
684
  _nodeWorkers: true,
649
685
  useLocalLibraries: true
650
686
  });
651
- await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
687
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, `${ResourceType.TEXTURE}/ktx2`, false);
688
+ await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath, sourceId, nodeId);
652
689
  }
653
690
  break;
654
691
  }
@@ -658,14 +695,16 @@ export default class I3SConverter {
658
695
  name: '1',
659
696
  format
660
697
  });
661
- await this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath);
698
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, `${ResourceType.TEXTURE}/${format}`, false);
699
+ await this.writeTextureFile(textureData, '1', format, childPath, slpkChildPath, sourceId, nodeId);
662
700
  if (this.generateTextures) {
663
701
  formats.push({
664
702
  name: '0',
665
703
  format: 'jpg'
666
704
  });
667
705
  const decodedFromKTX2TextureData = encode(texture.image.data[0], ImageWriter);
668
- await this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath);
706
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, `${ResourceType.TEXTURE}/jpg`, false);
707
+ await this.writeTextureFile(decodedFromKTX2TextureData, '0', 'jpg', childPath, slpkChildPath, sourceId, nodeId);
669
708
  }
670
709
  }
671
710
  }
@@ -680,17 +719,23 @@ export default class I3SConverter {
680
719
  }
681
720
  }
682
721
  }
683
- async writeTextureFile(textureData, name, format, childPath, slpkChildPath) {
722
+ async writeTextureFile(textureData, name, format, childPath, slpkChildPath, sourceId, nodeId) {
684
723
  if (this.options.slpk) {
685
724
  const slpkTexturePath = join(childPath, 'textures');
686
725
  const compress = false;
687
726
  await this.writeQueue.enqueue({
688
727
  archiveKey: `${slpkChildPath}/textures/${name}.${format}`,
728
+ sourceId,
729
+ outputId: nodeId,
730
+ resourceType: `${ResourceType.TEXTURE}/${format}`,
689
731
  writePromise: () => writeFileForSlpk(slpkTexturePath, textureData, `${name}.${format}`, compress)
690
732
  });
691
733
  } else {
692
734
  const texturePath = join(childPath, `textures/${name}/`);
693
735
  await this.writeQueue.enqueue({
736
+ sourceId,
737
+ outputId: nodeId,
738
+ resourceType: `${ResourceType.TEXTURE}/${format}`,
694
739
  writePromise: () => writeFile(texturePath, textureData, `index.${format}`)
695
740
  });
696
741
  }
@@ -699,20 +744,29 @@ export default class I3SConverter {
699
744
  let attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
700
745
  let childPath = arguments.length > 1 ? arguments[1] : undefined;
701
746
  let slpkChildPath = arguments.length > 2 ? arguments[2] : undefined;
747
+ let sourceId = arguments.length > 3 ? arguments[3] : undefined;
748
+ let nodeId = arguments.length > 4 ? arguments[4] : undefined;
702
749
  if (attributes !== null && attributes !== void 0 && attributes.length && this.attributeMetadataInfo.attributeStorageInfo.length) {
703
750
  const minimumLength = attributes.length < this.attributeMetadataInfo.attributeStorageInfo.length ? attributes.length : this.attributeMetadataInfo.attributeStorageInfo.length;
704
751
  for (let index = 0; index < minimumLength; index++) {
705
752
  const folderName = this.attributeMetadataInfo.attributeStorageInfo[index].key;
706
753
  const fileBuffer = new Uint8Array(attributes[index]);
754
+ this.conversionDump.updateDoneStatus(sourceId, nodeId, `${ResourceType.ATTRIBUTES}/${folderName}`, false);
707
755
  if (this.options.slpk) {
708
756
  const slpkAttributesPath = join(childPath, 'attributes', folderName);
709
757
  await this.writeQueue.enqueue({
710
758
  archiveKey: `${slpkChildPath}/attributes/${folderName}.bin.gz`,
759
+ sourceId,
760
+ outputId: nodeId,
761
+ resourceType: `${ResourceType.ATTRIBUTES}/${folderName}`,
711
762
  writePromise: () => writeFileForSlpk(slpkAttributesPath, fileBuffer, '0.bin')
712
763
  });
713
764
  } else {
714
765
  const attributesPath = join(childPath, `attributes/${folderName}/0`);
715
766
  await this.writeQueue.enqueue({
767
+ sourceId,
768
+ outputId: nodeId,
769
+ resourceType: `${ResourceType.ATTRIBUTES}/${folderName}`,
716
770
  writePromise: () => writeFile(attributesPath, fileBuffer, 'index.bin')
717
771
  });
718
772
  }