Tests: a drafted cube side leaves the bottom and the opposite side Kept, the rest Modified

Drafting a cube's side about its bottom edge (on the neutral plane) tilts the side and moves the
edges it shares with the top and the two faces beside it: those four are trimmed differently
(Modified); the bottom and the opposite side are untouched (Kept). Truck called all six
Modified; SMLib's history called the moved neighbours Kept. Needs the SMLib fix "history: a face
whose edges an operation moved is Modified, not Kept" (SMLib branch devgreen-kernel-records,
cdaf205) and a pin bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jyviko
2026-10-28 22:43:03 -04:00
committed by Irakli Kourtis
parent 9d0fb564e0
commit bb4299e565
+4 -1
View File
@@ -280,7 +280,10 @@ fn draft_tilts_faces() {
let side = Vec3::new(40.0, 15.0, 10.0);
let r = crate::draft(&b, &[side], &Plane::XY, Vec3::Z, 5f64.to_radians()).unwrap();
let h = verified(&r, &b, Reach { made: 0.0, moved: 2.0 });
assert_eq!(changes(h), [0, 6, 0, 0, 0]);
// The side tilts about its bottom edge (on the neutral plane z = 0); the top and the two
// faces beside it lose a wedge along their moved edges. The bottom and the opposite side
// are untouched.
assert_eq!(changes(h), [2, 4, 0, 0, 0]);
assert_eq!(with(h, &[face(face_at(&b, side))]).len(), 1);
// Walls of a body that is not convex.
let l = ell();