From dbf545107024893436778362684ca69d9a8a3a97 Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sun, 18 Jul 2021 11:49:56 -0700 Subject: [PATCH] eoc7: make command flag for choosing rendering strategy. --- rtchallenge/examples/eoc7.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rtchallenge/examples/eoc7.rs b/rtchallenge/examples/eoc7.rs index 726857c..959b005 100644 --- a/rtchallenge/examples/eoc7.rs +++ b/rtchallenge/examples/eoc7.rs @@ -1,9 +1,10 @@ use std::{f32::consts::PI, time::Instant}; use anyhow::Result; +use structopt::StructOpt; use rtchallenge::{ - camera::Camera, + camera::{Camera, RenderStrategy}, lights::PointLight, materials::Material, matrices::Matrix4x4, @@ -14,8 +15,17 @@ use rtchallenge::{ WHITE, }; +/// End of chapter 7 challenge. +#[derive(StructOpt, Debug)] +#[structopt(name = "eoc7")] +struct Opt { + #[structopt(long, default_value = "rayon")] + render_strategy: RenderStrategy, +} + fn main() -> Result<()> { let start = Instant::now(); + let opt = Opt::from_args(); let width = 1024; let height = 1024; let light_position = Tuple::point(-10., 10., -10.); @@ -26,6 +36,7 @@ fn main() -> Result<()> { let to = Tuple::point(0., 1., 0.); let up = Tuple::point(0., 1., 0.); camera.set_transform(view_transform(from, to, up)); + camera.render_strategy = opt.render_strategy; let mut floor = Sphere::default(); floor.set_transform(Matrix4x4::scaling(10., 0.01, 10.));