blob: 1092ebc5af7945d9c022bc4b142488cd2aa35bd0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
pub mod dialectric;
pub mod lambertian;
pub mod metal;
use std::sync::Arc;
use crate::geometry::HitRecord;
use crate::ray::Ray;
use crate::vec3::Color;
pub type SharedMaterial = Arc<Box<dyn Material>>;
pub trait Material: Send + Sync {
fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Ray, Color)>;
}
|