Implemented layer element saving

Added a working setting to the brush element
This commit is contained in:
Robert committed 2019-12-04 13:26:18 +01:00
1 parent 275d2b32a6
commit 1a44e34d16
24 files changed
+440 -85

No files matched your search

@@ -1,4 +1,5 @@
using Artemis.Core.Models.Profile;
using System;
using Artemis.Core.Models.Profile;
using Artemis.Core.Models.Surface;
using Artemis.Core.Plugins.LayerElement;
using SkiaSharp;
@@ -7,7 +8,7 @@ namespace Artemis.Plugins.LayerElements.Animations
{
public class RotationLayerElement : LayerElement
{
public RotationLayerElement(Layer layer, LayerElementSettings settings, LayerElementDescriptor descriptor) : base(layer, settings, descriptor)
public RotationLayerElement(Layer layer, Guid guid, LayerElementSettings settings, LayerElementDescriptor descriptor) : base(layer, guid, settings, descriptor)
{
}
@@ -20,17 +21,20 @@ namespace Artemis.Plugins.LayerElements.Animations
public override void Update(double deltaTime)
{
Rotation += (float)(deltaTime * 100);
Rotation += (float) (deltaTime * 100);
if (Rotation > 360)
Rotation = 0;
}
public override SKShader RenderPostProcess(ArtemisSurface surface, SKBitmap bitmap, SKShader shader)
{
var center = new SKPoint(Layer.AbsoluteRenderRectangle.MidX, Layer.AbsoluteRenderRectangle.MidY);
// TODO Scale so that the rectangle is covered in every rotation, instead of just putting it at 2
return SKShader.CreateLocalMatrix(SKShader.CreateLocalMatrix(shader, SKMatrix.MakeScale(2, 2, center.X, center.Y)), SKMatrix.MakeRotationDegrees(Rotation, center.X, center.Y));
var rect = Layer.AbsoluteRenderRectangle;
var center = new SKPoint(rect.MidX, rect.MidY);
var required = (float) Math.Sqrt(rect.Width * rect.Width + rect.Height * rect.Height);
var minSide = Math.Min(rect.Width, rect.Height);
var scale = required / minSide;
return SKShader.CreateLocalMatrix(SKShader.CreateLocalMatrix(shader, SKMatrix.MakeScale(scale, scale, center.X, center.Y)), SKMatrix.MakeRotationDegrees(Rotation, center.X, center.Y));
}
}
}
@@ -1,4 +1,5 @@
using Artemis.Core.Models.Profile;
using System;
using Artemis.Core.Models.Profile;
using Artemis.Core.Models.Surface;
using Artemis.Core.Plugins.LayerElement;
using SkiaSharp;
@@ -7,7 +8,7 @@ namespace Artemis.Plugins.LayerElements.Animations
{
public class SlideLayerElement : LayerElement
{
public SlideLayerElement(Layer layer, LayerElementSettings settings, LayerElementDescriptor descriptor) : base(layer, settings, descriptor)
public SlideLayerElement(Layer layer, Guid guid, LayerElementSettings settings, LayerElementDescriptor descriptor) : base(layer, guid, settings, descriptor)
{
}