@loaders.gl/tile-converter 3.2.0-alpha.2 → 3.2.0-alpha.3

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 (56) hide show
  1. package/dist/3d-tiles-attributes-worker.js +1 -1
  2. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +1 -1
  3. package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
  4. package/dist/converter-cli.d.ts +2 -0
  5. package/dist/converter-cli.d.ts.map +1 -0
  6. package/dist/converter-cli.js +232 -0
  7. package/dist/converter.min.js +68 -68
  8. package/dist/deps-installer/deps-installer.d.ts +11 -1
  9. package/dist/deps-installer/deps-installer.d.ts.map +1 -1
  10. package/dist/deps-installer/deps-installer.js +10 -0
  11. package/dist/dist.min.js +95 -162
  12. package/dist/es5/3d-tiles-attributes-worker.js +1 -1
  13. package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  14. package/dist/es5/converter-cli.js +306 -0
  15. package/dist/es5/converter-cli.js.map +1 -0
  16. package/dist/es5/deps-installer/deps-installer.js.map +1 -1
  17. package/dist/es5/i3s-attributes-worker.js +1 -1
  18. package/dist/es5/i3s-converter/helpers/geometry-converter.js +4 -4
  19. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  20. package/dist/es5/i3s-converter/i3s-converter.js +64 -43
  21. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  22. package/dist/es5/index.js +0 -24
  23. package/dist/es5/index.js.map +1 -1
  24. package/dist/es5/pgm-loader.js +1 -1
  25. package/dist/esm/3d-tiles-attributes-worker.js +1 -1
  26. package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
  27. package/dist/esm/converter-cli.js +230 -0
  28. package/dist/esm/converter-cli.js.map +1 -0
  29. package/dist/esm/deps-installer/deps-installer.js.map +1 -1
  30. package/dist/esm/i3s-attributes-worker.js +1 -1
  31. package/dist/esm/i3s-converter/helpers/geometry-converter.js +4 -4
  32. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  33. package/dist/esm/i3s-converter/i3s-converter.js +44 -26
  34. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  35. package/dist/esm/index.js +0 -3
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/pgm-loader.js +1 -1
  38. package/dist/i3s-attributes-worker.js +1 -1
  39. package/dist/i3s-attributes-worker.js.map +2 -2
  40. package/dist/i3s-converter/helpers/geometry-converter.js +3 -3
  41. package/dist/i3s-converter/i3s-converter.d.ts +0 -2
  42. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  43. package/dist/i3s-converter/i3s-converter.js +34 -16
  44. package/dist/index.d.ts +0 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -7
  47. package/package.json +16 -17
  48. package/src/3d-tiles-converter/3d-tiles-converter.ts +1 -1
  49. package/src/converter-cli.ts +310 -0
  50. package/src/deps-installer/{deps-installer.js → deps-installer.ts} +11 -1
  51. package/src/i3s-converter/helpers/geometry-converter.ts +4 -4
  52. package/src/i3s-converter/i3s-converter.ts +37 -25
  53. package/src/index.ts +0 -5
  54. package/dist/es5/deps-installer/deps-installer.d.ts +0 -10
  55. package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
  56. package/src/deps-installer/deps-installer.d.ts +0 -10
@@ -48,7 +48,7 @@ import {NODE as nodeTemplate} from './json-templates/node';
48
48
  import {SHARED_RESOURCES as sharedResourcesTemplate} from './json-templates/shared-resources';
49
49
  import {validateNodeBoundingVolumes} from './helpers/node-debug';
50
50
  import TileHeader from '@loaders.gl/tiles/src/tileset/tile-3d';
51
- import {KTX2BasisWriter} from '@loaders.gl/textures';
51
+ import {KTX2BasisWriterWorker} from '@loaders.gl/textures';
52
52
  import {LoaderWithParser} from '@loaders.gl/loader-utils';
53
53
  import {I3SMaterialDefinition, TextureSetDefinitionFormats} from '@loaders.gl/i3s/src/types';
54
54
  import {ImageWriter} from '@loaders.gl/images';
@@ -148,8 +148,6 @@ export default class I3SConverter {
148
148
  validate?: boolean;
149
149
  generateTextures?: boolean;
150
150
  generateBoundingVolumes?: boolean;
151
- /** @deprecated */
152
- inputType?: string;
153
151
  }): Promise<any> {
154
152
  this.conversionStartTime = process.hrtime();
155
153
  const {
@@ -185,24 +183,27 @@ export default class I3SConverter {
185
183
 
186
184
  await this.loadWorkers();
187
185
 
188
- const preloadOptions = await this._fetchPreloadOptions();
189
- const tilesetOptions: Tileset3DProps = {loadOptions: {basis: {format: 'rgba32'}}};
190
- if (preloadOptions.headers) {
191
- tilesetOptions.loadOptions!.fetch = {headers: preloadOptions.headers};
186
+ try {
187
+ const preloadOptions = await this._fetchPreloadOptions();
188
+ const tilesetOptions: Tileset3DProps = {loadOptions: {basis: {format: 'rgba32'}}};
189
+ if (preloadOptions.headers) {
190
+ tilesetOptions.loadOptions!.fetch = {headers: preloadOptions.headers};
191
+ }
192
+ Object.assign(tilesetOptions, preloadOptions);
193
+ const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);
194
+ // console.log(tilesetJson); // eslint-disable-line
195
+ this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
196
+
197
+ await this._createAndSaveTileset(outputPath, tilesetName);
198
+ await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});
199
+ return sourceTilesetJson;
200
+ } catch (error) {
201
+ throw error;
202
+ } finally {
203
+ // Clean up worker pools
204
+ const workerFarm = WorkerFarm.getWorkerFarm({});
205
+ workerFarm.destroy();
192
206
  }
193
- Object.assign(tilesetOptions, preloadOptions);
194
- const sourceTilesetJson = await load(inputUrl, this.Loader, tilesetOptions.loadOptions);
195
- // console.log(tilesetJson); // eslint-disable-line
196
- this.sourceTileset = new Tileset3D(sourceTilesetJson, tilesetOptions);
197
-
198
- await this._createAndSaveTileset(outputPath, tilesetName);
199
- await this._finishConversion({slpk: Boolean(slpk), outputPath, tilesetName});
200
-
201
- // Clean up worker pools
202
- const workerFarm = WorkerFarm.getWorkerFarm({});
203
- workerFarm.destroy();
204
-
205
- return sourceTilesetJson;
206
207
  }
207
208
 
208
209
  /**
@@ -932,7 +933,13 @@ export default class I3SConverter {
932
933
 
933
934
  if (this.generateTextures) {
934
935
  formats.push({name: '1', format: 'ktx2'});
935
- const ktx2TextureData = new Uint8Array(await encode(texture.image, KTX2BasisWriter));
936
+ const ktx2TextureData = encode(texture.image, KTX2BasisWriterWorker, {
937
+ ...KTX2BasisWriterWorker.options,
938
+ source: this.workerSource.ktx2,
939
+ reuseWorkers: true,
940
+ _nodeWorkers: true
941
+ });
942
+
936
943
  await this.writeTextureFile(ktx2TextureData, '1', 'ktx2', childPath, slpkChildPath);
937
944
  }
938
945
 
@@ -945,9 +952,7 @@ export default class I3SConverter {
945
952
 
946
953
  if (this.generateTextures) {
947
954
  formats.push({name: '0', format: 'jpg'});
948
- const decodedFromKTX2TextureData = new Uint8Array(
949
- await encode(texture.image!.data[0], ImageWriter)
950
- );
955
+ const decodedFromKTX2TextureData = encode(texture.image!.data[0], ImageWriter);
951
956
  await this.writeTextureFile(
952
957
  decodedFromKTX2TextureData,
953
958
  '0',
@@ -974,7 +979,7 @@ export default class I3SConverter {
974
979
  * @param slpkChildPath
975
980
  */
976
981
  private async writeTextureFile(
977
- textureData: ArrayBuffer,
982
+ textureData: Promise<ArrayBuffer>,
978
983
  name: string,
979
984
  format: 'jpg' | 'png' | 'ktx2',
980
985
  childPath: string,
@@ -1346,6 +1351,13 @@ export default class I3SConverter {
1346
1351
  this.workerSource.draco = source;
1347
1352
  }
1348
1353
 
1354
+ if (this.generateTextures) {
1355
+ const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});
1356
+ const sourceResponse = await fetchFile(url);
1357
+ const source = await sourceResponse.text();
1358
+ this.workerSource.ktx2 = source;
1359
+ }
1360
+
1349
1361
  const i3sAttributesWorkerUrl = getWorkerURL(I3SAttributesWorker, {...getLoaderOptions()});
1350
1362
  const sourceResponse = await fetchFile(i3sAttributesWorkerUrl);
1351
1363
  const source = await sourceResponse.text();
package/src/index.ts CHANGED
@@ -1,7 +1,2 @@
1
1
  export {default as I3SConverter} from './i3s-converter/i3s-converter';
2
- export {default as NodePages} from './i3s-converter/helpers/node-pages';
3
-
4
2
  export {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';
5
-
6
- export {DepsInstaller} from './deps-installer/deps-installer';
7
- export {prepareDataForAttributesConversion} from './i3s-converter/helpers/gltf-attributes';
@@ -1,10 +0,0 @@
1
- /**
2
- * Install external dependencies for converter:
3
- * * PGM file (implemented);
4
- * * Draco library (not implemented);
5
- * * 7z archiver (not implemented);
6
- */
7
- export class DepsInstaller {
8
- // Run installation
9
- install(path?: string): Promise<void>;
10
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Install external dependencies for converter:
3
- * * PGM file (implemented);
4
- * * Draco library (not implemented);
5
- * * 7z archiver (not implemented);
6
- */
7
- export class DepsInstaller {
8
- // Run installation
9
- install(path?: string): Promise<void>;
10
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Install external dependencies for converter:
3
- * * PGM file (implemented);
4
- * * Draco library (not implemented);
5
- * * 7z archiver (not implemented);
6
- */
7
- export class DepsInstaller {
8
- // Run installation
9
- install(path?: string): Promise<void>;
10
- }