aboutsummaryrefslogtreecommitdiff
path: root/src/world/container/list.rs
diff options
context:
space:
mode:
authorJulian T <julian@jtle.dk>2021-08-05 15:44:40 +0200
committerJulian T <julian@jtle.dk>2021-08-05 15:44:40 +0200
commit3ef8f4d918406eec6bdc29e0ebd883fabfac9b2e (patch)
treeaa4b1aac1e165821c16f222ebfb9212a9740e98b /src/world/container/list.rs
parent45119506c0293fdde6cef35f6e6f82d4055b46b6 (diff)
Add picture for c5505ab84820248c6dba35fc06aef9e0ced183derendered
Diffstat (limited to 'src/world/container/list.rs')
-rw-r--r--src/world/container/list.rs56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/world/container/list.rs b/src/world/container/list.rs
deleted file mode 100644
index 22b6d88..0000000
--- a/src/world/container/list.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-use crate::world::{Object, Hittable, Intersection};
-use crate::core::{Bound3f, Ray};
-
-
-pub struct HittableList {
- elems: Vec<Object>,
-}
-
-impl HittableList {
- pub fn new() -> Self {
- Self::default()
- }
-
- pub fn add(&mut self, h: Object) {
- 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
- }
-
- fn bounding_box(&self) -> Bound3f {
- let mut bound: Bound3f = Bound3f::EMPTY;
-
- for e in self.elems.iter() {
- let eb = e.bounding_box();
- bound = bound.combine(&eb);
- }
-
- bound
- }
-}
-
-impl Default for HittableList {
- fn default() -> Self {
- Self {
- elems: Vec::new(),
- }
- }
-}
-