// LOGIC public FP Step(FP i_Target, FP i_FrameTime) { FP smoothStepFactor = (i_Target < m_Position) ? m_LowerStepFactor : m_RaiseStepFactor; FP smoothFactor = (smoothStepFactor > FP.Zero) ? FP.One - MathFP.Pow(FP.Half, i_FrameTime / smoothStepFactor) : FP.One; m_Position += (i_Target - m_Position) * smoothFactor; return(m_Position); }