Newer
Older
TIASShot / TIASshot / Cameras / GainCalc.cs
namespace TIASshot {
    /// <summary>
    /// ゲイン更新比率の計算ロジック(ピュアロジック層).
    /// ハードウェアに依存しない純粋な計算のみを担う.
    /// </summary>
    internal static class GainCalc {
        /// <summary>
        /// ゲイン値の更新比率を計算する.
        /// value が 255.0f のときは updateRate によらず係数を 1.0 として比率を求める.
        /// </summary>
        /// <param name="value">現在の計測値</param>
        /// <param name="target">目標値</param>
        /// <param name="updateRate">更新レート(0 より大きい値を想定)</param>
        /// <returns>更新比率</returns>
        internal static float CalcRatio(float value, float target, float updateRate) {
            float ratio = target / value;
            ratio = (ratio - 1.0f) * (value == 255.0f ? 1.0f : updateRate) + 1.0f;
            return ratio;
        }
    }
}