diff options
-rw-r--r-- | src/calculus.rs | 52 | ||||
-rw-r--r-- | src/camera.rs | 2 | ||||
-rw-r--r-- | src/common.rs | 2 | ||||
-rw-r--r-- | src/interval.rs | 50 | ||||
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | src/object.rs | 2 |
6 files changed, 54 insertions, 55 deletions
diff --git a/src/calculus.rs b/src/calculus.rs index 12b0f3d..30ada32 100644 --- a/src/calculus.rs +++ b/src/calculus.rs @@ -184,4 +184,54 @@ pub mod calculus { 0.0) } -}
\ No newline at end of file +} + +pub struct Interval { + pub min: f32, + pub max: f32, +} + +#[allow(unused)] +impl Interval { + pub fn new(min: f32, max: f32) -> Self { + Self { min, max } + } + + pub fn size(&self) -> f32 { + self.max - self.min + } + + pub fn contains(&self, x: f32) -> bool { + self.min <= x && x <= self.max + } + + pub fn surrounds(&self, x: f32) -> bool { + self.min < x && x < self.max + } + + pub fn clamp(&self, x: f32) -> f32 { + if x < self.min { return self.min } + if x > self.max { return self.max } + x + } +} + +impl Default for Interval { + fn default() -> Self { + Self { + min: f32::NEG_INFINITY, + max: f32::INFINITY + } + } +} + +#[allow(unused)] +pub const INTERVAL_EMPTY: Interval = Interval { + min: f32::INFINITY, + max: f32::NEG_INFINITY +}; +#[allow(unused)] +pub const INTERVAL_UNIVERSE: Interval = Interval { + min: f32::NEG_INFINITY, + max: f32::INFINITY +};
\ No newline at end of file diff --git a/src/camera.rs b/src/camera.rs index 1b96575..0832bff 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -1,6 +1,6 @@ use crate::calculus::calculus::{deg2rad, sample_square, Point3, Ray, Vec3}; use crate::common::{get_image_height, Color, DisplayBuffer, Pixel, ASPECT_RATIO, DEFOCUS_ANGLE, FOCUS_DIST, IMG_WIDTH, LOOK_AT, LOOK_FROM, MAX_DEPTH, SAMPLES_PER_PIXEL, VFOV, VUP}; -use crate::interval::Interval; +use crate::calculus::Interval; use crate::object::{HitRecord, Hittable, HittableList}; pub struct Camera { diff --git a/src/common.rs b/src/common.rs index 92b8203..4ea9e72 100644 --- a/src/common.rs +++ b/src/common.rs @@ -1,5 +1,5 @@ use crate::calculus::calculus::{Point3, Vec3}; -use crate::interval::Interval; +use crate::calculus::Interval; // "Ideal" aspect ratio, allowing fraction pub const ASPECT_RATIO: f32 = 16.0 / 9.0; diff --git a/src/interval.rs b/src/interval.rs deleted file mode 100644 index 21c5f6e..0000000 --- a/src/interval.rs +++ /dev/null @@ -1,50 +0,0 @@ -pub struct Interval { - pub min: f32, - pub max: f32, -} - -#[allow(unused)] -impl Interval { - pub fn new(min: f32, max: f32) -> Self { - Self { min, max } - } - - pub fn size(&self) -> f32 { - self.max - self.min - } - - pub fn contains(&self, x: f32) -> bool { - self.min <= x && x <= self.max - } - - pub fn surrounds(&self, x: f32) -> bool { - self.min < x && x < self.max - } - - pub fn clamp(&self, x: f32) -> f32 { - if x < self.min { return self.min } - if x > self.max { return self.max } - x - } -} - -impl Default for Interval { - fn default() -> Self { - Self { - min: f32::NEG_INFINITY, - max: f32::INFINITY - } - } -} - -#[allow(unused)] -pub const INTERVAL_EMPTY: Interval = Interval { - min: f32::INFINITY, - max: f32::NEG_INFINITY -}; - -#[allow(unused)] -pub const INTERVAL_UNIVERSE: Interval = Interval { - min: f32::NEG_INFINITY, - max: f32::INFINITY -}; diff --git a/src/main.rs b/src/main.rs index 8c632f7..69542fb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,6 @@ mod common; mod calculus; mod camera; mod object; -mod interval; mod material; use crate::calculus::calculus::Point3; diff --git a/src/object.rs b/src/object.rs index 0161d38..4bc1853 100644 --- a/src/object.rs +++ b/src/object.rs @@ -1,6 +1,6 @@ use crate::calculus::calculus::{Point3, Ray, Vec3}; use crate::common::Color; -use crate::interval::Interval; +use crate::calculus::Interval; use crate::material::{Material, MaterialType}; #[derive(Clone)] |