forked from 1b-agent/opencadstudio-upstream
Trimming a Ray or an XLine mapped it onto a virtual 0..=1 across a million-unit stand-in for infinity, and read the surviving ends back with a threshold — 0.9999 of that stand-in meant "still infinite". Both now use the curve's own parameter, `t = 0` at the base and advancing by one direction vector per unit, with no upper limit. An end that reaches infinity says so, and `cut_intervals` bounds the target by its extent instead of always by 0..=1. The stand-in was not merely inelegant. A million units is the same order as the coordinates themselves in a survey drawing, so a boundary beyond it was silently missed, and the threshold meant a cut very near the far end was rounded to "unbounded" and kept the wrong shape. Implied and extended boundary edges become infinite lines rather than segments stretched by the same constant. That is what they always meant — the boundary cuts wherever its line reaches — and the kernel solves it exactly. The hover preview shared the virtual mapping and would have been left feeding the old parameters into the new interpretation, so it is converted with the rest. TRIM_EXTENT survives only in `fence_sample_xy`, where a finite polyline is genuinely what the fence test needs. Co-Authored-By: Claude Opus 5 <[email protected]>