@loaders.gl/tile-converter 4.0.0-alpha.19 → 4.0.0-alpha.20

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 (100) hide show
  1. package/dist/constants.d.ts +2 -0
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +3 -1
  4. package/dist/converter-cli.js +10 -2
  5. package/dist/converter.min.js +172 -103
  6. package/dist/dist.min.js +151 -86
  7. package/dist/es5/constants.js +5 -1
  8. package/dist/es5/constants.js.map +1 -1
  9. package/dist/es5/converter-cli.js +7 -2
  10. package/dist/es5/converter-cli.js.map +1 -1
  11. package/dist/es5/deps-installer/deps-installer.js +1 -1
  12. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +21 -8
  13. package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  14. package/dist/es5/i3s-converter/helpers/geometry-attributes.js +7 -6
  15. package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  16. package/dist/es5/i3s-converter/helpers/geometry-converter.js +67 -59
  17. package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
  18. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +38 -9
  19. package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  20. package/dist/es5/i3s-converter/i3s-converter.js +55 -13
  21. package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
  22. package/dist/es5/i3s-converter/types.js +11 -11
  23. package/dist/es5/i3s-converter/types.js.map +1 -1
  24. package/dist/es5/i3s-server/controllers/slpk-controller.js +1 -1
  25. package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
  26. package/dist/es5/index.js +3 -3
  27. package/dist/es5/index.js.map +1 -1
  28. package/dist/es5/pgm-loader.js +1 -1
  29. package/dist/es5/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +9 -9
  30. package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +1 -0
  31. package/dist/es5/slpk-extractor/slpk-extractor.js +5 -5
  32. package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
  33. package/dist/esm/constants.js +2 -0
  34. package/dist/esm/constants.js.map +1 -1
  35. package/dist/esm/converter-cli.js +7 -2
  36. package/dist/esm/converter-cli.js.map +1 -1
  37. package/dist/esm/deps-installer/deps-installer.js +1 -1
  38. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +18 -6
  39. package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
  40. package/dist/esm/i3s-converter/helpers/geometry-attributes.js +7 -6
  41. package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
  42. package/dist/esm/i3s-converter/helpers/geometry-converter.js +28 -20
  43. package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
  44. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +28 -9
  45. package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
  46. package/dist/esm/i3s-converter/i3s-converter.js +39 -9
  47. package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
  48. package/dist/esm/i3s-converter/types.js +9 -9
  49. package/dist/esm/i3s-converter/types.js.map +1 -1
  50. package/dist/esm/i3s-server/bin/i3s-server.min.js +71 -71
  51. package/dist/esm/i3s-server/controllers/slpk-controller.js +2 -2
  52. package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
  53. package/dist/esm/index.js +1 -1
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/pgm-loader.js +1 -1
  56. package/dist/esm/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +3 -3
  57. package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +1 -0
  58. package/dist/esm/slpk-extractor/slpk-extractor.js +3 -3
  59. package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
  60. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +11 -1
  61. package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
  62. package/dist/i3s-converter/helpers/batch-ids-extensions.js +33 -13
  63. package/dist/i3s-converter/helpers/geometry-attributes.js +7 -6
  64. package/dist/i3s-converter/helpers/geometry-converter.d.ts +6 -3
  65. package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
  66. package/dist/i3s-converter/helpers/geometry-converter.js +42 -35
  67. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +2 -2
  68. package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
  69. package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +39 -14
  70. package/dist/i3s-converter/i3s-converter.d.ts +2 -0
  71. package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
  72. package/dist/i3s-converter/i3s-converter.js +40 -10
  73. package/dist/i3s-converter/types.d.ts +4 -2
  74. package/dist/i3s-converter/types.d.ts.map +1 -1
  75. package/dist/i3s-converter/types.js +11 -11
  76. package/dist/i3s-server/controllers/slpk-controller.js +1 -1
  77. package/dist/index.d.ts +1 -1
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +3 -3
  80. package/dist/slpk-extractor/helpers/{file-handle-provider.d.ts → file-handle-file.d.ts} +5 -5
  81. package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +1 -0
  82. package/dist/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +5 -5
  83. package/dist/slpk-extractor/slpk-extractor.js +5 -5
  84. package/dist/slpk-extractor.min.js +32 -32
  85. package/package.json +15 -14
  86. package/src/constants.ts +3 -0
  87. package/src/converter-cli.ts +9 -2
  88. package/src/i3s-converter/helpers/batch-ids-extensions.ts +39 -12
  89. package/src/i3s-converter/helpers/geometry-attributes.ts +15 -8
  90. package/src/i3s-converter/helpers/geometry-converter.ts +66 -35
  91. package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +48 -18
  92. package/src/i3s-converter/i3s-converter.ts +54 -12
  93. package/src/i3s-converter/types.ts +4 -2
  94. package/src/i3s-server/controllers/slpk-controller.ts +2 -2
  95. package/src/index.ts +1 -1
  96. package/src/slpk-extractor/helpers/{file-handle-provider.ts → file-handle-file.ts} +5 -5
  97. package/src/slpk-extractor/slpk-extractor.ts +3 -3
  98. package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
  99. package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
  100. package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +0 -1
@@ -4,18 +4,19 @@ exports.mergePreprocessData = exports.analyzeTileContent = exports.GLTF_PRIMITIV
4
4
  const types_1 = require("../types");
5
5
  const gltf_1 = require("@loaders.gl/gltf");
6
6
  const core_1 = require("@loaders.gl/core");
7
+ const constants_1 = require("../../constants");
7
8
  /**
8
9
  * glTF primitive modes
9
10
  * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
10
11
  */
11
12
  exports.GLTF_PRIMITIVE_MODES = [
12
- types_1.GltfPrimitiveModeString.POINTS,
13
- types_1.GltfPrimitiveModeString.LINES,
14
- types_1.GltfPrimitiveModeString.LINE_LOOP,
15
- types_1.GltfPrimitiveModeString.LINE_STRIP,
16
- types_1.GltfPrimitiveModeString.TRIANGLES,
17
- types_1.GltfPrimitiveModeString.TRIANGLE_STRIP,
18
- types_1.GltfPrimitiveModeString.TRIANGLE_FAN // 6
13
+ types_1.GLTFPrimitiveModeString.POINTS,
14
+ types_1.GLTFPrimitiveModeString.LINES,
15
+ types_1.GLTFPrimitiveModeString.LINE_LOOP,
16
+ types_1.GLTFPrimitiveModeString.LINE_STRIP,
17
+ types_1.GLTFPrimitiveModeString.TRIANGLES,
18
+ types_1.GLTFPrimitiveModeString.TRIANGLE_STRIP,
19
+ types_1.GLTFPrimitiveModeString.TRIANGLE_FAN // 6
19
20
  ];
20
21
  /**
21
22
  * Analyze tile content. This function is used during preprocess stage of
@@ -24,22 +25,26 @@ exports.GLTF_PRIMITIVE_MODES = [
24
25
  * @returns
25
26
  */
26
27
  const analyzeTileContent = async (tileContent) => {
27
- const result = {
28
- meshTopologyTypes: new Set()
28
+ const defaultResult = {
29
+ meshTopologyTypes: new Set(),
30
+ metadataClasses: new Set()
29
31
  };
30
32
  if (!tileContent?.gltfArrayBuffer) {
31
- return result;
33
+ return defaultResult;
32
34
  }
33
35
  const gltfData = await (0, core_1.parse)(tileContent.gltfArrayBuffer, gltf_1.GLTFLoader, {
34
36
  gltf: { normalize: false, loadBuffers: false, loadImages: false, decompressMeshes: false }
35
37
  });
36
38
  const gltf = gltfData.json;
37
39
  if (!gltf) {
38
- return result;
40
+ return defaultResult;
39
41
  }
40
- const meshTypes = getMeshTypesFromGltf(gltf);
41
- result.meshTopologyTypes = meshTypes;
42
- return result;
42
+ const meshTopologyTypes = getMeshTypesFromGltf(gltf);
43
+ const metadataClasses = getMetadataClassesFromGltf(gltf);
44
+ return {
45
+ meshTopologyTypes,
46
+ metadataClasses
47
+ };
43
48
  };
44
49
  exports.analyzeTileContent = analyzeTileContent;
45
50
  /**
@@ -60,6 +65,22 @@ const getMeshTypesFromGltf = (gltfJson) => {
60
65
  }
61
66
  return result;
62
67
  };
68
+ /**
69
+ * Get feature metadata classes from glTF
70
+ * @param gltfJson - JSON part of GLB content
71
+ * @returns array of classes
72
+ */
73
+ const getMetadataClassesFromGltf = (gltfJson) => {
74
+ const result = new Set();
75
+ const classes = gltfJson.extensions?.[constants_1.EXT_FEATURE_METADATA]
76
+ ?.schema?.classes;
77
+ if (classes) {
78
+ for (const classKey of Object.keys(classes)) {
79
+ result.add(classKey);
80
+ }
81
+ }
82
+ return result;
83
+ };
63
84
  /**
64
85
  * Merge object2 into object1
65
86
  * @param object1
@@ -71,5 +92,9 @@ const mergePreprocessData = (object1, object2) => {
71
92
  for (const type of object2.meshTopologyTypes) {
72
93
  object1.meshTopologyTypes.add(type);
73
94
  }
95
+ // Merge feature metadata classes
96
+ for (const metadataClass of object2.metadataClasses) {
97
+ object1.metadataClasses.add(metadataClass);
98
+ }
74
99
  };
75
100
  exports.mergePreprocessData = mergePreprocessData;
@@ -78,6 +78,8 @@ export default class I3SConverter {
78
78
  generateTextures?: boolean;
79
79
  generateBoundingVolumes?: boolean;
80
80
  instantNodeWriting?: boolean;
81
+ inquirer?: Promise<unknown>;
82
+ metadataClass?: string;
81
83
  }): Promise<string>;
82
84
  /**
83
85
  * Preprocess stage of the tile converter. Traverse all the tiles tree and
@@ -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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"}
@@ -60,8 +60,7 @@ const core_2 = require("@math.gl/core");
60
60
  const tiles_1 = require("@loaders.gl/tiles");
61
61
  const tileset_traversal_1 = require("./helpers/tileset-traversal");
62
62
  const preprocess_3d_tiles_1 = require("./helpers/preprocess-3d-tiles");
63
- const ION_DEFAULT_TOKEN = process_1.default.env?.IonToken || // eslint-disable-line
64
- 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line
63
+ const ION_DEFAULT_TOKEN = process_1.default.env?.IonToken;
65
64
  const HARDCODED_NODES_PER_PAGE = 64;
66
65
  const _3D_TILES = '3DTILES';
67
66
  const _3D_OBJECT_LAYER_TYPE = '3DObject';
@@ -97,7 +96,8 @@ class I3SConverter {
97
96
  this.writeQueue = new write_queue_1.default();
98
97
  this.compressList = null;
99
98
  this.preprocessData = {
100
- meshTopologyTypes: new Set()
99
+ meshTopologyTypes: new Set(),
100
+ metadataClasses: new Set()
101
101
  };
102
102
  this.nodePages = new node_pages_1.default(file_utils_1.writeFile, HARDCODED_NODES_PER_PAGE, this);
103
103
  this.options = {};
@@ -142,7 +142,7 @@ class I3SConverter {
142
142
  return constants_1.BROWSER_ERROR_MESSAGE;
143
143
  }
144
144
  this.conversionStartTime = process_1.default.hrtime();
145
- const { tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco = true, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, instantNodeWriting = false, mergeMaterials = true } = options;
145
+ const { tilesetName, slpk, egmFilePath, inputUrl, validate, outputPath, draco = true, sevenZipExe, maxDepth, token, generateTextures, generateBoundingVolumes, instantNodeWriting = false, mergeMaterials = true, inquirer, metadataClass } = options;
146
146
  this.options = {
147
147
  maxDepth,
148
148
  slpk,
@@ -152,7 +152,9 @@ class I3SConverter {
152
152
  token,
153
153
  inputUrl,
154
154
  instantNodeWriting,
155
- mergeMaterials
155
+ mergeMaterials,
156
+ inquirer,
157
+ metadataClass
156
158
  };
157
159
  this.compressList = (this.options.instantNodeWriting && []) || null;
158
160
  this.validate = Boolean(validate);
@@ -203,17 +205,45 @@ class I3SConverter {
203
205
  console.log(`Analyze source tileset`);
204
206
  const sourceRootTile = this.sourceTileset.root;
205
207
  await (0, tileset_traversal_1.traverseDatasetWith)(sourceRootTile, null, this.analyzeTile.bind(this), undefined, this.options.maxDepth);
206
- const { meshTopologyTypes } = this.preprocessData;
208
+ const { meshTopologyTypes, metadataClasses } = this.preprocessData;
207
209
  console.log(`------------------------------------------------`);
208
210
  console.log(`Preprocess results:`);
209
211
  console.log(`glTF mesh topology types: ${Array.from(meshTopologyTypes).join(', ')}`);
212
+ if (metadataClasses.size) {
213
+ console.log(`Feature metadata classes have been found: ${Array.from(metadataClasses).join(', ')}`);
214
+ }
215
+ else {
216
+ console.log('Feature metadata classes have not been found');
217
+ }
210
218
  console.log(`------------------------------------------------`);
211
- if (!meshTopologyTypes.has(types_1.GltfPrimitiveModeString.TRIANGLES) &&
212
- !meshTopologyTypes.has(types_1.GltfPrimitiveModeString.TRIANGLE_STRIP)) {
219
+ if (!meshTopologyTypes.has(types_1.GLTFPrimitiveModeString.TRIANGLES) &&
220
+ !meshTopologyTypes.has(types_1.GLTFPrimitiveModeString.TRIANGLE_STRIP)) {
213
221
  console.log('The tileset is of unsupported mesh topology types. The conversion will be interrupted.');
214
222
  console.log(`------------------------------------------------`);
215
223
  return false;
216
224
  }
225
+ if (metadataClasses.size > 1) {
226
+ if (this.options.metadataClass?.length) {
227
+ console.log(`${this.options.metadataClass} has been selected`);
228
+ }
229
+ else if (this.options.inquirer) {
230
+ const result = await this.options.inquirer.prompt([
231
+ {
232
+ name: 'metadataClass',
233
+ type: 'list',
234
+ message: 'Select feature metadata data class to convert...',
235
+ choices: Array.from(metadataClasses)
236
+ }
237
+ ]);
238
+ this.options.metadataClass = result.metadataClass;
239
+ console.log(`${result.metadataClass} has been selected`);
240
+ }
241
+ else {
242
+ console.log(`A feature metadata class has not been selected. Start the converter with option "--metadata-class". For example, "npx tile-converter ... --metadata-class ${Array.from(metadataClasses)[0]}"`);
243
+ console.log(`------------------------------------------------`);
244
+ return false;
245
+ }
246
+ }
217
247
  return true;
218
248
  }
219
249
  /**
@@ -448,7 +478,7 @@ class I3SConverter {
448
478
  }
449
479
  const sourceBoundingVolume = (0, tiles_1.createBoundingVolume)(sourceTile.boundingVolume, transformationMatrix, null);
450
480
  let boundingVolumes = (0, coordinate_converter_1.createBoundingVolumes)(sourceBoundingVolume, this.geoidHeightModel);
451
- const propertyTable = (0, geometry_converter_1.getPropertyTable)(tileContent);
481
+ const propertyTable = (0, geometry_converter_1.getPropertyTable)(tileContent, this.options.metadataClass);
452
482
  if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {
453
483
  this._convertPropertyTableToNodeAttributes(propertyTable);
454
484
  }
@@ -513,7 +543,7 @@ class I3SConverter {
513
543
  halfSize: [],
514
544
  quaternion: []
515
545
  };
516
- const resourcesData = await (0, geometry_converter_1.default)(tileContent, transformationMatrix, boundingVolume, async () => (await this.nodePages.push({ index: 0, obb: draftObb }, parentId)).index, propertyTable, this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules);
546
+ const resourcesData = await (0, geometry_converter_1.default)(tileContent, transformationMatrix, boundingVolume, async () => (await this.nodePages.push({ index: 0, obb: draftObb }, parentId)).index, propertyTable, this.featuresHashArray, this.layers0?.attributeStorageInfo, this.options.draco, this.generateBoundingVolumes, this.options.mergeMaterials, this.geoidHeightModel, this.loadOptions.modules, this.options.metadataClass);
517
547
  return resourcesData;
518
548
  }
519
549
  /**
@@ -147,7 +147,7 @@ export type TypedArrayConstructor = Uint8ArrayConstructor | Int8ArrayConstructor
147
147
  * glTF primitive modes (mesh topology types)
148
148
  * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
149
149
  */
150
- export declare enum GltfPrimitiveModeString {
150
+ export declare enum GLTFPrimitiveModeString {
151
151
  POINTS = "POINTS",
152
152
  LINES = "LINES",
153
153
  LINE_LOOP = "LINE_LOOP",
@@ -159,7 +159,9 @@ export declare enum GltfPrimitiveModeString {
159
159
  /** Preprocessed data gathered from child tiles binary content */
160
160
  export type PreprocessData = {
161
161
  /** Mesh topology types used in gltf primitives of the tileset */
162
- meshTopologyTypes: Set<GltfPrimitiveModeString>;
162
+ meshTopologyTypes: Set<GLTFPrimitiveModeString>;
163
+ /** Featrue metadata classes found in glTF extensions */
164
+ metadataClasses: Set<string>;
163
165
  };
164
166
  /** Texture image properties required for conversion */
165
167
  export type TextureImageProperties = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i3s-converter/types.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GltfPrimitiveModeString = void 0;
3
+ exports.GLTFPrimitiveModeString = void 0;
4
4
  /**
5
5
  * glTF primitive modes (mesh topology types)
6
6
  * @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
7
7
  */
8
- var GltfPrimitiveModeString;
9
- (function (GltfPrimitiveModeString) {
10
- GltfPrimitiveModeString["POINTS"] = "POINTS";
11
- GltfPrimitiveModeString["LINES"] = "LINES";
12
- GltfPrimitiveModeString["LINE_LOOP"] = "LINE_LOOP";
13
- GltfPrimitiveModeString["LINE_STRIP"] = "LINE_STRIP";
14
- GltfPrimitiveModeString["TRIANGLES"] = "TRIANGLES";
15
- GltfPrimitiveModeString["TRIANGLE_STRIP"] = "TRIANGLE_STRIP";
16
- GltfPrimitiveModeString["TRIANGLE_FAN"] = "TRIANGLE_FAN";
17
- })(GltfPrimitiveModeString || (exports.GltfPrimitiveModeString = GltfPrimitiveModeString = {}));
8
+ var GLTFPrimitiveModeString;
9
+ (function (GLTFPrimitiveModeString) {
10
+ GLTFPrimitiveModeString["POINTS"] = "POINTS";
11
+ GLTFPrimitiveModeString["LINES"] = "LINES";
12
+ GLTFPrimitiveModeString["LINE_LOOP"] = "LINE_LOOP";
13
+ GLTFPrimitiveModeString["LINE_STRIP"] = "LINE_STRIP";
14
+ GLTFPrimitiveModeString["TRIANGLES"] = "TRIANGLES";
15
+ GLTFPrimitiveModeString["TRIANGLE_STRIP"] = "TRIANGLE_STRIP";
16
+ GLTFPrimitiveModeString["TRIANGLE_FAN"] = "TRIANGLE_FAN";
17
+ })(GLTFPrimitiveModeString || (exports.GLTFPrimitiveModeString = GLTFPrimitiveModeString = {}));
@@ -10,7 +10,7 @@ let slpkArchive;
10
10
  * @param fullLayerPath - full path to SLPK file
11
11
  */
12
12
  const loadArchive = async (fullLayerPath) => {
13
- slpkArchive = await (0, i3s_1.parseSLPK)(await tile_converter_1.FileHandleProvider.from(fullLayerPath), (msg) => console.log(msg));
13
+ slpkArchive = await (0, i3s_1.parseSLPK)(await tile_converter_1.FileHandleFile.from(fullLayerPath), (msg) => console.log(msg));
14
14
  console.log('The server is ready to use');
15
15
  };
16
16
  exports.loadArchive = loadArchive;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { default as I3SConverter } from './i3s-converter/i3s-converter';
2
2
  export { default as Tiles3DConverter } from './3d-tiles-converter/3d-tiles-converter';
3
- export { FileHandleProvider } from './slpk-extractor/helpers/file-handle-provider';
3
+ export { FileHandleFile } from './slpk-extractor/helpers/file-handle-file';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAC,kBAAkB,EAAC,MAAM,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAC,cAAc,EAAC,MAAM,2CAA2C,CAAC"}
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileHandleProvider = exports.Tiles3DConverter = exports.I3SConverter = void 0;
6
+ exports.FileHandleFile = exports.Tiles3DConverter = exports.I3SConverter = void 0;
7
7
  var i3s_converter_1 = require("./i3s-converter/i3s-converter");
8
8
  Object.defineProperty(exports, "I3SConverter", { enumerable: true, get: function () { return __importDefault(i3s_converter_1).default; } });
9
9
  var _3d_tiles_converter_1 = require("./3d-tiles-converter/3d-tiles-converter");
10
10
  Object.defineProperty(exports, "Tiles3DConverter", { enumerable: true, get: function () { return __importDefault(_3d_tiles_converter_1).default; } });
11
- var file_handle_provider_1 = require("./slpk-extractor/helpers/file-handle-provider");
12
- Object.defineProperty(exports, "FileHandleProvider", { enumerable: true, get: function () { return file_handle_provider_1.FileHandleProvider; } });
11
+ var file_handle_file_1 = require("./slpk-extractor/helpers/file-handle-file");
12
+ Object.defineProperty(exports, "FileHandleFile", { enumerable: true, get: function () { return file_handle_file_1.FileHandleFile; } });
@@ -1,13 +1,13 @@
1
- import { FileProvider } from '@loaders.gl/i3s';
1
+ import { FileProvider } from '@loaders.gl/zip';
2
2
  /**
3
3
  * Provides file data using node fs library
4
4
  */
5
- export declare class FileHandleProvider implements FileProvider {
5
+ export declare class FileHandleFile implements FileProvider {
6
6
  /**
7
- * Returns a new copy of FileHandleProvider
7
+ * Returns a new copy of FileHandleFile
8
8
  * @param path The path to the file in file system
9
9
  */
10
- static from(path: string): Promise<FileHandleProvider>;
10
+ static from(path: string): Promise<FileHandleFile>;
11
11
  /**
12
12
  * The FileHandle from which data is provided
13
13
  */
@@ -48,4 +48,4 @@ export declare class FileHandleProvider implements FileProvider {
48
48
  */
49
49
  get length(): bigint;
50
50
  }
51
- //# sourceMappingURL=file-handle-provider.d.ts.map
51
+ //# sourceMappingURL=file-handle-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-handle-file.d.ts","sourceRoot":"","sources":["../../../src/slpk-extractor/helpers/file-handle-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD;;;OAGG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD;;OAEG;IACH,OAAO,CAAC,cAAc,CAAa;IAEnC;;OAEG;IACH,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO;IAKP;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/C;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD;;;;OAIG;IACG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAU1E;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileHandleProvider = void 0;
3
+ exports.FileHandleFile = void 0;
4
4
  const fs_promises_1 = require("./fs-promises");
5
5
  /**
6
6
  * Provides file data using node fs library
7
7
  */
8
- class FileHandleProvider {
8
+ class FileHandleFile {
9
9
  /**
10
- * Returns a new copy of FileHandleProvider
10
+ * Returns a new copy of FileHandleFile
11
11
  * @param path The path to the file in file system
12
12
  */
13
13
  static async from(path) {
14
14
  const fileDescriptor = await fs_promises_1.FileHandle.open(path);
15
- return new FileHandleProvider(fileDescriptor, fileDescriptor.stat.size);
15
+ return new FileHandleFile(fileDescriptor, fileDescriptor.stat.size);
16
16
  }
17
17
  constructor(fileDescriptor, size) {
18
18
  this.fileDescriptor = fileDescriptor;
@@ -83,4 +83,4 @@ class FileHandleProvider {
83
83
  return this.size;
84
84
  }
85
85
  }
86
- exports.FileHandleProvider = FileHandleProvider;
86
+ exports.FileHandleFile = FileHandleFile;
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@loaders.gl/core");
4
4
  const constants_1 = require("../constants");
5
- const file_handle_provider_1 = require("./helpers/file-handle-provider");
6
- const i3s_1 = require("@loaders.gl/i3s");
5
+ const file_handle_file_1 = require("./helpers/file-handle-file");
7
6
  const loader_utils_1 = require("@loaders.gl/loader-utils");
7
+ const zip_1 = require("@loaders.gl/zip");
8
8
  const compression_1 = require("@loaders.gl/compression");
9
9
  const file_utils_1 = require("../lib/utils/file-utils");
10
10
  const indexNames = [
@@ -28,14 +28,14 @@ class SLPKConverter {
28
28
  return constants_1.BROWSER_ERROR_MESSAGE;
29
29
  }
30
30
  const { inputUrl } = options;
31
- const provider = await file_handle_provider_1.FileHandleProvider.from(inputUrl);
32
- let localHeader = await (0, i3s_1.parseZipLocalFileHeader)(0n, provider);
31
+ const provider = await file_handle_file_1.FileHandleFile.from(inputUrl);
32
+ let localHeader = await (0, zip_1.parseZipLocalFileHeader)(0n, provider);
33
33
  while (localHeader) {
34
34
  await this.writeFile(await this.unGzip({
35
35
  name: this.correctIndexNames(localHeader.fileName),
36
36
  data: await provider.slice(localHeader.fileDataOffset, localHeader.fileDataOffset + localHeader.compressedSize)
37
37
  }), options.outputPath);
38
- localHeader = await (0, i3s_1.parseZipLocalFileHeader)(localHeader.fileDataOffset + localHeader?.compressedSize, provider);
38
+ localHeader = await (0, zip_1.parseZipLocalFileHeader)(localHeader.fileDataOffset + localHeader?.compressedSize, provider);
39
39
  }
40
40
  return 'success';
41
41
  }