1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use std::sync::Arc;

use crate::core::object::*;
use crate::core::material::*;
use crate::core::geometry::*;

pub trait Shape:
	Object
{
    fn geometry(&self) -> Arc<Geometry + 'static>;
    fn material(&self) -> Arc<Material + 'static>;

    fn set_geometry(&mut self, geometry: Arc<Geometry + 'static>);
    fn set_material(&mut self, material: Arc<Material + 'static>);
}