Compute bounding box and sphere from line segment start/end positions.
Uses the projection's precomputed fused-scan bounds when present
(skipping the O(N) per-segment main-thread scan), else a direct
min/max pass without temporary geometry or array allocations.
bounds are expanded conservatively by maxWidth to capture the
rendered footprint. Without this, frustum culling and camera-framing
reject thick lines whose centerline is just outside the view but
whose pixels are still on-screen. Width here is treated as a
half-width (matches the rendering spec); using the full width keeps
the picking ray pre-cull conservative. Shared by the non-pool paths
here and the pool adapter (gpu-buffer-pool/lines-adapter.ts).
Compute bounding box and sphere from line segment start/end positions. Uses the projection's precomputed fused-scan
boundswhen present (skipping the O(N) per-segment main-thread scan), else a direct min/max pass without temporary geometry or array allocations.bounds are expanded conservatively by
maxWidthto capture the rendered footprint. Without this, frustum culling and camera-framing reject thick lines whose centerline is just outside the view but whose pixels are still on-screen. Width here is treated as a half-width (matches the rendering spec); using the full width keeps the picking ray pre-cull conservative. Shared by the non-pool paths here and the pool adapter (gpu-buffer-pool/lines-adapter.ts).