transform a sketch (#5867)
* transform a sketch Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix test Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 * A snapshot a day keeps the bugs away! 📷🐛 * A snapshot a day keeps the bugs away! 📷🐛 * A snapshot a day keeps the bugs away! 📷🐛 * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * A snapshot a day keeps the bugs away! 📷🐛 * A snapshot a day keeps the bugs away! 📷🐛 * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
@ -1459,13 +1459,27 @@ impl<'a> FromKclValue<'a> for crate::execution::Solid {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> FromKclValue<'a> for crate::execution::SolidOrImportedGeometry {
|
||||
impl<'a> FromKclValue<'a> for crate::execution::SolidOrSketchOrImportedGeometry {
|
||||
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
|
||||
match arg {
|
||||
KclValue::Solid { value } => Some(Self::SolidSet(vec![(**value).clone()])),
|
||||
KclValue::HomArray { value, .. } => Some(Self::SolidSet(
|
||||
value.iter().map(|v| v.as_solid().unwrap().clone()).collect(),
|
||||
)),
|
||||
KclValue::Sketch { value } => Some(Self::SketchSet(vec![(**value).clone()])),
|
||||
KclValue::HomArray { value, .. } => {
|
||||
let mut solids = vec![];
|
||||
let mut sketches = vec![];
|
||||
for item in value {
|
||||
match item {
|
||||
KclValue::Solid { value } => solids.push((**value).clone()),
|
||||
KclValue::Sketch { value } => sketches.push((**value).clone()),
|
||||
_ => return None,
|
||||
}
|
||||
}
|
||||
if !solids.is_empty() {
|
||||
Some(Self::SolidSet(solids))
|
||||
} else {
|
||||
Some(Self::SketchSet(sketches))
|
||||
}
|
||||
}
|
||||
KclValue::ImportedGeometry(value) => Some(Self::ImportedGeometry(Box::new(value.clone()))),
|
||||
_ => None,
|
||||
}
|
||||
|
Reference in New Issue
Block a user