A refused face is tinted as well as ringed

A face whose boundary is only two small circles (a tube's bend) did not show where it is from
its ring alone: its triangles are now drawn over in the error colour at 35%, depth-tested like
the selected face's tint, under the ring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtL5Lzv2n8fyKqD61NCHSF
This commit is contained in:
jyviko
2026-10-28 15:45:00 -04:00
committed by Irakli Kourtis
parent 090fcec6ca
commit 025344dee2
+2
View File
@@ -3352,6 +3352,8 @@ pub(crate) fn build_highlight(app: &SolveApp) -> GpuScene {
// selection's outline.
for (body, face) in &app.viewport.refused_ring {
let Some(b) = st.body(body).filter(|_| app.session.body_visible(body)) else { continue };
// The face itself tinted (a face whose edges are two small circles still reads as one).
face_tris(&mut sc, &shown(b), *face, c4(t.error.gamma_multiply(0.35)), false);
let m = drawn_mesh(app, b);
let hidden = sc.color(c4(t.error.gamma_multiply(0.45)));
for (ei, e) in m.edges.iter().enumerate() {