forked from 1b-agent/opencadstudio-upstream
fix(mesh): hide subdivision Mesh face fill in wireframe mode
The `fill_is_3d` classifier tagged only PolyfaceMesh / PolygonMesh as real 3-D surfaces (fill routed to the 3-D buffer, drawn shaded-only). The modern subdivision Mesh was missing, so its face fill fell into the 2-D overlay buffer that draws in every view mode — showing the shaded faces in wireframe. Add `EntityType::Mesh` to the classifier. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
ef19f898b0
commit
e0f5b29941
1 file changed
+9
-5
@@ -1107,13 +1107,17 @@ pub fn tessellate(
|
||||
.map(|[x, y, z]| [x, y, z])
|
||||
.collect();
|
||||
let (fill_tris, fill_tris_low) = points_to_ds(te.fill_tris);
|
||||
// Only a real 3-D mesh surface (PolyfaceMesh / PolygonMesh) fill
|
||||
// renders shaded-only with hidden-surface depth; every other
|
||||
// `fill_tris` here (a SOLID's filled quad — e.g. a `_BoxFilled`
|
||||
// arrowhead) is a flat 2-D overlay visible in every view mode.
|
||||
// Only a real 3-D mesh surface (PolyfaceMesh / PolygonMesh /
|
||||
// the modern subdivision Mesh) fill renders shaded-only with
|
||||
// hidden-surface depth; every other `fill_tris` here (a SOLID's
|
||||
// filled quad — e.g. a `_BoxFilled` arrowhead) is a flat 2-D
|
||||
// overlay visible in every view mode. Leaving `Mesh` out drops
|
||||
// its face fill into the 2-D buffer, so it drew in wireframe too.
|
||||
let fill_is_3d = matches!(
|
||||
entity,
|
||||
EntityType::PolyfaceMesh(_) | EntityType::PolygonMesh(_)
|
||||
EntityType::PolyfaceMesh(_)
|
||||
| EntityType::PolygonMesh(_)
|
||||
| EntityType::Mesh(_)
|
||||
);
|
||||
// Thickness walls ride on the wire that carries their edges, not
|
||||
// on a wire of their own: they are pick geometry for that entity,
|
||||
|
||||
Reference in new issue
Block a user