fix(assimp): write real file extensions for non-extension format ids
Follow-up to the previous commit. With `-f<format>` now passed to assimp, every advertised target exports successfully — but seven of them still produce files with assimp's internal format id as the extension, which no third-party viewer recognises: glb2 → .glb2 (really binary glTF 2.0, should be .glb) gltf2 → .gltf2 (text glTF 2.0, should be .gltf) objnomtl → .objnomtl (OBJ without .mtl, should be .obj) stlb → .stlb (binary STL, should be .stl) plyb → .plyb (binary PLY, should be .ply) fbxa → .fbxa (ASCII FBX, should be .fbx) assjson → .assjson (JSON dump, should be .json) Map these in `normalizeOutputFiletype`, the same helper that already handles jpeg→jpg, latex→tex, markdown→md. The format id on `convertTo` is untouched, so `assimp -f<id>` still selects the correct encoding/variant — only the output filename changes. assbin, assxml, and pbrt are both the format id and the canonical extension, so they need no mapping.
This commit is contained in:
parent
0048e92417
commit
7d915ca603
1 changed files with 18 additions and 0 deletions
|
|
@ -31,6 +31,24 @@ export const normalizeOutputFiletype = (filetype: string): string => {
|
|||
case "markdown_mmd":
|
||||
case "markdown":
|
||||
return "md";
|
||||
// assimp format ids that aren't real file extensions — map to the
|
||||
// canonical extension for the underlying format so the output file
|
||||
// opens in third-party viewers. The format id is still passed to
|
||||
// `assimp export -f<id>` so the right encoding/variant is produced.
|
||||
case "glb2":
|
||||
return "glb";
|
||||
case "gltf2":
|
||||
return "gltf";
|
||||
case "objnomtl":
|
||||
return "obj";
|
||||
case "stlb":
|
||||
return "stl";
|
||||
case "plyb":
|
||||
return "ply";
|
||||
case "fbxa":
|
||||
return "fbx";
|
||||
case "assjson":
|
||||
return "json";
|
||||
default:
|
||||
return lowercaseFiletype;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue