feat(solid history): booleans keep the solids they joined editable

With SOLIDHIST on, UNION, SUBTRACT and INTERSECT no longer reduce the
result's history to a frozen body: each solid's history joins the
result's under a boolean step, in the order the result applied them.
The Properties palette lists a composite's solids under Operand; the one
chosen shows its own geometry rows and grips, placed where it sits in
the composite, and editing it replays the whole tree. A composite read
from a file keeps its saved body; the tree is replayed only on edits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hakan SevenandClaude Opus 5.5 committed 2026-10-07 11:14:13 +03:00
1 parent d1f3bf3013
commit d3033caf24
28 files changed
+383 -52

No files matched your search

+1 -1
View File
@@ -149,7 +149,7 @@ fn entity_history_handle(entity: &EntityType) -> Option<Handle> {
.filter(|handle| handle.is_valid())
}
fn history_operation_name(operation: &SolidHistoryOperation) -> &'static str {
pub(crate) fn history_operation_name(operation: &SolidHistoryOperation) -> &'static str {
match operation {
SolidHistoryOperation::Unknown => "Unknown",
SolidHistoryOperation::Box(_) => "Box",