diff options
author | Julian T <julian@jtle.dk> | 2021-03-06 16:15:26 +0100 |
---|---|---|
committer | Julian T <julian@jtle.dk> | 2021-03-06 16:15:26 +0100 |
commit | 3f78cacdd93036dbd51bae77d5d8e5430a0bc75f (patch) | |
tree | 13d5e08607f44f30664ee9ced3fb139faeb5a67d /src/world/container.rs | |
parent | da1c3949a449f3fafe579c62ff6b14ffd993a197 (diff) |
Several changes to bounding boxes
For instance removed support for shapes without a bounding box, such as
planes
Diffstat (limited to 'src/world/container.rs')
-rw-r--r-- | src/world/container.rs | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/world/container.rs b/src/world/container.rs deleted file mode 100644 index 6f8c182..0000000 --- a/src/world/container.rs +++ /dev/null @@ -1,43 +0,0 @@ -use super::{Hittable, Intersection}; -use crate::core::Ray; - -pub struct HittableList { - elems: Vec<Box<dyn Hittable>>, -} - -impl HittableList { - pub fn new() -> Self { - Self::default() - } - - pub fn add(&mut self, h: Box<dyn Hittable>) { - self.elems.push(h); - } -} - -impl Hittable for HittableList { - fn intersect(&self, ray: &Ray) -> Option<Intersection> { - let mut min: Option<Intersection> = None; - - for e in self.elems.iter() { - if let Some(i) = e.intersect(&ray) { - match min { - // Do nothing if distance is bigger than min - Some(ref min_i) if min_i.t < i.t => {}, - // If no existing min or closer than - _ => min = Some(i), - } - } - } - - min - } -} - -impl Default for HittableList { - fn default() -> Self { - Self { - elems: Vec::new(), - } - } -} |