MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Process

Method Process

Source/Engine/Animations/AlphaBlend.h:95–142  ·  view source on GitHub ↗

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).

Source from the content-addressed store, hash-verified

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};

Callers 1

OnKeyDownMethod · 0.45

Calls 2

SinFunction · 0.50
SmoothStepFunction · 0.50

Tested by

no test coverage detected