Delete Face (face.delete, and faces in the Delete selection): a timeline feature that removes faces and heals the gap from the neighbouring planes through kernel::delete_faces; a picked face brings the rest of its surface (both halves of a hole's wall); face picks are stored by persistent name; a face its neighbours can't close is refused with the kernel's reason
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
9219eb5dc1
commit
3db6119cc6
11 files changed
+117
-6
No files matched your search
@@ -231,11 +231,11 @@ fn delete_key_handles_every_kind_and_asks_about_dependents() {
|
||||
assert!(app.session.doc.features.len() < n);
|
||||
app.run("edit.undo", json!({})).unwrap();
|
||||
assert_eq!(app.session.doc.features.len(), n);
|
||||
// A face alone: not available yet, nothing changes.
|
||||
// A face its neighbours can't close (a side of the plate): refused, nothing changes.
|
||||
let b0 = app.session.model.state().bodies[0].name.clone();
|
||||
app.run("select.set", json!({"items": [{"type": "face", "body": b0, "index": 0, "point": [0, 0, 0]}]})).unwrap();
|
||||
crate::delete::delete_selection(&mut app);
|
||||
assert!(app.status.as_ref().is_some_and(|s| s.0.contains("not available yet")), "{:?}", app.status);
|
||||
assert!(app.status.as_ref().is_some_and(|s| s.0.contains("Delete Face")), "{:?}", app.status);
|
||||
assert_eq!(app.session.doc.features.len(), n);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user