Converts the input alpha value from a linear 0-1 value into the output alpha described by blend mode. The alpha (normalized to 0-1). The mode. The output alpha (normalized to 0-1).
| 93 | /// <param name="mode">The mode.</param> |
| 94 | /// <returns>The output alpha (normalized to 0-1).</returns> |
| 95 | static float Process(float alpha, AlphaBlendMode mode) |
| 96 | { |
| 97 | switch (mode) |
| 98 | { |
| 99 | case AlphaBlendMode::Sinusoidal: |
| 100 | alpha = (Math::Sin(alpha * PI - PI_HALF) + 1.0f) / 2.0f; |
| 101 | break; |
| 102 | case AlphaBlendMode::Cubic: |
| 103 | alpha = Math::CubicInterp<float>(0.0f, 0.0f, 1.0f, 0.0f, alpha); |
| 104 | break; |
| 105 | case AlphaBlendMode::QuadraticInOut: |
| 106 | alpha = Math::InterpEaseInOut<float>(0.0f, 1.0f, alpha, 2); |
| 107 | break; |
| 108 | case AlphaBlendMode::CubicInOut: |
| 109 | alpha = Math::InterpEaseInOut<float>(0.0f, 1.0f, alpha, 3); |
| 110 | break; |
| 111 | case AlphaBlendMode::HermiteCubic: |
| 112 | alpha = Math::SmoothStep(0.0f, 1.0f, alpha); |
| 113 | break; |
| 114 | case AlphaBlendMode::QuarticInOut: |
| 115 | alpha = Math::InterpEaseInOut<float>(0.0f, 1.0f, alpha, 4); |
| 116 | break; |
| 117 | case AlphaBlendMode::QuinticInOut: |
| 118 | alpha = Math::InterpEaseInOut<float>(0.0f, 1.0f, alpha, 5); |
| 119 | break; |
| 120 | case AlphaBlendMode::CircularIn: |
| 121 | alpha = Math::InterpCircularIn<float>(0.0f, 1.0f, alpha); |
| 122 | break; |
| 123 | case AlphaBlendMode::CircularOut: |
| 124 | alpha = Math::InterpCircularOut<float>(0.0f, 1.0f, alpha); |
| 125 | break; |
| 126 | case AlphaBlendMode::CircularInOut: |
| 127 | alpha = Math::InterpCircularInOut<float>(0.0f, 1.0f, alpha); |
| 128 | break; |
| 129 | case AlphaBlendMode::ExpIn: |
| 130 | alpha = Math::InterpExpoIn<float>(0.0f, 1.0f, alpha); |
| 131 | break; |
| 132 | case AlphaBlendMode::ExpOut: |
| 133 | alpha = Math::InterpExpoOut<float>(0.0f, 1.0f, alpha); |
| 134 | break; |
| 135 | case AlphaBlendMode::ExpInOut: |
| 136 | alpha = Math::InterpExpoInOut<float>(0.0f, 1.0f, alpha); |
| 137 | break; |
| 138 | default: ; |
| 139 | } |
| 140 | |
| 141 | return Math::Saturate<float>(alpha); |
| 142 | } |
| 143 | }; |
no test coverage detected