From b25771270f0fd1fe20432ce2c1a671a04bb57a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Tom=C3=A1s?= Date: Sun, 17 Jan 2021 18:17:57 -0300 Subject: Refactor function lp into lerp method to_poly --- src/lerp.rs | 20 ++++++++++---------- src/main.rs | 9 +++------ 2 files changed, 13 insertions(+), 16 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) -> 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])) + } } } } diff --git a/src/main.rs b/src/main.rs index a9bfcf9..ee508e1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -112,8 +112,8 @@ fn compile_bezier_shader(a: Poly, b: Poly) -> GLuint { } fn main() { - let a = lerp::lp(Lerp::new(vec![200.0, 500.0, 500.0])); - let b = lerp::lp(Lerp::new(vec![200.0, 500.0, 200.0])); + let a = Lerp::new(vec![200.0, 500.0, 500.0]).to_poly(); + let b = Lerp::new(vec![200.0, 500.0, 200.0]).to_poly(); let sdl_context = sdl2::init().unwrap(); let video_subsystem = sdl_context.video().unwrap(); @@ -141,10 +141,7 @@ fn main() { gl::Viewport(0, 0, window_w as i32, window_h as i32); } - let vertices: [f32; 18] = [ - 1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, -1.0, 0.0, -1.0, 1.0, - 0.0, - ]; + let vertices: [f32; 18] = [1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, 1.0, 0.0, 1.0, -1.0, 0.0, -1.0, -1.0, 0.0, -1.0, 1.0, 0.0]; let mut vbo: GLuint = 0; let mut vao: GLuint = 0; -- cgit v1.2.3