/** * 2D file-format detection for the 2D+3D merge dispatch. * * 2D = CAD drawings (dwg/dxf) → rendered by Viewer2D via the WASM parser. * Everything else (glb/gltf/obj/fbx/dae/ifc/ply/3ds/3dm) is 3D → ThreeDViewer. * Kept dependency-free so both the dropzone and the controller can import it * without pulling in either viewer. */ export const DWG_EXT = /\.dwg$/i; export const DXF_EXT = /\.dxf$/i; /** True if the name is a binary DWG (parsed by the WASM parser). */ export function isDwg(name: string): boolean { return DWG_EXT.test(name); } /** True if the name is a text DXF (parsed by the dxf-parser JS lib). */ export function isDxf(name: string): boolean { return DXF_EXT.test(name); } /** True if the file/URL name is a 2D CAD drawing (dwg or dxf) → Viewer2D. */ export function is2D(name: string): boolean { return DWG_EXT.test(name) || DXF_EXT.test(name); }