pub trait Filter: Sized + Sync {
fn compute_at<T: Type, C: Color, I: Image<T, C>>(
&self,
x: usize,
y: usize,
c: usize,
input: &[&I]
) -> f64;
fn eval_partial<T: Type, C: Color, U: Type, D: Color, I: Image<T, C>, J: Image<U, D>>(
&self,
start_x: usize,
start_y: usize,
width: usize,
height: usize,
output: &mut I,
input: &[&J]
) { ... }
fn eval<T: Send + Type, C: Color, U: Type, D: Color, I: Sync + Send + Image<T, C>, J: Sync + Image<U, D>>(
&self,
output: &mut I,
input: &[&J]
) { ... }
fn join<A: Filter, F: Fn(f64, f64) -> f64>(
&self,
other: A,
f: F
) -> Join<'_, Self, A, F> { ... }
fn and_then<F: Fn(f64) -> f64>(&self, f: F) -> AndThen<'_, Self, F> { ... }
}
Expand description
Filters are used to manipulate images in a generic, composable manner
Required Methods§
fn compute_at<T: Type, C: Color, I: Image<T, C>>(
&self,
x: usize,
y: usize,
c: usize,
input: &[&I]
) -> f64
Provided Methods§
sourcefn eval_partial<T: Type, C: Color, U: Type, D: Color, I: Image<T, C>, J: Image<U, D>>(
&self,
start_x: usize,
start_y: usize,
width: usize,
height: usize,
output: &mut I,
input: &[&J]
)
fn eval_partial<T: Type, C: Color, U: Type, D: Color, I: Image<T, C>, J: Image<U, D>>(
&self,
start_x: usize,
start_y: usize,
width: usize,
height: usize,
output: &mut I,
input: &[&J]
)
Evaluate a filter on part of an image
sourcefn eval<T: Send + Type, C: Color, U: Type, D: Color, I: Sync + Send + Image<T, C>, J: Sync + Image<U, D>>(
&self,
output: &mut I,
input: &[&J]
)
fn eval<T: Send + Type, C: Color, U: Type, D: Color, I: Sync + Send + Image<T, C>, J: Sync + Image<U, D>>(
&self,
output: &mut I,
input: &[&J]
)
Evaluate filter in parallel