use microcad_core::*;
use microcad_lang::{builtin::*, model::*};
#[derive(Debug)]
pub struct Scale;
impl BuiltinWorkbenchDefinition for Scale {
fn id() -> &'static str {
"scale"
}
fn kind() -> BuiltinWorkbenchKind {
BuiltinWorkbenchKind::Transform
}
fn workpiece_function() -> &'static BuiltinWorkpieceFn {
use microcad_lang::value::*;
&|args| {
Ok(BuiltinWorkpieceOutput::Transform(AffineTransform::Scale(
Vec3::new(args.get("x"), args.get("y"), args.get("z")),
)))
}
}
fn parameters() -> ParameterValueList {
[
parameter!(x: Scalar),
parameter!(y: Scalar),
parameter!(z: Scalar),
]
.into_iter()
.collect()
}
}