@loaders.gl/tile-converter 4.2.0-alpha.5 → 4.2.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js +42 -22
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js +4 -0
- package/dist/3d-tiles-converter/helpers/load-i3s.d.ts.map +1 -1
- package/dist/3d-tiles-converter/helpers/load-i3s.js +3 -28
- package/dist/converter-cli.js +4 -2
- package/dist/converter.min.cjs +95 -95
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +6 -1
- package/dist/i3s-converter/helpers/attribute-metadata-info.js +4 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +2 -1
- package/dist/i3s-converter/helpers/coordinate-converter.js +2 -2
- package/dist/i3s-converter/helpers/feature-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/feature-attributes.js +4 -2
- package/dist/i3s-converter/helpers/geometry-attributes.js +6 -5
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +15 -1
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +52 -12
- package/dist/i3s-converter/helpers/gltf-attributes.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/gltf-attributes.js +12 -14
- package/dist/i3s-converter/helpers/node-index-document.d.ts +8 -1
- package/dist/i3s-converter/helpers/node-index-document.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-index-document.js +18 -11
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/node-pages.js +27 -26
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/progress.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/progress.js +23 -18
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts +8 -1
- package/dist/i3s-converter/helpers/tileset-traversal.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/tileset-traversal.js +12 -3
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +190 -66
- package/dist/i3s-converter/json-templates/node.js +1 -1
- package/dist/i3s-server/bin/i3s-server.min.cjs +69 -69
- package/dist/i3s-server/bin/www.js +6 -4
- package/dist/i3s-server/controllers/slpk-controller.d.ts.map +1 -1
- package/dist/i3s-server/controllers/slpk-controller.js +3 -1
- package/dist/i3s-server/routes/index.js +11 -8
- package/dist/i3s-server/routes/slpk-router.d.ts.map +1 -1
- package/dist/i3s-server/routes/slpk-router.js +24 -18
- package/dist/i3s-server/utils/server-utils.d.ts.map +1 -1
- package/dist/i3s-server/utils/server-utils.js +8 -5
- package/dist/index.cjs +419 -211
- package/dist/index.cjs.map +3 -3
- package/dist/lib/utils/cli-utils.d.ts.map +1 -1
- package/dist/lib/utils/cli-utils.js +2 -0
- package/dist/lib/utils/conversion-dump.d.ts +9 -1
- package/dist/lib/utils/conversion-dump.d.ts.map +1 -1
- package/dist/lib/utils/conversion-dump.js +44 -21
- package/dist/lib/utils/file-utils.d.ts +1 -1
- package/dist/lib/utils/file-utils.d.ts.map +1 -1
- package/dist/lib/utils/file-utils.js +10 -12
- package/dist/lib/utils/statistic-utills.d.ts.map +1 -1
- package/dist/lib/utils/statistic-utills.js +5 -7
- package/dist/lib/utils/write-queue.d.ts.map +1 -1
- package/dist/lib/utils/write-queue.js +7 -3
- package/dist/pgm-loader.js +1 -1
- package/dist/slpk-extractor/slpk-extractor.d.ts.map +1 -1
- package/dist/slpk-extractor/slpk-extractor.js +2 -1
- package/dist/slpk-extractor-cli.d.ts.map +1 -1
- package/dist/slpk-extractor-cli.js +16 -8
- package/dist/slpk-extractor.min.cjs +1 -1
- package/package.json +23 -22
- package/src/3d-tiles-converter/3d-tiles-converter.ts +21 -10
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +1 -0
- package/src/3d-tiles-converter/helpers/load-i3s.ts +3 -27
- package/src/converter-cli.ts +4 -2
- package/src/deps-installer/deps-installer.ts +7 -0
- package/src/i3s-converter/helpers/attribute-metadata-info.ts +1 -1
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +3 -1
- package/src/i3s-converter/helpers/coordinate-converter.ts +2 -2
- package/src/i3s-converter/helpers/feature-attributes.ts +5 -2
- package/src/i3s-converter/helpers/geometry-attributes.ts +6 -5
- package/src/i3s-converter/helpers/geometry-converter.ts +118 -72
- package/src/i3s-converter/helpers/gltf-attributes.ts +12 -13
- package/src/i3s-converter/helpers/node-index-document.ts +18 -10
- package/src/i3s-converter/helpers/node-pages.ts +27 -29
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +1 -0
- package/src/i3s-converter/helpers/progress.ts +1 -0
- package/src/i3s-converter/helpers/tileset-traversal.ts +22 -13
- package/src/i3s-converter/i3s-converter.ts +173 -114
- package/src/i3s-converter/json-templates/node.ts +1 -1
- package/src/i3s-server/bin/www.ts +6 -4
- package/src/i3s-server/controllers/slpk-controller.ts +4 -2
- package/src/i3s-server/routes/index.ts +10 -7
- package/src/i3s-server/routes/slpk-router.ts +22 -16
- package/src/i3s-server/utils/server-utils.ts +6 -4
- package/src/lib/utils/cli-utils.ts +2 -0
- package/src/lib/utils/conversion-dump.ts +35 -20
- package/src/lib/utils/file-utils.ts +11 -11
- package/src/lib/utils/statistic-utills.ts +5 -6
- package/src/lib/utils/write-queue.ts +2 -2
- package/src/slpk-extractor/slpk-extractor.ts +2 -1
- package/src/slpk-extractor-cli.ts +16 -8
- package/src/lib/utils/statistic-utills.d.ts +0 -25
|
@@ -40,7 +40,7 @@ export default class Tiles3DConverter {
|
|
|
40
40
|
egmFilePath: string;
|
|
41
41
|
inquirer?: Promise<unknown>;
|
|
42
42
|
analyze?: boolean;
|
|
43
|
-
}): Promise<
|
|
43
|
+
}): Promise<string | undefined>;
|
|
44
44
|
/**
|
|
45
45
|
* Preprocess stage of the tile converter. Calculate number of nodes
|
|
46
46
|
* @returns true - the conversion is possible, false - the tileset's content is not supported
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3d-tiles-converter.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-converter/3d-tiles-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAcrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,cAAc,EAAwB,wCAAqC;AACnF,OAAO,EAAC,QAAQ,EAAC,6CAA0C;AAI3D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrD,YAAY,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAM;IAC3C,cAAc,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC5C,aAAa,EAAE,gBAAgB,CAU7B;IACF,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;;IAenB;;;;;;;;OAQG;
|
|
1
|
+
{"version":3,"file":"3d-tiles-converter.d.ts","sourceRoot":"","sources":["../../src/3d-tiles-converter/3d-tiles-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAGpB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAcrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,cAAc,EAAwB,wCAAqC;AACnF,OAAO,EAAC,QAAQ,EAAC,6CAA0C;AAI3D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,EAAE,KAAK,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrD,YAAY,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAM;IAC3C,cAAc,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC5C,aAAa,EAAE,gBAAgB,CAU7B;IACF,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,QAAQ,CAAC;;IAenB;;;;;;;;OAQG;IAEU,OAAO,CAAC,OAAO,EAAE;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoG/B;;;OAGG;YACW,oBAAoB;IA8BlC;;;;;;OAMG;YAEW,gBAAgB;IAyE9B;;;;;OAKG;YACW,YAAY;IAa1B;;;;;OAKG;YACW,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IAsBrC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;YACW,oBAAoB;IAsBlC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;OAGG;YACW,iBAAiB;CAgBhC"}
|
|
@@ -21,20 +21,29 @@ const I3S = 'I3S';
|
|
|
21
21
|
* Converter from i3s to 3d-tiles
|
|
22
22
|
*/
|
|
23
23
|
export default class Tiles3DConverter {
|
|
24
|
+
options;
|
|
25
|
+
tilesetPath;
|
|
26
|
+
vertexCounter;
|
|
27
|
+
conversionStartTime;
|
|
28
|
+
geoidHeightModel;
|
|
29
|
+
sourceTileset;
|
|
30
|
+
attributeStorageInfo;
|
|
31
|
+
workerSource = {};
|
|
32
|
+
slpkFilesystem = null;
|
|
33
|
+
loaderOptions = {
|
|
34
|
+
_nodeWorkers: true,
|
|
35
|
+
reuseWorkers: true,
|
|
36
|
+
// TODO: converter freezes in the end because of i3s-content-worker
|
|
37
|
+
worker: false,
|
|
38
|
+
i3s: { coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false },
|
|
39
|
+
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
40
|
+
'i3s-content': {
|
|
41
|
+
workerUrl: './modules/i3s/dist/i3s-content-worker-node.js'
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
conversionDump;
|
|
45
|
+
progress;
|
|
24
46
|
constructor() {
|
|
25
|
-
this.workerSource = {};
|
|
26
|
-
this.slpkFilesystem = null;
|
|
27
|
-
this.loaderOptions = {
|
|
28
|
-
_nodeWorkers: true,
|
|
29
|
-
reuseWorkers: true,
|
|
30
|
-
// TODO: converter freezes in the end because of i3s-content-worker
|
|
31
|
-
worker: false,
|
|
32
|
-
i3s: { coordinateSystem: COORDINATE_SYSTEM.LNGLAT_OFFSETS, decodeTextures: false },
|
|
33
|
-
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
34
|
-
'i3s-content': {
|
|
35
|
-
workerUrl: './modules/i3s/dist/i3s-content-worker-node.js'
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
47
|
this.options = {};
|
|
39
48
|
this.tilesetPath = '';
|
|
40
49
|
this.vertexCounter = 0;
|
|
@@ -55,9 +64,10 @@ export default class Tiles3DConverter {
|
|
|
55
64
|
* @param options.egmFilePath location of *.pgm file to convert heights from ellipsoidal to gravity-related format
|
|
56
65
|
* @param options.maxDepth The max tree depth of conversion
|
|
57
66
|
*/
|
|
67
|
+
// eslint-disable-next-line complexity, max-statements
|
|
58
68
|
async convert(options) {
|
|
59
69
|
if (isBrowser) {
|
|
60
|
-
console.log(BROWSER_ERROR_MESSAGE);
|
|
70
|
+
console.log(BROWSER_ERROR_MESSAGE); // eslint-disable-line no-console
|
|
61
71
|
return BROWSER_ERROR_MESSAGE;
|
|
62
72
|
}
|
|
63
73
|
const { inputUrl, outputPath, tilesetName, maxDepth, egmFilePath, inquirer, analyze } = options;
|
|
@@ -71,7 +81,7 @@ export default class Tiles3DConverter {
|
|
|
71
81
|
if (analyze || this.slpkFilesystem) {
|
|
72
82
|
preprocessResult = await this.preprocessConversion();
|
|
73
83
|
if (!preprocessResult || analyze) {
|
|
74
|
-
return;
|
|
84
|
+
return undefined;
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
87
|
this.progress.startMonitoring();
|
|
@@ -81,7 +91,7 @@ export default class Tiles3DConverter {
|
|
|
81
91
|
i3s: { ...this.loaderOptions.i3s, isTileset: true }
|
|
82
92
|
}, this.slpkFilesystem);
|
|
83
93
|
if (!this.sourceTileset) {
|
|
84
|
-
return;
|
|
94
|
+
return undefined;
|
|
85
95
|
}
|
|
86
96
|
const rootNode = this.sourceTileset?.root;
|
|
87
97
|
if (!rootNode.obb) {
|
|
@@ -131,29 +141,38 @@ export default class Tiles3DConverter {
|
|
|
131
141
|
// Clean up worker pools
|
|
132
142
|
const workerFarm = WorkerFarm.getWorkerFarm({});
|
|
133
143
|
workerFarm.destroy();
|
|
144
|
+
return undefined;
|
|
134
145
|
}
|
|
135
146
|
/**
|
|
136
147
|
* Preprocess stage of the tile converter. Calculate number of nodes
|
|
137
148
|
* @returns true - the conversion is possible, false - the tileset's content is not supported
|
|
138
149
|
*/
|
|
139
150
|
async preprocessConversion() {
|
|
140
|
-
|
|
151
|
+
// eslint-disable-next-line no-console
|
|
152
|
+
console.log('Analyze source layer');
|
|
141
153
|
const nodesCount = await getNodeCount(this.slpkFilesystem);
|
|
142
154
|
this.progress.stepsTotal = nodesCount;
|
|
143
|
-
console
|
|
144
|
-
console.log(
|
|
155
|
+
// eslint-disable-next-line no-console
|
|
156
|
+
console.log('------------------------------------------------');
|
|
157
|
+
// eslint-disable-next-line no-console
|
|
158
|
+
console.log('Preprocess results:');
|
|
145
159
|
if (this.slpkFilesystem) {
|
|
160
|
+
// eslint-disable-next-line no-console
|
|
146
161
|
console.log(`Node count: ${nodesCount}`);
|
|
147
162
|
if (nodesCount === 0) {
|
|
163
|
+
// eslint-disable-next-line no-console
|
|
148
164
|
console.log('Node count is 0. The conversion will be interrupted.');
|
|
149
|
-
console
|
|
165
|
+
// eslint-disable-next-line no-console
|
|
166
|
+
console.log('------------------------------------------------');
|
|
150
167
|
return false;
|
|
151
168
|
}
|
|
152
169
|
}
|
|
153
170
|
else {
|
|
154
|
-
|
|
171
|
+
// eslint-disable-next-line no-console
|
|
172
|
+
console.log('Node count cannot be calculated for the remote dataset');
|
|
155
173
|
}
|
|
156
|
-
console
|
|
174
|
+
// eslint-disable-next-line no-console
|
|
175
|
+
console.log('------------------------------------------------');
|
|
157
176
|
return true;
|
|
158
177
|
}
|
|
159
178
|
/**
|
|
@@ -163,6 +182,7 @@ export default class Tiles3DConverter {
|
|
|
163
182
|
* @param level a current level of a tree depth
|
|
164
183
|
* @param childNodeInfo child node to convert
|
|
165
184
|
*/
|
|
185
|
+
// eslint-disable-next-line complexity, max-statements
|
|
166
186
|
async convertChildNode(parentSourceNode, parentNode, level, childNodeInfo) {
|
|
167
187
|
let nextParentNode = parentNode;
|
|
168
188
|
const sourceChild = await this._loadChildNode(parentSourceNode, childNodeInfo);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"b3dm-converter.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/b3dm-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAIpD,OAAO,EAAC,OAAO,EAAU,MAAM,eAAe,CAAC;AAW/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,cAAc,CAAC;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC;IAEb;;;;OAIG;IACG,OAAO,CACX,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,GAAE,GAAU,GAC5B,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;OAIG;
|
|
1
|
+
{"version":3,"file":"b3dm-converter.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/b3dm-converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAIpD,OAAO,EAAC,OAAO,EAAU,MAAM,eAAe,CAAC;AAW/C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,cAAc,CAAC;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAEhC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,GAAG,CAAC;IAEb;;;;OAIG;IACG,OAAO,CACX,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,GAAE,GAAU,GAC5B,OAAO,CAAC,WAAW,CAAC;IAcvB;;;;OAIG;IAEG,SAAS,CACb,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,GAAG,GACrB,OAAO,CAAC,WAAW,CAAC;IAuEvB;;;;;OAKG;IACG,oBAAoB,CAAC,WAAW,KAAA,EAAE,aAAa,KAAA,EAAE,WAAW,KAAA;IAmBlE;;;;;;;OAOG;IACH,mBAAmB,CAAC,cAAc,KAAA,EAAE,eAAe,KAAA,EAAE,kBAAkB,KAAA,EAAE,WAAW,KAAA;IAepF;;;;;;;OAOG;IACH,wBAAwB,CAAC,eAAe,KAAA;IAMxC;;;;OAIG;IACH,eAAe,CAAC,UAAU,KAAA,EAAE,iBAAiB,KAAA;IAoB7C;;;;;OAKG;IACH,yBAAyB,CAAC,MAAM,KAAA;IAchC;;;;;OAKG;IACH,iCAAiC,CAAC,QAAQ,KAAA,EAAE,YAAY,KAAA;IAgCxD;;;;;OAKG;IACH,eAAe,CAAC,kBAAkB,KAAA,EAAE,YAAY,KAAA;IA+ChD,kBAAkB,CAAC,UAAU,KAAA;IAY7B,aAAa,CAAC,OAAO,KAAA;CAItB"}
|
|
@@ -14,6 +14,9 @@ const ROUGHNESS_FACTOR_DEFAULT = 1.0;
|
|
|
14
14
|
* Converts content of an I3S node to *.b3dm's file content
|
|
15
15
|
*/
|
|
16
16
|
export default class B3dmConverter {
|
|
17
|
+
// @ts-expect-error
|
|
18
|
+
rtcCenter;
|
|
19
|
+
i3sTile;
|
|
17
20
|
/**
|
|
18
21
|
* The starter of content conversion
|
|
19
22
|
* @param i3sTile - Tile3D instance for I3S node
|
|
@@ -34,6 +37,7 @@ export default class B3dmConverter {
|
|
|
34
37
|
* @param i3sTile - Tile3D instance for I3S node
|
|
35
38
|
* @returns - encoded glb content
|
|
36
39
|
*/
|
|
40
|
+
// eslint-disable-next-line max-statements
|
|
37
41
|
async buildGLTF(i3sAttributesData, featureAttributes) {
|
|
38
42
|
const { tileContent, textureFormat, box } = i3sAttributesData;
|
|
39
43
|
const { material, attributes, indices: originalIndices, modelMatrix } = tileContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-i3s.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/load-i3s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,kBACV,gBAAgB,GAAG,IAAI,cAC1B,aAAa,sBACL,gBAAgB,kBACpB,aAAa,GAAG,IAAI,KACnC,QAAQ,cAAc,GAAG,IAAI,CAuC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"load-i3s.d.ts","sourceRoot":"","sources":["../../../src/3d-tiles-converter/helpers/load-i3s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,aAAa,EAA0B,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,kBACV,gBAAgB,GAAG,IAAI,cAC1B,aAAa,sBACL,gBAAgB,kBACpB,aAAa,GAAG,IAAI,KACnC,QAAQ,cAAc,GAAG,IAAI,CAuC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUzE;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,aAAa,GAAG,IAAI,gBAUjC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAapF"}
|
|
@@ -50,8 +50,7 @@ export const loadI3SContent = async (sourceTileset, sourceTile, tilesetLoadOptio
|
|
|
50
50
|
*/
|
|
51
51
|
export async function openSLPK(url) {
|
|
52
52
|
const slpkUrlParts = url.split('.slpk');
|
|
53
|
-
|
|
54
|
-
if (slpkFileName) {
|
|
53
|
+
if (slpkUrlParts.length === 2) {
|
|
55
54
|
const slpkFileName = `${slpkUrlParts[0]}.slpk`;
|
|
56
55
|
const fileProvider = new FileHandleFile(slpkFileName);
|
|
57
56
|
const archive = await parseSLPKArchive(fileProvider, undefined, slpkFileName);
|
|
@@ -68,10 +67,8 @@ export async function openSLPK(url) {
|
|
|
68
67
|
* @returns i3s resource
|
|
69
68
|
*/
|
|
70
69
|
export async function loadFromArchive(url, loader, loadOptions, fileSystem) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const { internalFileName } = slpkUrlParts;
|
|
74
|
-
const content = await load(internalFileName, loader, {
|
|
70
|
+
if (fileSystem !== null) {
|
|
71
|
+
const content = await load(url, loader, {
|
|
75
72
|
...loadOptions,
|
|
76
73
|
fetch: fileSystem.fetch.bind(fileSystem)
|
|
77
74
|
});
|
|
@@ -79,28 +76,6 @@ export async function loadFromArchive(url, loader, loadOptions, fileSystem) {
|
|
|
79
76
|
}
|
|
80
77
|
return await load(url, loader, loadOptions);
|
|
81
78
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Extract slpk file path and internal from the url
|
|
84
|
-
* For example, for `./path/to/file.slpk/nodes/0` it returns
|
|
85
|
-
* {"slpkFileName": "./path/to/file.slpk", "internalFileName": "/nodes/0" }
|
|
86
|
-
* @param url full internal file path
|
|
87
|
-
* @returns object with internal slpk file parts
|
|
88
|
-
*/
|
|
89
|
-
function getSlpkUrlParts(url) {
|
|
90
|
-
const slpkUrlParts = url.split('.slpk');
|
|
91
|
-
let result;
|
|
92
|
-
// Not '.slpk'. The file will be loaded with global fetch function
|
|
93
|
-
if (slpkUrlParts.length === 1) {
|
|
94
|
-
result = null;
|
|
95
|
-
}
|
|
96
|
-
else if (slpkUrlParts.length === 2) {
|
|
97
|
-
result = { slpkFileName: `${slpkUrlParts[0]}.slpk`, internalFileName: slpkUrlParts[1].slice(1) };
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
throw new Error('Unexpected URL format');
|
|
101
|
-
}
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
79
|
/**
|
|
105
80
|
* Get nodes count inside SLPK
|
|
106
81
|
* @param fileSystem - file system of SLPK
|
package/dist/converter-cli.js
CHANGED
|
@@ -7,6 +7,7 @@ import { DepsInstaller } from "./deps-installer/deps-installer.js";
|
|
|
7
7
|
import { getBooleanValue, getIntegerValue, getStringValue, getURLValue, validateOptionsWithEqual } from "./lib/utils/cli-utils.js";
|
|
8
8
|
import { addOneFile, composeHashFile, makeZipCDHeaderIterator } from '@loaders.gl/zip';
|
|
9
9
|
import { FileHandleFile } from '@loaders.gl/loader-utils';
|
|
10
|
+
// @ts-ignore
|
|
10
11
|
import { copyFile } from 'node:fs/promises';
|
|
11
12
|
const TILESET_TYPE = {
|
|
12
13
|
I3S: 'I3S',
|
|
@@ -16,6 +17,7 @@ const TILESET_TYPE = {
|
|
|
16
17
|
* CLI entry
|
|
17
18
|
* @returns
|
|
18
19
|
*/
|
|
20
|
+
// eslint-disable-next-line max-statements
|
|
19
21
|
async function main() {
|
|
20
22
|
const [, , ...args] = process.argv;
|
|
21
23
|
if (args.length === 0) {
|
|
@@ -71,7 +73,7 @@ async function main() {
|
|
|
71
73
|
}
|
|
72
74
|
main().catch((error) => {
|
|
73
75
|
console.log(error);
|
|
74
|
-
process.exit(1); // eslint-disable-line
|
|
76
|
+
process.exit(1); // eslint-disable-line no-process-exit
|
|
75
77
|
});
|
|
76
78
|
/**
|
|
77
79
|
* Output for `npx tile-converter --help`
|
|
@@ -179,7 +181,7 @@ function validateOptions(options, addHash) {
|
|
|
179
181
|
}
|
|
180
182
|
if (exceptions.length) {
|
|
181
183
|
exceptions.forEach((exeption) => exeption());
|
|
182
|
-
process.exit(1);
|
|
184
|
+
process.exit(1); // eslint-disable-line no-process-exit
|
|
183
185
|
}
|
|
184
186
|
return options;
|
|
185
187
|
}
|