diff options
Diffstat (limited to 'src/camera/filter')
-rw-r--r-- | src/camera/filter/mod.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/camera/filter/mod.rs b/src/camera/filter/mod.rs new file mode 100644 index 0000000..93c6fc5 --- /dev/null +++ b/src/camera/filter/mod.rs @@ -0,0 +1,22 @@ +use crate::vector::Vector2f; +use crate::Float; + +pub trait Filter { + fn eval(&self, point: &Vector2f) -> Float; + fn radius(&self) -> Vector2f; +} + +pub struct BoxFilter { + radius: Vector2f, +} + +// The same a no filter, and can give aliasing in final image +impl Filter for BoxFilter { + fn eval(&self, _: &Vector2f) -> Float { + 1.0 + } + + fn radius(&self) -> Vector2f { + self.radius + } +} |