(m: &Mat4, p: [f32; 3])
| 613 | Rotate(f32, f32, f32), |
| 614 | Scale(f32, f32, f32), |
| 615 | Mirror(f32, f32, f32), |
| 616 | Multmatrix([f32; 16]), |
| 617 | Render(u32), |
| 618 | Modifier(crate::scad_export::ModifierKind), |
| 619 | } |
| 620 | |
| 621 | /// Wrap a node in accumulated transforms (innermost first → outermost last). |
| 622 | fn apply_wrappers(mut node: ScadNode, wrappers: &[WrapFn]) -> ScadNode { |
| 623 | for w in wrappers.iter().rev() { |
| 624 | node = match w { |
| 625 | WrapFn::Translate(x, y, z) => ScadNode::Translate { |