forked from 1b-agent/opencadstudio-upstream
A dot in an LTYPE pattern is a zero-length element. The pattern resolver encoded it as a tiny `0.01 * scale` world-length dash, which had two bad effects: it was sub-pixel at normal zoom so the dash LOD saw the pattern's smallest feature drop below one pixel and collapsed the whole line to solid, and at larger LTSCALE it left only invisible sub-pixel dots between big gaps. Either way dotted and dash-dot linetypes were never visible; only plain dashed (no zero elements) worked. Keep dots as literal 0.0 so they no longer drag `min_elem` down, and render each as a fixed ~1.5 px mark in the wire shader (pixel-snapped via world_per_pixel, mirroring the hatch shader's dot handling). The shader tells a real dot from trailing array padding by element count — the index of the last non-zero element plus one — so no producer needs a sentinel. Co-Authored-By: Claude Opus 4.8 <[email protected]>