pub mod shapelist;
pub mod sphere;
use std::sync::Arc;
use crate::{
HitData,
Ray
};
pub trait Shape: Sync + Send + 'static {
fn into_arc(self) -> Arc<dyn Shape>
where
Self: Shape + Sized + 'static {
Arc::new(self)
}
fn hit(&self, r: &Ray, t_min: f32, t_max: f32) -> Option<HitData>;
}