/// <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); }
/// <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(); } }