hackflight/
utils.rs

1/*
2   Utility functions
3
4   Copyright (C) 2022 Simon D. Levy
5
6   MIT License
7 */
8
9pub fn constrain_f(val: f32, lo: f32, hi: f32) -> f32 {
10    if val < lo {lo} else if val > hi {hi} else {val }
11}
12
13pub fn constrain(val: f32, lo: f32, hi: f32) -> f32 {
14    if val  < lo {lo} else if val > hi {hi} else {val}
15}
16
17pub fn constrain_abs(val : f32, limit : f32) -> f32 {
18    constrain(val, -limit, limit)
19}
20
21pub fn rescale(val: f32, oldmin: f32, oldmax: f32, newmin: f32, newmax: f32) -> f32 {
22
23    newmin + (val - oldmin) / (oldmax - oldmin) * (newmax - newmin)
24}
25
26pub fn rad2deg(rad: f32) -> f32 {
27
28    180.0 * rad / std::f32::consts::PI
29}