forked from 1b-agent/opencadstudio-upstream
Bug: arc_cubics turned a raw sweep angle from the DGN file straight into a piece count - ceil(sweep ...) as usize fed with_capacity, and an extreme sweep (huge, or +/-inf) produced a count that overflows usize allocation, causing a capacity overflow panic while attaching the file. Legal DGN arcs top out near 104 radians. Reproduce: 1. Craft a DGN with an arc element whose sweep angle is enormous (1e18+, +/-inf). 2. ATTACH it. 3. Before: "capacity overflow" at raw_vec during model build. 4. After: the arc clamps to +/-4096 quarter-turns (sign preserved, NaN passes through, +/-inf handled) and renders as many cubics as fit. Fix: The clamp happens in the one funnel (arc_cubics) before ceil: sweep is limited to +/-4096 x 90 degrees, far above the legal 104 rad but orders below what overflows the count. The sign of the sweep is preserved so arcs keep their direction, and NaN passes through to the existing empty-arc handling. Tests cover three sweep magnitudes (including +/-inf) building without overflow.