diff options
Diffstat (limited to 'src/lerp.rs')
-rw-r--r-- | src/lerp.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lerp.rs b/src/lerp.rs index b098f23..818c686 100644 --- a/src/lerp.rs +++ b/src/lerp.rs @@ -22,17 +22,17 @@ impl Lerp { )), } } -} -pub fn lp(l: Box<Lerp>) -> Poly { - match *l { - Lerp::Just(a) => Poly::new(vec![a]), - Lerp::Leaf(a, b) => Poly::new(vec![a, b - a]), - Lerp::Node(a, b) => { - let a = lp(a); - let b = lp(b); - let c = &b - &a; - &a + &(&c * &Poly::new(vec![0.0, 1.0])) + pub fn to_poly(self) -> Poly { + match self { + Lerp::Just(a) => Poly::new(vec![a]), + Lerp::Leaf(a, b) => Poly::new(vec![a, b - a]), + Lerp::Node(a, b) => { + let a = a.to_poly(); + let b = b.to_poly(); + let c = &b - &a; + &a + &(&c * &Poly::new(vec![0.0, 1.0])) + } } } } |