diff options
Diffstat (limited to 'src/world/shapes/mod.rs')
-rw-r--r-- | src/world/shapes/mod.rs | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/src/world/shapes/mod.rs b/src/world/shapes/mod.rs index 6e4b2ce..d15840c 100644 --- a/src/world/shapes/mod.rs +++ b/src/world/shapes/mod.rs @@ -1,32 +1,10 @@ mod sphere; mod rectangle; +mod r#box; pub use sphere::Sphere; pub use rectangle::{Rect, Plane}; +pub use r#box::BoxShp; use crate::world::{Hittable, Intersection}; use crate::core::{Bound3f, Ray}; - -pub enum Shape { - Sphere(Sphere), -} - -impl Hittable for Shape { - fn intersect(&self, ray: &Ray) -> Option<Intersection> { - match self { - Self::Sphere(sph) => sph.intersect(ray) - } - } - - fn bounding_box(&self) -> Bound3f { - match self { - Self::Sphere(sph) => sph.bounding_box() - } - } -} - -impl From<Sphere> for Shape { - fn from(s: Sphere) -> Self { - Self::Sphere(s) - } -} |