use nalgebra::{Point3, Vector3}; #[derive(Clone)] pub struct Light { pub position: Point3, pub colour: Vector3, pub falloff: Vector3, pub ambient: bool, } impl Light { pub fn new(position: Point3, colour: Vector3, falloff: Vector3) -> Self { let colour = colour.cast(); let falloff = falloff.cast(); Light { position, colour, falloff, ambient: false, } } pub fn ambient(colour: Vector3) -> Self { Light { position: Point3::new(0.0, 0.0, 0.0), colour: colour.cast(), falloff: Vector3::new(0.0, 0.0, 0.0), ambient: true, } } }