1
Fork 0

remove global state (not thoroughly checked)

This commit is contained in:
Andy Killorin 2023-11-05 16:02:48 -06:00
parent 61d9fc0579
commit 21061d47f3
Signed by: ank
GPG key ID: B6241CA3B552BCA4

View file

@ -10,8 +10,6 @@ use std::ops::Range;
mod constants;
mod selig;
static PARTS: Mutex<Vec<ScadObject>> = Mutex::new(Vec::new());
fn main() {
let mut scad_file = ScadFile::new();
//let mut parts: Vec<ScadObject> = Vec::new();
@ -70,7 +68,7 @@ fn main() {
scad_file.write_to_file(String::from("build/assembly.scad"));
for (idx, part) in PARTS.lock().unwrap().clone().into_iter().enumerate() {
for (idx, part) in parts.clone().into_iter().enumerate() {
let mut file = ScadFile::new();
file.set_detail(50);
file.add_object(part);
@ -79,7 +77,7 @@ fn main() {
let mut allparts = ScadFile::new();
allparts.set_detail(50);
for (idx, part) in PARTS.lock().unwrap().iter().cloned().enumerate() {
for (idx, part) in parts.into_iter().enumerate() {
allparts.add_object(scad!(Translate2d(vec2(0.0, INF * idx as f32)); part));
}
allparts.write_to_file("build/allparts.scad".to_string());
@ -256,7 +254,6 @@ fn extrude_strut(
strut_hole: ScadObject,
width: f32,
chord: f32,
register: bool,
) -> ScadObject {
let mut strut_shape = scad!(Difference);
strut_shape.add_child(shape);
@ -272,9 +269,6 @@ fn extrude_strut(
let unit: Vector3<f32> = Vector3::new(1.0, 1.0, 1.0);
let scaled = scad!(Scale(unit * chord); shape);
if register {
register_part(scaled.clone());
}
let strut = scad!(LinearExtrude(extrude); scaled);
let rotated = scad!(Rotate(90.0, vec3(1.0, 0.0, 0.0)); strut);
rotated
@ -303,14 +297,14 @@ fn topspar_negative(airfoil: &SeligFile, chord: f32, range: Range<f32>) -> ScadO
}
last = Some(current);
}
register_part(mask.clone());
mask
}
// TODO: shift to trangle design
fn spar(length: f32, center: bool) -> ScadObject {
let mut spar = scad!(Union);
register_part(scad!(Square(vec2(length, SPAR_SIDE_WIDTH * 3.0))));
//register_part(scad!(Square(vec2(length, SPAR_SIDE_WIDTH * 3.0))));
for i in 0..3 {
let mut panel = scad!(Cube(vec3(SPAR_SIDE_WIDTH, length, CARDBOARD_WIDTH)));
@ -326,10 +320,6 @@ fn spar(length: f32, center: bool) -> ScadObject {
spar
}
fn register_part(part: ScadObject) {
PARTS.lock().unwrap().push(part);
}
fn lerp(a: f32, b: f32, x: f32) -> f32 {
a * (1.0 - x) + b * x
}
@ -379,7 +369,7 @@ fn topwing_spar(
let spacing = strut_idx as f32 * gap;
let shape = topspar_negative(aerofoil, chord, 0.1..0.6);
let extruded = extrude_strut(shape.clone(), scad!(Union), CARDBOARD_WIDTH, chord, false);
let extruded = extrude_strut(shape.clone(), scad!(Union), CARDBOARD_WIDTH, chord);
let mut transform = scad!(Translate(vec3(0.0, spacing, 0.0)));
transform.add_child(extruded);