summaryrefslogtreecommitdiff
path: root/racer-tracer/src/material.rs
diff options
context:
space:
mode:
authorSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-01-18 21:01:24 +0100
committerSakarias Johansson <sakarias.johansson@goodbyekansas.com>2023-01-18 21:01:24 +0100
commit2abf48d9ce2968f7e999a9e0faf6d0ebfa752c7c (patch)
tree3b58470a7f382634187ba155a1ed398595247a35 /racer-tracer/src/material.rs
parent38e9bf130fc1075d576626f0c2ade582ccc3c57f (diff)
downloadracer-tracer-2abf48d9ce2968f7e999a9e0faf6d0ebfa752c7c.tar.gz
racer-tracer-2abf48d9ce2968f7e999a9e0faf6d0ebfa752c7c.tar.xz
racer-tracer-2abf48d9ce2968f7e999a9e0faf6d0ebfa752c7c.zip
🏙️ Add support for reading scene from file
Diffstat (limited to 'racer-tracer/src/material.rs')
-rw-r--r--racer-tracer/src/material.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/racer-tracer/src/material.rs b/racer-tracer/src/material.rs
index a43b29f..1092ebc 100644
--- a/racer-tracer/src/material.rs
+++ b/racer-tracer/src/material.rs
@@ -2,10 +2,14 @@ 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)>;
}