fix(solid): normalize quadrilateral edges

Accept perimeter and DXF Z point orders while keeping screen fill and interaction on the WCS-aware geometry.

Refs #617
This commit is contained in:
Hakan Seven 2026-08-01 20:31:28 +03:00
commit 7b50d6a5a3
5 changed files with 151 additions and 70 deletions

View file

@ -5989,13 +5989,16 @@ impl Scene {
}
fn hatch_visible_for_interaction(&self, handle: Handle) -> bool {
let Some(common) = self
.document
.get_entity(handle)
.map(|entity| entity.common())
else {
let Some(entity) = self.document.get_entity(handle) else {
return false;
};
// Use the SOLID's WCS-aware wire fill for interaction as well as
// drawing. Its cached HatchModel is flattened to XY for plotting and
// must not leave an invisible selection target at z=0 (#617).
if matches!(entity, EntityType::Solid(_)) {
return false;
}
let common = entity.common();
if common.invisible
|| self.entity_temporarily_hidden(handle)
|| self.layer_hidden(&common.layer)