Moved node & material to own files
This commit is contained in:
48
src/material.rs
Normal file
48
src/material.rs
Normal file
@@ -0,0 +1,48 @@
|
||||
#[allow(dead_code)]
|
||||
use nalgebra::Vector3;
|
||||
// MATERIAL -----------------------------------------------------------------
|
||||
#[derive(Clone)]
|
||||
pub struct Material {
|
||||
pub kd: Vector3<f32>,
|
||||
pub ks: Vector3<f32>,
|
||||
pub shininess: f32,
|
||||
}
|
||||
|
||||
impl Material {
|
||||
pub fn new(kd: Vector3<f64>, ks: Vector3<f64>, shininess: f64) -> Material {
|
||||
let kd = kd.cast();
|
||||
let ks = ks.cast();
|
||||
let shininess = shininess as f32;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
pub fn magenta() -> Material {
|
||||
let kd = Vector3::new(1.0, 0.0, 1.0);
|
||||
let ks = Vector3::new(1.0, 0.0, 1.0);
|
||||
let shininess = 0.5;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
pub fn turquoise() -> Material {
|
||||
let kd = Vector3::new(0.25, 0.3, 0.7);
|
||||
let ks = Vector3::new(0.25, 0.3, 0.7);
|
||||
let shininess = 0.5;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
pub fn red() -> Material {
|
||||
let kd = Vector3::new(0.8, 0.0, 0.3);
|
||||
let ks = Vector3::new(0.8, 0.3, 0.0);
|
||||
let shininess = 0.5;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
pub fn blue() -> Material {
|
||||
let kd = Vector3::new(0.0, 0.3, 0.6);
|
||||
let ks = Vector3::new(0.3, 0.0, 0.6);
|
||||
let shininess = 0.5;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
pub fn green() -> Material {
|
||||
let kd = Vector3::new(0.0, 1.0, 0.0);
|
||||
let ks = Vector3::new(0.0, 1.0, 0.0);
|
||||
let shininess = 0.5;
|
||||
Material { kd, ks, shininess }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user