use super::bilinear::bilinear_interpolation;
use super::nearest::nearest_neighbor_interpolation;
use crate::image::ImageDtype;
use ndarray::Array3;
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum InterpolationMode {
Bilinear,
Nearest,
}
pub(crate) fn interpolate_pixel<T: ImageDtype>(
image: &Array3<T>,
u: f32,
v: f32,
c: usize,
interpolation: InterpolationMode,
) -> T {
match interpolation {
InterpolationMode::Bilinear => bilinear_interpolation(image, u, v, c),
InterpolationMode::Nearest => nearest_neighbor_interpolation(image, u, v, c),
}
}