diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-07 17:55:27 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-07 17:55:27 +0100 |
commit | 8ca219c6b0d5448fd4529713ccd093e89de4e252 (patch) | |
tree | 8fe02fd35ae337766d6f8e7533da170830162d14 /evc/src/refsampler.rs | |
parent | a99674b911cb9b2fa398ccf61830d5933ccaf931 (diff) | |
download | video-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar video-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar.bz2 video-codec-experiments-8ca219c6b0d5448fd4529713ccd093e89de4e252.tar.zst |
refactor
Diffstat (limited to 'evc/src/refsampler.rs')
-rw-r--r-- | evc/src/refsampler.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/evc/src/refsampler.rs b/evc/src/refsampler.rs index 95e123b..db0ab6f 100644 --- a/evc/src/refsampler.rs +++ b/evc/src/refsampler.rs @@ -1,14 +1,21 @@ -use crate::{helpers::{matrix::Mat2, vector::Vec2}, frame::Frame}; +use crate::{ + frame::Frame, + helpers::{matrix::Mat2, pixel::Pixel, vector::Vec2}, +}; + +pub struct Sampler<'a> { + frame: &'a Frame, -pub struct Sampler { translation: Vec2<f32>, transform: Mat2<f32>, value_scale: f32, } -impl Sampler { - pub fn sample(&self, frame: &Frame, p: Vec2<f32>) { - +impl Sampler<'_> { + pub fn sample(&self, p: Vec2<f32>) -> Pixel { + self.frame + .sample(self.translation + self.transform.transform(p)) + .scale(self.value_scale) } } |