use crate::environment::Environment;
use crate::light::Light;
use crate::object::Object;
#[derive(Default)]
pub struct Scene {
pub objects: Vec<Object>,
pub lights: Vec<Light>,
pub environment: Environment,
}
impl Scene {
pub fn new() -> Self {
Default::default()
}
}
pub trait SceneAdd<T> {
fn add(&mut self, node: T);
}
impl SceneAdd<Object> for Scene {
fn add(&mut self, object: Object) {
self.objects.push(object);
}
}
impl SceneAdd<Light> for Scene {
fn add(&mut self, light: Light) {
self.lights.push(light);
}
}