示例#1
0
        /// <summary>
        ///     Prewarms the timer.
        /// </summary>
        private void Prewarm()
        {
            float length = GetPrewarmLength();

            length = HydraMathUtils.Min(length, MAX_PREWARM);

            m_Time = length * -1.0f;

            OnStartPrewarm();

            float cumulative;

            for (cumulative = 0.0f; cumulative < length; cumulative += PREWARM_STEP)
            {
                ProcessTimeIncrement(PREWARM_STEP);
            }

            ProcessTimeIncrement(length - cumulative);
        }
示例#2
0
        /// <summary>
        ///     Combines the surface values.
        /// </summary>
        /// <returns>The combined surface value.</returns>
        /// <param name="surfaceA">Surface a.</param>
        /// <param name="surfaceB">Surface b.</param>
        /// <param name="combine">Combine.</param>
        public static float Combine(float surfaceA, float surfaceB, PhysicMaterialCombine combine)
        {
            switch (combine)
            {
            case PhysicMaterialCombine.Average:
                return((surfaceA + surfaceB) / 2.0f);

            case PhysicMaterialCombine.Maximum:
                return(HydraMathUtils.Max(surfaceA, surfaceB));

            case PhysicMaterialCombine.Minimum:
                return(HydraMathUtils.Min(surfaceA, surfaceB));

            case PhysicMaterialCombine.Multiply:
                return(surfaceA * surfaceB);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }