pub trait PhaseFunction: Display {
// Required methods
fn p(&self, wo: &Vector3f, wi: &Vector3f) -> Float;
fn sample_p(&self, wo: &Vector3f, u: &Point2f) -> (Float, Vector3f);
}
pub trait PhaseFunction: Display {
// Required methods
fn p(&self, wo: &Vector3f, wi: &Vector3f) -> Float;
fn sample_p(&self, wo: &Vector3f, u: &Point2f) -> (Float, Vector3f);
}