@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.
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/converter-cli.js +10 -2
- package/dist/converter.min.js +172 -103
- package/dist/dist.min.js +151 -86
- package/dist/es5/constants.js +5 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +7 -2
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +21 -8
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +67 -59
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +38 -9
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +55 -13
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +11 -11
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/es5/index.js +3 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +9 -9
- package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/converter-cli.js +7 -2
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +18 -6
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +28 -20
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +28 -9
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +39 -9
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +9 -9
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +71 -71
- package/dist/esm/i3s-server/controllers/slpk-controller.js +2 -2
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +3 -3
- package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js +3 -3
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +11 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +33 -13
- package/dist/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +6 -3
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +42 -35
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +2 -2
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +39 -14
- package/dist/i3s-converter/i3s-converter.d.ts +2 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +40 -10
- package/dist/i3s-converter/types.d.ts +4 -2
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-converter/types.js +11 -11
- package/dist/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/slpk-extractor/helpers/{file-handle-provider.d.ts → file-handle-file.d.ts} +5 -5
- package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +1 -0
- package/dist/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +5 -5
- package/dist/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/slpk-extractor.min.js +32 -32
- package/package.json +15 -14
- package/src/constants.ts +3 -0
- package/src/converter-cli.ts +9 -2
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +39 -12
- package/src/i3s-converter/helpers/geometry-attributes.ts +15 -8
- package/src/i3s-converter/helpers/geometry-converter.ts +66 -35
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +48 -18
- package/src/i3s-converter/i3s-converter.ts +54 -12
- package/src/i3s-converter/types.ts +4 -2
- package/src/i3s-server/controllers/slpk-controller.ts +2 -2
- package/src/index.ts +1 -1
- package/src/slpk-extractor/helpers/{file-handle-provider.ts → file-handle-file.ts} +5 -5
- package/src/slpk-extractor/slpk-extractor.ts +3 -3
- package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- 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.
|
|
13
|
-
types_1.
|
|
14
|
-
types_1.
|
|
15
|
-
types_1.
|
|
16
|
-
types_1.
|
|
17
|
-
types_1.
|
|
18
|
-
types_1.
|
|
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
|
|
28
|
-
meshTopologyTypes: new Set()
|
|
28
|
+
const defaultResult = {
|
|
29
|
+
meshTopologyTypes: new Set(),
|
|
30
|
+
metadataClasses: new Set()
|
|
29
31
|
};
|
|
30
32
|
if (!tileContent?.gltfArrayBuffer) {
|
|
31
|
-
return
|
|
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
|
|
40
|
+
return defaultResult;
|
|
39
41
|
}
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
return
|
|
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":"AAEA,OAAO,KAAK,EAEV,oBAAoB,EAGpB,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAOrC,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAuB7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,qBAAqB,EAA8B,MAAM,iBAAiB,CAAC;AAGnF,OAAO,EAGL,cAAc,EAEf,MAAM,SAAS,CAAC;AAEjB,OAAO,UAAU,MAAM,0BAA0B,CAAC;
|
|
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
|
|
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.
|
|
212
|
-
!meshTopologyTypes.has(types_1.
|
|
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
|
|
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<
|
|
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":"AAAA,OAAO,EAAC,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,4CAA4C;AAC5C,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACjD;;OAEG;IACH,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC9C;;OAEG;IACH,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC5C;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,SAAS,EAAE,WAAW,CAAC;IACvB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAClC,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;OAEG;IACH,eAAe,EAAE,IAAI,GAAG,eAAe,CAAC;IACxC,4BAA4B;IAC5B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,SAAS,EAAE,WAAW,CAAC;IACvB,kCAAkC;IAClC,SAAS,EAAE,WAAW,CAAC;IACvB,kCAAkC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,4BAA4B,GAAG;IACzC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,8BAA8B;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,6CAA6C;IAC7C,SAAS,EAAE,WAAW,CAAC;IACvB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,oHAAoH;IACpH,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnD,kHAAkH;IAClH,sBAAsB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG;IACnC,2GAA2G;IAC3G,QAAQ,EAAE,qBAAqB,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,uCAAuC;IACvC,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC3B,uBAAuB;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4BAA4B;IAC5B,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,uBAAuB,GACvB,uBAAuB,CAAC;AAE5B;;;GAGG;AACH,oBAAY,uBAAuB;IACjC,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,iEAAiE;AACjE,MAAM,MAAM,cAAc,GAAG;IAC3B,iEAAiE;IACjE,iBAAiB,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;
|
|
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.
|
|
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
|
|
9
|
-
(function (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})(
|
|
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.
|
|
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 {
|
|
3
|
+
export { FileHandleFile } from './slpk-extractor/helpers/file-handle-file';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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
|
|
12
|
-
Object.defineProperty(exports, "
|
|
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/
|
|
1
|
+
import { FileProvider } from '@loaders.gl/zip';
|
|
2
2
|
/**
|
|
3
3
|
* Provides file data using node fs library
|
|
4
4
|
*/
|
|
5
|
-
export declare class
|
|
5
|
+
export declare class FileHandleFile implements FileProvider {
|
|
6
6
|
/**
|
|
7
|
-
* Returns a new copy of
|
|
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<
|
|
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-
|
|
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.
|
|
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
|
|
8
|
+
class FileHandleFile {
|
|
9
9
|
/**
|
|
10
|
-
* Returns a new copy of
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
32
|
-
let localHeader = await (0,
|
|
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,
|
|
38
|
+
localHeader = await (0, zip_1.parseZipLocalFileHeader)(localHeader.fileDataOffset + localHeader?.compressedSize, provider);
|
|
39
39
|
}
|
|
40
40
|
return 'success';
|
|
41
41
|
}
|