Feature mirrors and patterns: preserve replay and add Flip/Center placement (#1619)
Thanks @Karl-VonRichter.
This commit is contained in:
1 parent
f57a62deb7
commit
9422853cf9
11 files changed
+456
-41
No files matched your search
@@ -1721,6 +1721,14 @@ pub enum PatternKind {
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
#[walk(length = "Spacing 2")]
|
||||
spacing2: Option<Expr>,
|
||||
#[serde(default, skip_serializing_if = "default_pattern_alignment")]
|
||||
alignment: solidcraft_sketch::PatternAlignment,
|
||||
#[serde(default, skip_serializing_if = "default_pattern_alignment")]
|
||||
alignment2: solidcraft_sketch::PatternAlignment,
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
reversed: bool,
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
reversed2: bool,
|
||||
},
|
||||
Circular {
|
||||
origin: Position,
|
||||
@@ -1730,6 +1738,10 @@ pub enum PatternKind {
|
||||
/// Total angle (360 deg = evenly around).
|
||||
#[walk(angle = "Total angle")]
|
||||
angle: Expr,
|
||||
#[serde(default, skip_serializing_if = "default_pattern_alignment")]
|
||||
alignment: solidcraft_sketch::PatternAlignment,
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
reversed: bool,
|
||||
},
|
||||
/// Copies along a chain of sketch curves: instance k moves by path(k·spacing) − path(0),
|
||||
/// measured along the path from its start.
|
||||
@@ -1753,6 +1765,10 @@ pub enum PatternKind {
|
||||
},
|
||||
}
|
||||
|
||||
fn default_pattern_alignment(alignment: &solidcraft_sketch::PatternAlignment) -> bool {
|
||||
*alignment == solidcraft_sketch::PatternAlignment::Right
|
||||
}
|
||||
|
||||
fn z_axis() -> Dir {
|
||||
Dir(Vec3::Z)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user