diff --git a/include/bx/inline/math.inl b/include/bx/inline/math.inl index 72e4ef2..6f946e1 100644 --- a/include/bx/inline/math.inl +++ b/include/bx/inline/math.inl @@ -127,6 +127,11 @@ namespace bx return _a + (_b - _a) * _t; } + inline BX_CONSTEXPR_FUNC float invLerp(float _a, float _b, float _value) + { + return (_value - _a) / (_b - _a); + } + inline BX_CONSTEXPR_FUNC float sign(float _a) { return _a < 0.0f ? -1.0f : 1.0f; diff --git a/include/bx/math.h b/include/bx/math.h index a46ab0d..ebd0662 100644 --- a/include/bx/math.h +++ b/include/bx/math.h @@ -146,6 +146,10 @@ namespace bx /// BX_CONSTEXPR_FUNC float lerp(float _a, float _b, float _t); + /// Returns inverse linear interpolation of _value between two values _a and _b. + /// + BX_CONSTEXPR_FUNC float invLerp(float _a, float _b, float _value); + /// Returns the sign of _a. /// BX_CONSTEXPR_FUNC float sign(float _a);