polymorpher 0.1.4

Library for creating and morphing potentially rounded polygons
Documentation
use crate::geometry::Vector;

pub fn progress_in_range(progress: f32, progress_from: f32, progress_to: f32) -> bool {
    if progress_to >= progress_from {
        (progress_from..=progress_to).contains(&progress)
    } else {
        progress >= progress_from || progress <= progress_to
    }
}

pub fn progress_distance(p1: f32, p2: f32) -> f32 {
    let value = (p1 - p2).abs();

    value.min(1.0 - value)
}

pub fn radial_to_cartesian(radius: f32, angle_radians: f32) -> Vector {
    Vector::new(angle_radians.cos(), angle_radians.sin()) * radius
}

pub fn positive_modulo(num: f32, modulo: f32) -> f32 {
    (num % modulo + modulo) % modulo
}