mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2026-11-11 04:57:15 +00:00
Improved gradient-movement
This commit is contained in:
1 parent
026b7e7d14
commit
1345b50a8f
4 files changed
+44
-38
No files matched your search
@@ -56,44 +56,7 @@ namespace RGB.NET.Effects
|
||||
if (!Direction)
|
||||
movement = -movement;
|
||||
|
||||
// ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull
|
||||
if (Brush.Gradient is LinearGradient)
|
||||
{
|
||||
LinearGradient linearGradient = (LinearGradient)Brush.Gradient;
|
||||
|
||||
movement /= 360.0;
|
||||
|
||||
foreach (GradientStop gradientStop in linearGradient.GradientStops)
|
||||
{
|
||||
gradientStop.Offset = gradientStop.Offset + movement;
|
||||
|
||||
if (gradientStop.Offset > 1)
|
||||
gradientStop.Offset -= 1;
|
||||
else if (gradientStop.Offset < 0)
|
||||
gradientStop.Offset += 1;
|
||||
}
|
||||
}
|
||||
else if (Brush.Gradient is RainbowGradient)
|
||||
{
|
||||
RainbowGradient rainbowGradient = (RainbowGradient)Brush.Gradient;
|
||||
|
||||
// RainbowGradient is calculated inverse but the movement should be the same for all.
|
||||
movement *= -1;
|
||||
|
||||
rainbowGradient.StartHue += movement;
|
||||
rainbowGradient.EndHue += movement;
|
||||
|
||||
if ((rainbowGradient.StartHue > 360) && (rainbowGradient.EndHue > 360))
|
||||
{
|
||||
rainbowGradient.StartHue -= 360;
|
||||
rainbowGradient.EndHue -= 360;
|
||||
}
|
||||
else if ((rainbowGradient.StartHue < -360) && (rainbowGradient.EndHue < -360))
|
||||
{
|
||||
rainbowGradient.StartHue += 360;
|
||||
rainbowGradient.EndHue += 360;
|
||||
}
|
||||
}
|
||||
Brush?.Gradient?.Move(movement);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in new issue
Block a user