graphics_rs/math/
num_utils.rs

1pub struct NumUtils;
2
3impl NumUtils {
4    pub fn order_triangle_vertices_by_y<T: PartialOrd>(
5        x1: &mut T,
6        y1: &mut T,
7        x2: &mut T,
8        y2: &mut T,
9        x3: &mut T,
10        y3: &mut T,
11    ) {
12        if *y1 > *y2 {
13            std::mem::swap(x1, x2);
14            std::mem::swap(y1, y2);
15        }
16
17        if *y2 > *y3 {
18            std::mem::swap(x2, x3);
19            std::mem::swap(y2, y3);
20        }
21
22        if *y1 > *y2 {
23            std::mem::swap(x1, x2);
24            std::mem::swap(y1, y2);
25        }
26    }
27
28    pub fn order_asc<T: Ord + Copy>(a: T, b: T) -> (T, T) {
29        (T::min(a, b), T::max(a, b))
30    }
31}