use crate::core::LightProperties; use crate::{Point, Vector}; use nalgebra::Unit; pub struct PathPoint { pub point: Point, pub incident: Unit, pub normal: Unit, pub properties: LightProperties, } impl PathPoint { pub fn new( point: Point, incident: Unit, normal: Unit, properties: LightProperties, ) -> Self { PathPoint { point, incident, normal, properties, } } } pub struct Path { pub origin: Point, pub points: Vec, } impl Path { pub fn new(origin: Point) -> Self { Path { origin, points: Vec::new(), } } pub fn push_point(&mut self, new_point: PathPoint) { self.points.push(new_point) } }