use crate::{ frame::Frame, helpers::{matrix::Mat2, pixel::Pixel, vector::Vec2}, }; pub struct Sampler<'a> { frame: &'a Frame, translation: Vec2, transform: Mat2, value_scale: f32, } impl Sampler<'_> { pub fn sample(&self, p: Vec2) -> Pixel { self.frame .sample(self.translation + self.transform.transform(p)) .scale(self.value_scale) } }