mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
inverse lerp function
This commit is contained in:
parent
0d981b62cf
commit
c5afb407db
|
|
@ -353,6 +353,17 @@ DefineEngineFunction( mLerp, F32, ( F32 v1, F32 v2, F32 time ),,
|
|||
return mLerp( v1, v2, time );
|
||||
}
|
||||
|
||||
DefineEngineFunction(mInvLerp, F32, (F32 v1, F32 v2, F32 point), ,
|
||||
"Calculate the percentage of a point along a line.\n"
|
||||
"@param v1 Interpolate From Input value."
|
||||
"@param v2 Interpolate To Input value."
|
||||
"@param point Point along range."
|
||||
"@returns normalized time used to interpolate values"
|
||||
"@ingroup Math")
|
||||
{
|
||||
return mInvLerp(v1, v2, point);
|
||||
}
|
||||
|
||||
DefineEngineFunction( mPi, F32, (),,
|
||||
"Return the value of PI (half-circle in radians).\n"
|
||||
"@returns The value of PI."
|
||||
|
|
|
|||
|
|
@ -265,6 +265,14 @@ inline T mLerp( const T &v1, const T &v2, F32 factor )
|
|||
return ( v1 * ( 1.0f - factor ) ) + ( v2 * factor );
|
||||
}
|
||||
|
||||
/// Template function for determining a percentage of interpolation between any two
|
||||
/// types which implement operators for scalar multiply and addition.
|
||||
template <typename T>
|
||||
inline T mInvLerp(const T& v1, const T& v2, F32 point)
|
||||
{
|
||||
return (point - v1) / (v2 - v1);
|
||||
}
|
||||
|
||||
inline S32 mMulDiv(S32 a, S32 b, S32 c)
|
||||
{
|
||||
return m_mulDivS32(a, b, c);
|
||||
|
|
|
|||
Loading…
Reference in a new issue