fix(wipeout): use real clip vertices, correct image-pixel→WCS mapping
acadrust's DWG reader read the wipeout/raster-image clip boundary points only to advance the bit cursor and then discarded them, so every wipeout fell back to `Wipeout::new()`'s default placeholder rectangle (`-0.5..0.5`). For files that store the real polygon mask in clip vertices (anteen.dwg's `DIMBLOCK` style: u_vector ≈ 643k, size = (1, 1), clip polygon ~0.0016×0.0033 in pixel space), the wipeout rendered at the full image bbox — hundreds of thousands of units wide — instead of the intended ~1000×2000 mask. Pinned to the new `fix/wipeout-clip-vertices` acadrust branch (carries the upstream parser fix). On the H7CAD side, the polygon mapping now follows the DXF convention: x_off = (clip.x + size.x/2) × u_vec y_off = (size.y/2 − clip.y) × v_vec (image-Y points down) …in `wipeout_boundary_2d` (fill), `Wipeout::to_truck` (border line), and `Wipeout::grips` (vertex handles) so all three stay in sync. The fill path also explicitly closes the polygon loop — without it the GPU `in_polygon` ray-cast skipped the v(n-1)→v(0) edge and the solid mask bled far past the boundary. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
2357b39a1d
commit
8e6491d4a8
4 changed files with 49 additions and 25 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -42,7 +42,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
|
|||
[[package]]
|
||||
name = "acadrust"
|
||||
version = "0.3.4"
|
||||
source = "git+https://github.com/HakanSeven12/acadrust?branch=fix%2Fhatch-boundary-handle-cap#62716f51e05aba084533f65e0eb3cfd3c7cc1dfa"
|
||||
source = "git+https://github.com/HakanSeven12/acadrust?branch=fix%2Fwipeout-clip-vertices#15e434f733a4c970d5d680de89acc2cb381accbe"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"anyhow",
|
||||
|
|
|
|||
Loading…
Reference in a new issue