feat(xclip): clip block references to their SPATIAL_FILTER boundary
Block references carrying an XCLIP spatial filter were drawn in full, ignoring the clip boundary. Resolve the filter through the INSERT's extension dictionary (ACAD_FILTER -> SPATIAL) and clip the expanded block geometry to the boundary polygon: polylines are split into the inside runs, fill triangles are clipped, and snap/key vertices outside the boundary are dropped. The boundary vertices live in the clip-definition space, so they are placed with world = T_insert * (inverse_block_transform * vert); this keeps the clip correct even when the insert was rescaled after the clip was created. Bumps acadrust to the build that decodes SPATIAL_FILTER. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
ec865a95aa
commit
dd1ec3ad40
3 changed files with 473 additions and 2 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -57,7 +57,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
|
|||
[[package]]
|
||||
name = "acadrust"
|
||||
version = "0.3.4"
|
||||
source = "git+https://github.com/HakanSeven12/acadrust?branch=main#3e2afad2d0baf03be584c28111040e13870b9e70"
|
||||
source = "git+https://github.com/HakanSeven12/acadrust?branch=main#3d2d209dc42190ef14dca6a852eec95cb00806b6"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"anyhow",
|
||||
|
|
@ -3179,7 +3179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "0b577e2d69827c4740cba2b52efaad1c4cc7c73042860b199710b3575c68438d"
|
||||
dependencies = [
|
||||
"bytecount",
|
||||
"memchr 2.8.1",
|
||||
"memchr 1.0.2",
|
||||
"nom 8.0.0",
|
||||
]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue