forked from 1b-agent/opencadstudio-upstream
Three related bugs in tessellate_sub_local and expand_defn: 1. Wire folding lost per-segment colour. Multi-wire tessellator output was concatenated (NaN-separated) into a single LocalWire using the first wire's colour. Inline \C/\c MTEXT colour overrides inside block definitions rendered in the entity colour instead of the override colour. Fix: tessellate_sub_local returns Vec<LocalWire>; each wire from the tessellator becomes its own LocalWire with its own colour. 2. fill_tris_low was never forwarded. The double-single precision path was silently degraded on cached wires. Fix: fill_tris_low forwarded from WireModel through to LocalWire and BatchEntry. debug_assert_eq! added at emit site to catch future invariant violations. 3. Fill-only wires hit the text LOD ladder. MTEXT outline/fill pairs produce separate LocalWires; the fill-only wire was routed through emit_text_baseline/emit_greeked_text which ignore fill_tris (invisible double-draw). Fix: is_fill_only field on LocalWire bypasses the LOD ladder. Also fixes StyleKey::fill_only being hardcoded false at both emit_wire call sites (latent batch misclassification).