diff --git a/include/bx/inline/math.inl b/include/bx/inline/math.inl index 9afacc0..aba2eee 100644 --- a/include/bx/inline/math.inl +++ b/include/bx/inline/math.inl @@ -344,6 +344,11 @@ namespace bx return square(_a)*(3.0f - 2.0f*_a); } + inline BX_CONST_FUNC float invSmoothStep(float _a) + { + return 0.5f - sin(asin(1.0f - 2.0f * _a) / 3.0f); + } + inline BX_CONSTEXPR_FUNC float bias(float _time, float _bias) { return _time / ( ( (1.0f/_bias - 2.0f)*(1.0f - _time) ) + 1.0f); diff --git a/include/bx/math.h b/include/bx/math.h index 4e39ad3..e51bdd2 100644 --- a/include/bx/math.h +++ b/include/bx/math.h @@ -282,6 +282,9 @@ namespace bx /// BX_CONSTEXPR_FUNC float smoothStep(float _a); + /// + BX_CONST_FUNC float invSmoothStep(float _a); + /// BX_CONSTEXPR_FUNC float bias(float _time, float _bias);