forked from 1b-agent/opencadstudio-upstream
Restore complex-linetype embedded shapes: ltypeshp is converted from the old CXF shape file to LFF (assets/fonts/ltypeshp.lff), with the bulge moved to the LibreCAD preceding-segment convention. The LFF parser now keeps named shapes (blocks whose label is a word, e.g. BOX/CIRC1/ZIG) in a separate map since their codepoints collide, exposed via lff::shape(); complex_lt::emit_shape draws them again at the pen position. Missing glyphs now fall back through the chosen family -> unicode -> iso3098, so Turkish letters (Ğ ğ Ş ş İ) render in any font (dotless ı is the lone gap iso3098 lacks). Co-Authored-By: Claude Opus 4.8 <[email protected]>