From c4a6380bbd3eceef1ad6b2ba7a46cf256d60fece Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sun, 5 Nov 2023 15:28:16 -0600 Subject: [PATCH] implemented non-centered spar --- src/main.rs | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main.rs b/src/main.rs index 786e170..de09630 100644 --- a/src/main.rs +++ b/src/main.rs @@ -155,18 +155,32 @@ fn mirrored_wing(wing_airfoil: &SeligFile, wing_config: &WingConfig) -> Construc /// Returns (struts, spar) fn wing(wing_airfoil: &SeligFile, wing_config: &WingConfig, spar: SparType) -> (Construct, Construct) { - let (mut wing, wing_parts) = wing_struts( + let (wing, wing_parts) = wing_struts( wing_airfoil, &wing_config, - spar, + &spar, ).tup(); // TODO: other spar types - let top_spar = topwing_spar( - wing_airfoil, - wing_config, - ); - let mut spar = scad!(Difference; top_spar); - spar.add_child(wing.clone()); + let spar = match spar { + SparType::None => { + + scad!(Union) + }, + SparType::Top => { + let top_spar = topwing_spar( + wing_airfoil, + wing_config, + ); + let mut spar = scad!(Difference; top_spar); + spar.add_child(wing.clone()); + spar + }, + SparType::Center => { + // TODO: negative in struts + // TODO: taper + centered_cube(vec3(wing_config.chord * 0.5, wing_config.length, CARDBOARD_WIDTH), (false, false, true)) + }, + }; let spar_flat = scad!(Projection(false); spar.clone()); @@ -313,7 +327,7 @@ fn lerp(a: f32, b: f32, x: f32) -> f32 { fn wing_struts( aerofoil: &SeligFile, config: &WingConfig, - spar: SparType, + spar: &SparType, ) -> Construct { let mut wing = scad!(Translate(vec3(0.0, 0.0, 0.0))); let mut parts = Vec::new();