feat: add Cesium semantic inspection mode

This commit is contained in:
2026-08-05 13:24:39 +08:00
parent 400525dd07
commit 607d8fc0b1
18 changed files with 542 additions and 56 deletions

View File

@@ -144,13 +144,31 @@ function writeCompressedMetadata(sourceMetadata, outputGlb, outputMetadata) {
const metadata = JSON.parse(fs.readFileSync(sourceMetadata, "utf8"));
const glbName = path.basename(outputGlb);
metadata.asset = glbName;
metadata.assets = [{
id: "main",
label: "Compressed Scene",
type: "model",
url: glbName,
enabled: true,
}];
const assets = Array.isArray(metadata.assets) ? metadata.assets : [];
const main = assets.find((asset) => asset.id === "main");
metadata.assets = assets.length
? assets.map((asset) => asset.id === "main" ? {
...asset,
label: "Compressed Scene",
url: glbName,
enabled: true,
} : asset)
: [{
id: "main",
label: "Compressed Scene",
type: "model",
url: glbName,
enabled: true,
}];
if (!main && assets.length) {
metadata.assets.unshift({
id: "main",
label: "Compressed Scene",
type: "model",
url: glbName,
enabled: true,
});
}
if (typeof metadata.cesium_js === "string") {
metadata.cesium_js = metadata.cesium_js.replace(
/url: '[^']+\.glb'/,
@@ -270,9 +288,13 @@ function main() {
}
}
try {
main();
} catch (error) {
console.error(error.message);
process.exit(1);
if (require.main === module) {
try {
main();
} catch (error) {
console.error(error.message);
process.exit(1);
}
}
module.exports = { writeCompressedMetadata };