singe-npp 0.1.0-alpha.8

Safe Rust wrappers for NVIDIA Performance Primitives library (NPP).
Documentation
use crate::{
    error::Result,
    image::geometry,
    types::{
        AffineCoefficients, BoundF64, InterpolationMode, PerspectiveCoefficients, Point,
        QuadrangleF64, Rectangle,
    },
};

use super::ImagePipeline;

impl<'a, T, L> ImagePipeline<'a, T, L> {
    pub fn resize_rect(
        source_roi: Rectangle,
        x_factor: f64,
        y_factor: f64,
        x_shift: f64,
        y_shift: f64,
        interpolation: InterpolationMode,
    ) -> Result<Rectangle> {
        geometry::resize_rect(
            source_roi,
            x_factor,
            y_factor,
            x_shift,
            y_shift,
            interpolation,
        )
    }

    pub fn resize_tiled_source_offset(
        source_roi: Rectangle,
        destination_roi: Rectangle,
    ) -> Result<Point> {
        geometry::resize_tiled_source_offset(source_roi, destination_roi)
    }

    pub fn rotate_quad(
        source_roi: Rectangle,
        angle: f64,
        shift_x: f64,
        shift_y: f64,
    ) -> Result<QuadrangleF64> {
        geometry::rotate_quad(source_roi, angle, shift_x, shift_y)
    }

    pub fn rotate_bound(
        source_roi: Rectangle,
        angle: f64,
        shift_x: f64,
        shift_y: f64,
    ) -> Result<BoundF64> {
        geometry::rotate_bound(source_roi, angle, shift_x, shift_y)
    }

    pub fn affine_transform(
        source_roi: Rectangle,
        destination_quadrangle: QuadrangleF64,
    ) -> Result<AffineCoefficients> {
        geometry::affine_transform(source_roi, destination_quadrangle)
    }

    pub fn affine_quad(
        source_roi: Rectangle,
        coefficients: AffineCoefficients,
    ) -> Result<QuadrangleF64> {
        geometry::affine_quad(source_roi, coefficients)
    }

    pub fn affine_bound(
        source_roi: Rectangle,
        coefficients: AffineCoefficients,
    ) -> Result<BoundF64> {
        geometry::affine_bound(source_roi, coefficients)
    }

    pub fn perspective_transform(
        source_roi: Rectangle,
        destination_quadrangle: QuadrangleF64,
    ) -> Result<PerspectiveCoefficients> {
        geometry::perspective_transform(source_roi, destination_quadrangle)
    }

    pub fn perspective_quad(
        source_roi: Rectangle,
        coefficients: PerspectiveCoefficients,
    ) -> Result<QuadrangleF64> {
        geometry::perspective_quad(source_roi, coefficients)
    }

    pub fn perspective_bound(
        source_roi: Rectangle,
        coefficients: PerspectiveCoefficients,
    ) -> Result<BoundF64> {
        geometry::perspective_bound(source_roi, coefficients)
    }
}