4T Mathematics::Constrain(T value, T minimum, T maximum) {
7 } else if (value < minimum) {
15T Mathematics::DegreesToRadians(T degrees) {
16 return degrees * MPID180;
20T Mathematics::RadiansToDegrees(T radians) {
21 return radians * M180DPI;
25T Mathematics::Map(T value, T inLow, T inMax, T outMin, T outMax) {
26 return (value - inLow) * (outMax - outMin) / (inMax - inLow) + outMin;
30T Mathematics::Max(T value1, T value2) {
31 return value1 > value2 ? value1 : value2;
35T Mathematics::Min(T value1, T value2) {
36 return value1 < value2 ? value1 : value2;
40T Mathematics::Min(T v1, T v2, T v3) {
41 return v1 < v2 ? (v1 < v3 ? v1 : v3) : (v2 < v3 ? v2 : v3);
45T Mathematics::Max(T v1, T v2, T v3) {
46 return v1 > v2 ? (v1 > v3 ? v1 : v3) : (v2 > v3 ? v2 : v3);
50T Mathematics::ConstrainMap(T value, T inLow, T inMax, T outMin, T outMax) {
51 T mappedValue = (value - inLow) * (outMax - outMin) / (inMax - inLow) + outMin;
52 return Constrain(mappedValue, outMin, outMax);