From 89654fffd1f5b8834caeb584c978d9b3798af796 Mon Sep 17 00:00:00 2001 From: Jonathan Hoffstadt Date: Mon, 17 Feb 2025 21:07:52 -0600 Subject: [PATCH] feat: pl_math.h add unsigned clamp --- pl_math.h | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/pl_math.h b/pl_math.h index 39a97a4..e4c046a 100644 --- a/pl_math.h +++ b/pl_math.h @@ -226,24 +226,25 @@ typedef struct _plAABB #define pl_square(Value) ((Value) * (Value)) #define pl_cube(Value) ((Value) * (Value) * (Value)) -static inline float pl_radiansf(float fDegrees) { return fDegrees * 0.0174532925f; } -static inline float pl_degreesf(float fRadians) { return fRadians * 57.29577951f; } -static inline float pl_maxf (float fValue1, float fValue2) { return fValue1 > fValue2 ? fValue1 : fValue2; } -static inline float pl_minf (float fValue1, float fValue2) { return fValue1 > fValue2 ? fValue2 : fValue1; } -static inline int pl_maxi (int iValue1, int iValue2) { return iValue1 > iValue2 ? iValue1 : iValue2; } -static inline int pl_mini (int iValue1, int iValue2) { return iValue1 > iValue2 ? iValue2 : iValue1; } -static inline uint32_t pl_maxu (uint32_t uValue1, uint32_t uValue2) { return uValue1 > uValue2 ? uValue1 : uValue2; } -static inline uint32_t pl_minu (uint32_t uValue1, uint32_t uValue2) { return uValue1 > uValue2 ? uValue2 : uValue1; } -static inline double pl_maxd (double dValue1, double dValue2) { return dValue1 > dValue2 ? dValue1 : dValue2; } -static inline double pl_mind (double dValue1, double dValue2) { return dValue1 > dValue2 ? dValue2 : dValue1; } -static inline float pl_squaref (float fValue) { return fValue * fValue;} -static inline float pl_cubef (float fValue) { return fValue * fValue * fValue;} -static inline int pl_clampi (int iMin, int iValue, int iMax) { if (iValue < iMin) return iMin; else if (iValue > iMax) return iMax; return iValue; } -static inline float pl_clampf (float fMin, float fValue, float fMax) { if (fValue < fMin) return fMin; else if (fValue > fMax) return fMax; return fValue; } -static inline double pl_clampd (double dMin, double dValue, double dMax) { if (dValue < dMin) return dMin; else if (dValue > dMax) return dMax; return dValue; } -static inline float pl_clamp01f(float fValue) { return pl_clampf(0.0f, fValue, 1.0f); } -static inline double pl_clamp01d(double dValue) { return pl_clampd(0.0, dValue, 1.0); } -static inline size_t pl_align_up(size_t szValue, size_t szAlign) { return ((szValue + (szAlign - 1)) & ~(szAlign - 1)); } +static inline float pl_radiansf(float fDegrees) { return fDegrees * 0.0174532925f; } +static inline float pl_degreesf(float fRadians) { return fRadians * 57.29577951f; } +static inline float pl_maxf (float fValue1, float fValue2) { return fValue1 > fValue2 ? fValue1 : fValue2; } +static inline float pl_minf (float fValue1, float fValue2) { return fValue1 > fValue2 ? fValue2 : fValue1; } +static inline int pl_maxi (int iValue1, int iValue2) { return iValue1 > iValue2 ? iValue1 : iValue2; } +static inline int pl_mini (int iValue1, int iValue2) { return iValue1 > iValue2 ? iValue2 : iValue1; } +static inline uint32_t pl_maxu (uint32_t uValue1, uint32_t uValue2) { return uValue1 > uValue2 ? uValue1 : uValue2; } +static inline uint32_t pl_minu (uint32_t uValue1, uint32_t uValue2) { return uValue1 > uValue2 ? uValue2 : uValue1; } +static inline double pl_maxd (double dValue1, double dValue2) { return dValue1 > dValue2 ? dValue1 : dValue2; } +static inline double pl_mind (double dValue1, double dValue2) { return dValue1 > dValue2 ? dValue2 : dValue1; } +static inline float pl_squaref (float fValue) { return fValue * fValue;} +static inline float pl_cubef (float fValue) { return fValue * fValue * fValue;} +static inline int pl_clampi (int iMin, int iValue, int iMax) { if (iValue < iMin) return iMin; else if (iValue > iMax) return iMax; return iValue; } +static inline uint32_t pl_clampu (uint32_t iMin, uint32_t iValue, uint32_t iMax) { if (iValue < iMin) return iMin; else if (iValue > iMax) return iMax; return iValue; } +static inline float pl_clampf (float fMin, float fValue, float fMax) { if (fValue < fMin) return fMin; else if (fValue > fMax) return fMax; return fValue; } +static inline double pl_clampd (double dMin, double dValue, double dMax) { if (dValue < dMin) return dMin; else if (dValue > dMax) return dMax; return dValue; } +static inline float pl_clamp01f(float fValue) { return pl_clampf(0.0f, fValue, 1.0f); } +static inline double pl_clamp01d(double dValue) { return pl_clampd(0.0, dValue, 1.0); } +static inline size_t pl_align_up(size_t szValue, size_t szAlign) { return ((szValue + (szAlign - 1)) & ~(szAlign - 1)); } //----------------------------------------------------------------------------- // [SECTION] vector ops