anim8/utils.rs
1use crate::Scalar;
2
3/// Return iterator over uniformly spread samples of `steps` in 0 to 1 range.
4pub fn factor_iter(steps: usize) -> impl Iterator<Item = Scalar> {
5 (0..=steps).map(move |index| index as Scalar / steps as Scalar)
6}
7
8/// Return iterator over uniformly spread samples of `steps` in `from` to `to` range.
9pub fn range_iter(steps: usize, from: Scalar, to: Scalar) -> impl Iterator<Item = Scalar> {
10 let diff = to - from;
11 (0..=steps).map(move |index| from + diff * index as Scalar / steps as Scalar)
12}