From b8dddd7498ad82267f53e43109f0bb2821172863 Mon Sep 17 00:00:00 2001 From: Matthew Gordon Date: Sat, 20 Jun 2020 12:04:44 -0400 Subject: [PATCH] Pass image size as command line parameter Instead of being hard-coded --- Cargo.toml | 1 + src/main.rs | 38 ++++++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 5f009ef..93dc7a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ rayon = "1.3" sdl2 = "0.32" simba = "0.1.2" csv = "1.1.3" +clap = "2.33" [dependencies.nalgebra] version = "0.21" diff --git a/src/main.rs b/src/main.rs index fd3197d..b68993d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,12 +6,14 @@ use sdl2::pixels::PixelFormatEnum; use sdl2::rect::Rect; use sdl2::render::{Canvas, Texture}; use sdl2::Sdl; -use std::time::Duration; use nalgebra::{Point3, Vector3}; +use clap::Arg; + use std::path::Path; use std::sync::{mpsc, Arc}; +use std::time::Duration; use vanrijn::colour::{ColourRgbF, NamedColour}; use vanrijn::image::{ClampingToneMapper, ImageRgbU8, ToneMapper}; @@ -19,11 +21,38 @@ use vanrijn::materials::{LambertianMaterial, PhongMaterial, ReflectiveMaterial}; use vanrijn::mesh::load_obj; use vanrijn::partial_render_scene; use vanrijn::raycasting::{ - Aggregate, BoundingVolumeHierarchy, Plane, Primitive, Sphere, + Aggregate, BoundingVolumeHierarchy, Plane, Primitive, Sphere, Transform, }; use vanrijn::scene::Scene; +use vanrijn::util::polyhedra::generate_dodecahedron; use vanrijn::util::{Tile, TileIterator}; +#[derive(Debug)] +struct CommandLineParameters { + width: usize, + height: usize, +} + +fn parse_args() -> CommandLineParameters { + let matches = clap::App::new("vanrijn") + .version("alpha") + .author("Matthew Gordon Result<(), Box> { - let image_width = 640usize; - let image_height = 480usize; + let parameters = parse_args(); + let image_width = parameters.width; + let image_height = parameters.height; let (sdl_context, mut canvas) = init_canvas(image_width, image_height)?;