Booleans stay in their component: a join, cut or intersect without explicit targets changes only its own component's bodies (and what it made), auto join/cut looks only at the active component; any feature takes participants: [bodies] to reach other components ("*" = every body); file format 5 gives older features in designs with components participants ["*"] so they keep their shape
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
2886399215
commit
7c611aec0c
5 files changed
+84
-5
No files matched your search
@@ -1045,6 +1045,10 @@ pub struct Feature {
|
||||
/// Persistent names of the faces at the feature's face points (`FeatureKind::face_points`).
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
pub face_names: Vec<String>,
|
||||
/// Bodies a join/cut/intersect may change (any component); empty = the feature's own
|
||||
/// component's bodies.
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
pub participants: Vec<String>,
|
||||
#[serde(flatten)]
|
||||
pub kind: FeatureKind,
|
||||
}
|
||||
@@ -1324,6 +1328,7 @@ impl Document {
|
||||
edge_refs: Vec::new(),
|
||||
edge_names: Vec::new(),
|
||||
face_names: Vec::new(),
|
||||
participants: Vec::new(),
|
||||
kind,
|
||||
};
|
||||
match self.marker {
|
||||
|
||||
Reference in new issue
Block a user