fix(3d): complete ACIS solid rendering

- track per-face coverage and retain safe display fallbacks
- tessellate shared NURBS, pcurve trims and periodic surfaces
- pin the matching acadifc decoder revision
This commit is contained in:
Hakan Seven committed 2026-07-26 01:35:16 +03:00
1 parent a16914a22a
commit 34d0c377e2
8 files changed
+431 -113

No files matched your search

+5
View File
@@ -97,6 +97,10 @@ pub enum CurvedGen {
#[derive(Clone, Debug)]
pub struct MeshLodSet {
pub lods: Vec<MeshModel>,
/// True only when every source face produced triangles. False keeps
/// downstream solid-edit code from treating a display-only partial shell
/// as a closed, valid solid.
pub complete: bool,
/// Feature-edge line list (LOD-independent): pairs of endpoints, high half
/// of the double-single. Populated for ACIS solids (the B-rep face-boundary
/// edges) so their wireframe shows real edges rather than the triangulation.
@@ -146,6 +150,7 @@ impl MeshLodSet {
let (world_aabb, z_aabb) = compute_mesh_aabb(&lods);
Self {
lods,
complete: true,
edge_verts: Vec::new(),
edge_verts_low: Vec::new(),
curved_gens: Vec::new(),