forked from 1b-agent/opencadstudio-upstream
Extends the solid feature-edge behaviour to mesh entities (PolyfaceMesh / PolygonMesh): their triangulation outline edges now render black when a filled-with-edges mode is active, and keep the entity colour in the lines-only modes (wireframe / hidden-line). A mesh entity emits its face fill and its outline edges as separate WireModels sharing the entity handle: the fill carries fill_tris plus a non-empty fill_tris_low (real 3D depth), the edge carries points. The old is_3d_mesh_edge flag keyed on `!fill_tris.is_empty()`, which tagged the points-less fill wire rather than the edge wire, so the edges were never recognised. upload_wires now collects the handles of real 3D fill wires and flags any points-wire sharing one as the mesh edge (text greek, whose fill has an empty fill_tris_low, is excluded — matching the face3d test). The wire draw loop then routes flagged edges through a new black wire pipeline (fs_black) in filled-with-edges modes. fs_black lives in wire_indexed.wgsl (the native shader) and wire.wgsl (the wasm shader). Co-Authored-By: Claude Opus 4.8 <[email protected]>