diff --git a/Cargo.toml b/Cargo.toml index e764958..0bf8853 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,6 @@ edition = "2021" [dependencies] scad = "1.2.2" nalgebra = "0.16.14" + +[features] +film = [] diff --git a/Makefile b/Makefile index f88d7d5..d9aff11 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ build/testwing-clear.scad: build/testwing.scad sed 's/color("clear-blue")/color([0.0,1.0,1.0,1.0])/g' -i $@ build/assembly-clear.scad: build/assembly.scad - sed 's/color("clear-red")/color([1.0,0.0,0.0,0.9])/g' $< > $@ + cargo run --features film + sed 's/color("clear-red")/color([1.0,0.0,0.0,0.5])/g' $< > $@ sed 's/color("clear-blue")/color([0.0,1.0,0.0,0.9])/g' -i $@ sed 's/color("clear-blue")/color([0.0,0.0,1.0,0.9])/g' -i $@ diff --git a/src/main.rs b/src/main.rs index 9003ce8..e842af4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,6 +21,14 @@ fn main() { // main wing let mut wing_transform = mirrored_wing(&wing_airfoil, &WING); + + #[cfg(feature = "film")] { + let mut wrapped = scad!(Hull; wing_transform.visualization.clone()); + wrapped = scad!(Minkowski; wrapped); + wrapped.add_child(scad!(Sphere(Radius(1.0)))); + scad_file.add_object(scad!(NamedColor("clear-red".to_string()); wrapped)); + } + scad_file.add_object(wing_transform.visualization); parts.append(wing_transform.parts.as_mut()); @@ -40,10 +48,27 @@ fn main() { parts.append(struts.parts.as_mut()); parts.append(spar.parts.as_mut()); rudder = scad!(Translate(vec3(LENGTH-RUDDER_CHORD, 0.0, 0.0)); rudder); + + #[cfg(feature = "film")] { + let mut wrapped = scad!(Hull; rudder.clone()); + wrapped = scad!(Minkowski; wrapped); + wrapped.add_child(scad!(Sphere(Radius(1.0)))); + scad_file.add_object(scad!(NamedColor("clear-red".to_string()); wrapped)); + } + scad_file.add_object(rudder); // elevator let mut elevator = mirrored_wing(&wing_airfoil, &ELEVATOR); + + #[cfg(feature = "film")] { + let elevator = scad!(Translate(vec3(LENGTH - ELEVATOR_CHORD, 0.0, 0.0)); elevator.visualization.clone()); + let mut wrapped = scad!(Hull; elevator); + wrapped = scad!(Minkowski; wrapped); + wrapped.add_child(scad!(Sphere(Radius(1.0)))); + scad_file.add_object(scad!(NamedColor("clear-red".to_string()); wrapped)); + } + scad_file.add_object(scad!(Translate(vec3(LENGTH - ELEVATOR_CHORD, 0.0, 0.0)); elevator.visualization)); parts.append(&mut elevator.parts);