Browse Source

Added drop shadow

Krzysztof Krysiński 5 months ago
parent
commit
ad8db31a2b

+ 1 - 1
src/Drawie

@@ -1 +1 @@
-Subproject commit d23a32dd0499ba3f3b9881f48aa7a69395bba329
+Subproject commit 2bd4d8535c152c9507c96e1d550b854c80f3b6fd

+ 30 - 0
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/FilterNodes/ShadowNode.cs

@@ -0,0 +1,30 @@
+using Drawie.Backend.Core.ColorsImpl;
+using Drawie.Backend.Core.Surfaces.PaintImpl;
+using Drawie.Numerics;
+
+namespace PixiEditor.ChangeableDocument.Changeables.Graph.Nodes.FilterNodes;
+
+[NodeInfo("Shadow")]
+public class ShadowNode : FilterNode
+{
+    public InputProperty<VecD> Offset { get; }
+    public InputProperty<VecD> Sigma { get; }
+    public InputProperty<Color> Color { get; }
+
+    public ShadowNode()
+    {
+        Offset = CreateInput("Offset", "OFFSET", new VecD(5, 5));
+        Sigma = CreateInput("Radius", "RADIUS", new VecD(5, 5));
+        Color = CreateInput("Color", "COLOR", Colors.Black);
+    }
+
+    protected override ImageFilter? GetImageFilter()
+    {
+        return ImageFilter.CreateDropShadow((float)Offset.Value.X, (float)Offset.Value.Y, (float)Sigma.Value.X, (float)Sigma.Value.Y, Color.Value, null);
+    }
+
+    public override Node CreateCopy()
+    {
+        return new ShadowNode();
+    }
+}

+ 2 - 1
src/PixiEditor/Data/Localization/Languages/en.json

@@ -868,5 +868,6 @@
   "DISCO_BALL_EXAMPLE": "Disco Ball",
   "COLOR_SPACE": "Color Space",
   "PHOTO_EXAMPLES": "Photo",
-  "MASK_EXAMPLE": "Mask"
+  "MASK_EXAMPLE": "Mask",
+  "SHADOW_NODE": "Shadow Filter"
 }

+ 9 - 0
src/PixiEditor/ViewModels/Document/Nodes/FilterNodes/ShadowNodeViewModel.cs

@@ -0,0 +1,9 @@
+using PixiEditor.ChangeableDocument.Changeables.Graph.Nodes.FilterNodes;
+using PixiEditor.ViewModels.Nodes;
+
+namespace PixiEditor.ViewModels.Document.Nodes.FilterNodes;
+
+[NodeViewModel("SHADOW_NODE", "FILTERS", "\ue812")]
+internal class ShadowNodeViewModel : NodeViewModel<ShadowNode>
+{
+}